»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
sorear | whiteknight: hi | 00:04 | |
00:25
Chillance left
00:32
smash left
|
|||
whiteknight | hello sorear | 00:55 | |
01:01
noganex_ joined
01:04
noganex left
01:12
woosley joined
01:21
envi_laptop joined
01:22
noganex_ left
01:29
noganex joined
01:30
Ali_h left
01:31
Ali_h joined
01:37
bitpart joined
01:40
cotto joined
01:50
bitpart left
01:56
whiteknight left
02:01
dual left
02:05
dual_ joined
02:06
tokuhirom joined,
dual_ is now known as dual
02:09
roen joined
02:12
ilogger2 joined,
ChanServ sets mode: +v ilogger2
02:14
dual_ joined
02:16
dual_ is now known as dual
02:19
tomaw joined
02:22
sftp joined
02:31
dual left
02:32
sftp left
02:36
cotto joined
02:40
lumi joined
02:42
dual joined
02:45
mtk joined
|
|||
dalek | ecza: 11e843d | sorear++ | / (4 files): CREATE gets proper P6 semantics, add bless() |
02:48 | |
02:50
mberends joined
02:51
cooper|ipad joined
02:52
dual left
02:53
thou joined
02:54
sftp joined
02:58
dual joined,
thou left
03:00
noganex_ joined
03:05
dual left
03:11
satyavvd joined
03:13
lumi left
03:17
thou_ joined
03:18
molaf joined
03:19
lumi joined
03:21
dual joined
03:28
dual left
03:29
Su-Shee joined
|
|||
mberends | moritz: nom 'perl Configure.pl --gen-parrot --gen-nqp' works again here :) | 03:30 | |
03:31
dual joined
03:38
dual left
03:39
dual joined,
jaldhar joined
03:41
molaf left
03:59
dual_ joined
|
|||
szabgab | jnthn: yapceurope.lv/ye2011/talk/3388 has no date on it, maybe edit the text so it will include that too? | 03:59 | |
same with yapceurope.lv/ye2011/talk/3283 | 04:00 | ||
04:01
dual left
04:02
larks joined
04:04
dual joined,
dual_ left
04:06
lumi left
04:13
thou_ left
04:30
dual_ joined
04:33
dual left,
dual_ is now known as dual
|
|||
sorear | hello szabgab | 04:43 | |
04:49
birdwindupbird joined
04:51
dual left
04:57
dual joined
05:03
dotIN joined
05:05
dual_ joined
05:06
dual left
05:07
in joined
05:08
koban joined
05:09
dual joined
05:10
dual_ left
05:11
dotIN left
05:12
tokuhirom joined
05:14
dotIN joined
05:16
in left
05:19
in joined
|
|||
dalek | kudo/nom: 4d555ae | mberends++ | src/ (6 files): [src/binder] correct a spello s/Rakduo/Rakudo/g and fix some gcc warnings |
05:20 | |
05:23
dotIN left
05:25
dotIN joined,
jrockway joined
05:28
in left
05:30
yinyin joined,
in joined
05:31
noganex joined
05:32
lateau joined
05:33
dual left
05:34
dotIN left,
noganex_ left
|
|||
lateau | does anyone knows how to execute external commands from rakudo? | 05:35 | |
dalek | kudo/nom: 730da9d | mberends++ | src/binder/ (2 files): [src/binder] eliminate all gcc warnings (hope other C compilers are still ok) |
||
mberends | lateau: run($command) | 05:36 | |
lateau | thanks! i'll try it | ||
mberends: is there any methods or functions capture the result of external commands? | 05:38 | ||
like my $of = `ls` in perl5 | |||
dalek | ecza: 3638568 | sorear++ | lib/ (3 files): Do a bit of compose-time processing on the attribute list for new, suprising win |
||
sorear | qx[ls] | ||
lateau | thx sorear, this is exactly what i want. thanks! | 05:39 | |
sorear | incidentally this works in Perl 5 too; only the short syntax is gone | ||
05:41
dotIN joined
05:44
in left
05:45
in joined
05:47
nymacro joined
05:48
dotIN left
05:50
dotIN joined,
beek joined
05:53
in left
|
|||
dalek | ecza: b40503b | sorear++ | lib/Kernel.cs: Avoid inferior runloops for attributes with defaults |
05:54 | |
sorear | has $.x = 12; # no longer 10x slower than has $.x; | 05:56 | |
05:57
kboga joined
06:00
in joined
06:03
dotIN left
06:05
dotIN joined
06:07
yinyin left
06:08
in left
06:09
lumi joined
06:10
in joined
|
|||
dalek | ecza: ca4d6f1 | sorear++ | / (3 files): Implement use of submethod BUILD |
06:12 | |
06:13
dotIN left
06:16
dotIN joined
06:18
in left
06:19
wamba joined,
in joined
06:20
wamba left
06:21
wamba joined
06:22
fhelmberger joined
06:23
dotIN left,
wtw joined
|
|||
sorear | perl6: my $s = "foo"; say ($s ~~ s/o//).perl | 06:25 | |
06:25
dotIN joined
|
|||
p6eval | rakudo 484a25, niecza v6-80-g11e843d: OUTPUT«Bool::True» | 06:25 | |
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** '<HANDLE>' trapped by operat… | |||
sorear | perl6: my $s = "foo"; say ($s ~~ s:g/o//).perl | ||
p6eval | rakudo 484a25: OUTPUT«Bool::True» | ||
..niecza v6-80-g11e843d: OUTPUT«===SORRY!===Regex modifier g not yet implemented at /tmp/350yJhu4i8 line 1:------> my $s = "foo"; say ($s ~~ s:g⏏/o//).perlUnhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ | |||
..2)  at /home… | |||
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** '<HANDLE>' trapped by operat… | |||
sorear | perl6: my $s = "foo"; say ($s ~~ s/x//).perl | 06:26 | |
p6eval | rakudo 484a25: OUTPUT«Bool::True» | ||
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** '<HANDLE>' trapped by operat… | |||
..niecza v6-80-g11e843d: OUTPUT«Bool::False» | |||
06:27
in left
06:29
in joined
06:33
dotIN left
06:35
dotIN joined,
jfried joined
06:36
noganex left
06:38
in left,
noganex joined
06:39
wamba left,
in joined
|
|||
dalek | ecza: b0fc18e | sorear++ | / (2 files): Implement s:g/// |
06:41 | |
06:43
dotIN left
|
|||
sorear | rakudo: pugs: say pi.floor.WHAT; say pi.ceil.WHAT; say pi.round.WHAT | 06:45 | |
p6eval | rakudo 484a25: OUTPUT«===SORRY!===Confused at line 22, near "pugs: say "» | ||
06:45
dotIN joined
|
|||
sorear | pugs: say pi.floor.WHAT; say pi.ceil.WHAT; say pi.round.WHAT | 06:45 | |
p6eval | pugs: OUTPUT«IntIntInt» | ||
sorear | rakudo: say pi.floor.WHAT; say pi.ceil.WHAT; say pi.round.WHAT | ||
p6eval | rakudo 484a25: OUTPUT«Int()Method 'ceil' not found for invocant of class 'Num' in main program body at line 22:/tmp/OP6xxNAMb7» | ||
mberends | hugme: list projects | ||
somebody(TM): please add me as a committer to nqp | 06:46 | ||
sorear | hugme: add mberends to nqp | ||
ENOHUGS | 06:47 | ||
mberends: perl6/nqp? | |||
or did you want nqp-rx? | |||
06:48
in left,
Mowah joined
|
|||
sorear | oh, it looks like they're the same bit | 06:49 | |
mberends: you have committer access | |||
06:50
sftp left
06:51
in joined
06:52
lateau left
|
|||
sorear | rakudo: say (1.5+1.5i).floor | 06:52 | |
p6eval | rakudo 484a25: OUTPUT«floor is only defined for Reals, you have a Complex()» | ||
sorear | rakudo: say (1.5+0i).floor | 06:53 | |
p6eval | rakudo 484a25: OUTPUT«floor is only defined for Reals, you have a Complex()» | ||
mberends | sorear: thanks, I'll try again. | ||
06:55
dotIN left
06:56
dotIN joined
06:59
in left
07:01
in joined
07:05
dotIN left
07:08
dotIN joined
07:11
in left
07:12
in joined
07:16
dotIN left
07:17
in left
07:18
in joined
07:22
mj41 joined
07:23
dotIN joined
07:26
in left
07:28
in joined
07:29
cooper|ipad left
07:32
dotIN left
07:34
dotIN joined
07:36
in left
07:38
in joined
07:42
dotIN left
07:48
in left
07:49
lateau joined
|
|||
dalek | kudo/nom: 3f62167 | moritz++ | build/gen_ (2 files): [build] make failure of "make realclean" non-fatal Without this patch, --gen-parrot and --gen-nqp don't work on one of my machines, though I don't really understand why. |
08:06 | |
08:14
beek left
|
|||
dalek | ast: 1a7e180 | sorear++ | S06-signature/arity.t: Fudge S06-signature/arity for niecza |
08:18 | |
ecza: 17f7681 | sorear++ | lib/ (2 files): Add floor, ceiling, conjugate, round, truncate, sign |
|||
ecza: fbd41a7 | sorear++ | / (3 files): Add .arity to complement .count |
|||
08:20
daxim joined
08:25
amkrankruleuen joined
|
|||
sorear | std: our sub A::b { }; A::b | 08:28 | |
p6eval | std c843201: OUTPUT«ok 00:01 112m» | ||
sorear | std: our sub A::b { }; A::b(1) | ||
p6eval | std c843201: OUTPUT«ok 00:01 113m» | ||
sorear | std: our sub Niecza::generate-series { }; Niecza::generate-series(1) | 08:29 | |
p6eval | std c843201: OUTPUT«ok 00:01 113m» | ||
sorear | hmm | ||
niecza's copy of STD is rejecting this | |||
somehow | |||
08:39
lateau left
08:41
yinyin joined
08:42
jfried left
08:43
dakkar joined
08:48
jfried joined
|
|||
dalek | ecza: 44f7995 | sorear++ | / (3 files): Steal ... and ...^ from Rakudo |
08:56 | |
mberends | oooh, that's a big steal! | 08:57 | |
sorear | fear not, I took only a copy | 08:58 | |
moritz | :-) | ||
sorear | and with that... sleep | ||
moritz | good night | ||
mberends | 'night sorear | 08:59 | |
dalek | p: 0a8dc8b | (Martin Berends)++ | src/pmc/stable.pmc: [src/pmc/stable.pmc] eliminate gcc 'old-style function declaration' warning |
09:00 | |
09:01
Chillance joined
09:10
stephanepayrard_ joined
09:16
jfried left
09:17
jfried joined,
lumi left
09:25
daniel-s joined
09:28
kboga left
|
|||
moritz | Juerd: I seem to recall you had a page which tested a domain for ipv6 readyness - could you please share the URL again? | 09:42 | |
daxim | ipv6test.google.com/ omgipv6day.com/ test-ipv6.com/ | 09:51 | |
09:53
kboga joined
|
|||
moritz | daxim: that tests the current browser and connections, not a domain (presence of AAAA records, reachability of nameservers via ipv6 etc.) | 09:54 | |
daniel-s | "Yes. This web browser (at this location) looks safe. You'll just keep using IPv4." | ||
yay! | 09:55 | ||
09:55
woosley joined
09:56
woosley left
|
|||
moritz | .u þ | 09:57 | |
phenny | U+00FE LATIN SMALL LETTER THORN (þ) | ||
10:09
amkrankruleuen left
10:10
amkrankruleuen joined
|
|||
Juerd | moritz: ip6.nl/test | 10:11 | |
10:18
amkrankruleuen left
10:19
amkrankruleuen joined
|
|||
dalek | p: 43f2fc4 | (Martin Berends)++ | src/ (3 files): [nqp.ops P6opaque.c HashAttrStore.c] eliminate gcc 'conversion from void *' warnings |
10:19 | |
10:22
Mowah_ joined
10:24
mtk left
|
|||
moritz | mberends++ # nqp C cleanup | 10:25 | |
mberends | long way to go still... | ||
also need other_platform_C_compiler validation | 10:26 | ||
10:28
tokuhirom left
10:29
simcop2387 left
10:31
simcop2387 joined
10:33
ggoebel joined,
mtk joined
10:35
daniel-s left,
wamba joined
10:46
cookys joined
10:47
cookys left,
cookys joined
10:48
cookys left,
cookys joined
|
|||
jnthn | mberends++ # cleaning up my crappy C :) | 11:04 | |
11:05
icwiener joined
|
|||
mberends | I just hope I don't break anything in the process ;) | 11:08 | |
frettled | mberends: you're worried it could become C#? | 11:16 | |
mberends | frettled: in Soviet Russia, C# becomes You! | 11:18 | |
frettled | (: | 11:19 | |
jnthn | mberends: Hopefully not. I'll yelp tonight if you broke MSVC++ :) | 11:20 | |
mberends: Main way to break things: declarations don't come first :) | |||
mberends | jnthn: your yelps are what I'm worried about... | 11:22 | |
jnthn | mberends: Well, I'm sure after yelping I'm quite capable of fixing any little breakages too :) So don't worry. | 11:23 | |
I'm happy to lose some warnings on other compilers. | |||
fwiw, it *is* clean on my compiler except the ops. | |||
mberends | gcc warning "function call has aggregate value" has me stumped. Move on to next kind. | 11:24 | |
jnthn | wtf. :/ | ||
moritz | mberends: trac.parrot.org/parrot/wiki/BuildWarnings | ||
"The following warnings appear for me (Infinoid) on x86-64 gentoo linux, but are caused by system headers and thus are not Parrot's fault" | 11:25 | ||
11:25
pernatiy joined
|
|||
jnthn | oh lol :) | 11:26 | |
mberends | aye, they appear in nqp in a completely non-Parrot context :/ | 11:27 | |
jnthn | heh | 11:39 | |
I, er, can't imagine how I'd have triggered that | |||
mberends: Does it give a guilty line number? | 11:41 | ||
mberends | I can't imagine how either, because the macros in question do type their return values. I know what the warning is trying to say, but I cannot work out how to remedy it. The source line is src/ops/nqp.ops:1030: storage_spec ss = REPR(var)->get_storage_spec(interp, STABLE(var)); | 11:44 | |
an aggregate value is a struct in this case, so it's moaning because it would like it to be seen as a pointer to a struct. But inserting a * breaks it more :P | 11:46 | ||
jnthn | Sure. I mean, it's returning a struct rather than a pointer to one but that's what I wanted. | ||
No need to heap-allocate it. | 11:47 | ||
I dunno why it warns. | |||
"HEAP! USE THE HEAP!" | |||
moritz also finds that a bit silly | |||
mberends | that's why I'm moving on... | 11:48 | |
jnthn | .oO( This is where I get glad my compiler is not GCC. :) ) |
||
mberends | .oO(typical rationale from the people who brought you FrontPage and Internet Explorer ) |
11:50 | |
jnthn | :P | 11:51 | |
11:52
nymacro left
|
|||
moritz | rakudo: print $*IN.read(1) | 11:52 | |
p6eval | rakudo 484a25: OUTPUT«Buf()<0x1bfd028>» | ||
moritz | rakudo: print $*IN.read(1).decode | 11:53 | |
p6eval | rakudo 484a25: OUTPUT«L» | ||
moritz | it's a bit silly that our default IO doesn't support buffers | ||
mberends | did Rakudo get binary IO as well, or only UTF-8? | 11:55 | |
moritz | it got it last summer (masak++) | ||
mberends: but not via a flag on the file handle, but rather via read/write methods | |||
mberends | oh nice, I can update my webserver to send favicon files again | 11:57 | |
moritz | dunno about sockets though | ||
11:58
satyavvd left
12:01
wamba left
|
|||
arnsholt | jnthn/mberends: Some googling seems to indicate that (very) early C compilers didn't allow returning aggregates | 12:07 | |
lists.cistron.nl/pipermail/freeradi...00581.html | |||
mberends | arnsholt++: thanks! so at first glance we can choose between having a warning-free program that uses the heap to be truly portable, or ignore/disable a warning to use the current faster but not totally portable version. Rotten choices :( | 12:11 | |
12:13
slavik joined
12:14
wknight8111 joined
|
|||
mberends | thanks to pmc2c.pl, we have two files (in different folders) called serialization_context.c and serializationcontext.c | 12:15 | |
jnthn | Heh, this would seem to mean that I'm expected to write code that targets C compilers that are older than me. :P | 12:17 | |
mberends | lol | ||
arnsholt | Well, according to that post, C89 alllows it | ||
And since C89 is the minimum C required by Parrot, it's more a problem of a bit too zealous warning settings in the Makefile I think | 12:18 | ||
mberends | jnthn: if MSVCC compiled without warnings, then either it has a "feature" where every xxx.c gets an invisible #include "xxx.h", or otherwise the concept of function prototypes is alien. | 12:20 | |
jnthn | mberends: :) | 12:22 | |
colomon | yeah, I've chaffed at being told (recently) my $code should work with VC++ 6.0 (from circa 1997, I think), but not being about to use C89 features would be a new low. | 12:29 | |
12:35
envi_laptop joined
12:38
molaf joined
12:39
wamba joined
|
|||
frettled | Fascinerende. Omtrent kl 11 tok jeg en server ut av DNS, TTL var én time. Trafikken har holdt seg stabilt rundt 1,5-2,5 Mbps siden kl 12 (ned fra ordinære 10-12 Mbps). Det er mange med føkka DNS-cacher der ute. | 12:41 | |
oops, wrong channel, embarassing :( | |||
frettled considers going home to sleep. | 12:42 | ||
mberends | fascinating, all the same ;) | ||
dalek | p: d42ba1c | (Martin Berends)++ | src/6model/ (5 files): [src/6model] fix all gcc 'no prototype' warnings |
12:44 | |
frettled | mberends: yup :) b0rken DNS clients/caches are just so much fun | ||
jnthn | mberends++ \o/ | 12:50 | |
mberends | jnthn: the good news is that these fixes have not exposed any latent bugs in the code. Thus less reward for me, but kudos for you on your crappy compiler :) | 12:54 | |
mathw | frettled: I like the look of a language which uses é and ø and æ all at once :) | 13:11 | |
frettled | mathw: \o/ | 13:13 | |
mathw: it can get better: gi meg én porsjon crème fraîche med blåbærsyltetøy, takk | 13:14 | ||
frettled cheated with French loan words, but hey… | |||
jnthn | mberends: heh. Generally I understand C well enough to write working code, but do little enough C to have a good grasp on all the ins and outs of what different compilers like. :-) | ||
13:14
daniel-s joined
|
|||
jnthn tries to guess how "tøy" is pronounced | 13:15 | ||
13:16
daniel-s left,
daniel-s joined
|
|||
mathw | frettled: that's cheating | 13:16 | |
really I just have a soft spot for ø | 13:17 | ||
I don't know why, I always thought it was a cool letter and English should use it for something | |||
frettled | mathw: Here, no cheating: du får ikke varige mén av å spise blåbærsyltetøy, det er godt fôr for et karrièremenneske. | ||
mathw: some seem to think of it as a small zero | |||
13:18
wamba left
|
|||
mathw | nice! and the a with an o on the top that I can't figure out how to type | 13:19 | |
flussence_ | å! | ||
mathw | å | ||
oh, like that | |||
moritz | compose a a | ||
flussence_ | (altgr+{,a for me) | ||
mathw | compose a a on this thing gives me @ | 13:20 | |
which seems odd | |||
I got it with compose * a | |||
but this is PuTTY's compose key, because Windows is too boring to include one | |||
flussence_ | .oO( that's the great thing about keyboard layouts, there's so many to choose from... ) |
||
frettled | according to folklore, it's supposed to be a small 'a' on top of the 'a', but it got simplified. | ||
It's a cheat for writing the Danish 'aa' as a single character. | 13:21 | ||
moritz | did they want to circumvent twitter's 140 char limit back in the days? :-) | ||
huf | why's it look like an a if it's pronounced nothing like it? | 13:22 | |
that's gotta be intentional trolling :) | |||
flussence_ | or international trolling | 13:23 | |
tadzik | hello perl6 | ||
moritz | why does th look like a t and an h, if it's prononounced nothing like either of them | 13:24 | |
mberends | hi tadzik | ||
huf | moritz: yeah, it should look more like an f | 13:25 | |
moritz | .u thorn | ||
phenny | U+00FE LATIN SMALL LETTER THORN (þ) | ||
moritz wonders if thorn and the th have a common-ish origin | 13:26 | ||
tadzik | from Thor! | ||
jnthn | I think way back, English had a single letter for th as in the | ||
huf | yes, but then they realized they better fit into ascii or there'll be difficulties | 13:27 | |
jnthn | I think it may have looked like "y" or ended up looking like "y", thus "ye olde tea shop" | ||
huf | this being before unicode of course | ||
jnthn | Of course, today loads of people read that as literally "yee old-ee tea shop" :) | ||
huf | i only learned how to pronounce it sometime in the last 2 years i think | 13:28 | |
so yeah | |||
colomon | that's actually a sort of tricky question, isn't it? I mean, how many places named themselves "Ye Olde Book Store" thinking it was actually "ye" (rather than a funny spelling of "the")? | 13:30 | |
frettled | Ye \Ye\, Ye \Ye\ ([th][=e]), an old method of printing the article the (AS. [thorn]e), the "y" being used in place of the Anglo-Saxon thorn ([thorn]). It is sometimes incorrectly pronounced y[=e]. See {The}, and {Thorn}, n., 4. [1913 Webster] | ||
jnthn: thanks, I learned something new and unexpected today as well! | 13:31 | ||
colomon | and as a side note, in the Irish Traditional Music community, seeing someone spell "air" with an "e" on the end is almost always a dead giveaway that they have no clue what they are talking about. | ||
jnthn | frettled: Yes, I discovered that a while ago and was amused at how we mostly all get it so wrong in England. :) | 13:34 | |
frettled | jnthn: and everywhere else, apparently :D | 13:35 | |
daniel-s | is there any other good documentation for using grammars other than the using perl6 book and the synopses | ||
moritz | there are examples | 13:36 | |
and I wrote perlgeek.de/en/article/debug-a-perl-6-grammar | |||
PerlJam | good morning #perl6 | 13:45 | |
daniel-s: and you can always ask questions here :) | |||
daniel-s | lol, thanks | ||
I'm just working through the using perl book | 13:46 | ||
and it all seems mostly straightforward, except gammars, which seems to be the most important part | |||
PerlJam | daniel-s: ah! What's not straightforward about grammars? | ||
daniel-s | have try/catch statements and exceptions been implemented in rakudo? | 13:47 | |
PerlJam | (and I hardly think that grammars are the "most important part" of perl 6, but they are rather useful :) | ||
tadzik | toldya they're tricky :) | ||
moritz | daniel-s: yes, but throwing an exception inside a CATCH statement still causes an infinite loop :/ | ||
oh, and note that CATCH goes *inside* a try { } block | 13:48 | ||
colomon | I think grammars might be the "most important part" in the sense of being the one of the main killer features of p6 | ||
daniel-s | moritz, yea, that's something I noticed is different to how Java does them | 13:49 | |
there's no documentation in the using perl book | |||
PerlJam | colomon: I'll grant that it's one of the main conceptual areas where perl 6 dominates. :) | ||
daniel-s | and the wiki book is, well, basically useless: secure.wikimedia.org/wikibooks/en/...d_Handlers | ||
PerlJam | daniel-s: so ... you'd like to see a section on exception handling in the book? | 13:50 | |
daniel-s | PerlJam, well, my plan is to read the synopsis, experiment and figure it out | 13:51 | |
PerlJam | daniel-s: and then write a section for the book? :) | ||
daniel-s | sure, I can do that if you want | ||
actually, I'm unemployed in 2.5 weeks, my contract ends | 13:53 | ||
I would be happy to use my extra spare time working on perl6 | |||
PerlJam | daniel-s++ | ||
daniel-s | I don't really know perl6 that well to be particularly useful developing anything | ||
moritz | daniel-s: the main reason I didn't write anything about exceptions yet is that they aren't very robust in rakudo, and because I've been planning for ages to re-work at least parts of them | 13:54 | |
at least the built-in exceptions | |||
daniel-s | what parts of the using perl6 book are missing that are most urgent? | ||
moritz | and I've got a grant for that, and started doing it, but currently I don't spend much time on it (although I should) | ||
jnthn | moritz: Grant distractions are the norm, I think. :) | 13:59 | |
moritz | jnthn: :-) | ||
colomon | small children as distractions is certainly a norm. :) | ||
moritz is currently unsure if he should start his exception stuff in nom or master | 14:01 | ||
colomon | ah, yes, that can't be helping matters. | ||
jnthn | moritz: Probably nom. It's moving fast. | ||
moritz: Feel free to nudge me on blockers you hit with doing it in nom. | 14:02 | ||
moritz | one thing I didn't really consider so far is severity level of exceptions | ||
14:02
hudnix joined
|
|||
moritz | currently I think we should just have 'fatal' and 'warning' or so | 14:02 | |
jnthn | Suggested levels: MEH, OHNOES, OMG, OMFG | ||
14:03
MayDaniel joined
|
|||
moritz | OMFGWTF | 14:03 | |
14:03
yinyin left
|
|||
colomon | KYAG | 14:03 | |
colomon is really annoyed that it takes 18 lines of mindless C++ to do what he could have done in one line of p6 | 14:05 | ||
daniel-s | "An leading exclamation mark negates the meaning" | 14:06 | |
in the grammar chapter | 14:07 | ||
moritz | s/An/A/ or what is your point? | ||
daniel-s | should be a | ||
feel like I need to tell someone | 14:08 | ||
moritz hopes he remembers until he gets home | |||
daniel-s | want me to change it and send pull request? | ||
or just email someone? | |||
moritz | daniel-s: what's your github ID? | 14:09 | |
daniel-s | same as on irc | ||
14:09
hugme joined
|
|||
moritz | hugme: add daniel-s to book | 14:09 | |
jnthn | hugme: hug me! | ||
hugme hugs me! | |||
14:09
ChanServ sets mode: +v hugme
|
|||
hugme | moritz: ERROR: Can't add daniel-s to book: not authorized | 14:09 | |
14:09
moritz is now known as moritz_
|
|||
moritz_ | hugme: add daniel-s to book | 14:09 | |
hugme | moritz_: ERROR: Can't add daniel-s to book: not authorized | ||
14:09
moritz_ is now known as moritz
|
|||
moritz | oh, maybe it's because perl6 is an organization now :/ | 14:10 | |
daniel-s | what's the book? | ||
moritz | the source repo for the "Using Perl 6" book | 14:11 | |
daniel-s: you have commit access now. Feel free to fix it there directly | |||
daniel-s | um, sorry, can you undo that | 14:12 | |
not to sound like a retard, but I haven't really used git alot... I really don't want to stuff it up | |||
moritz | daniel-s: there's nothing you can screw up that we can't repair | ||
frettled | famous last words :D | ||
daniel-s | lol, ok :) | ||
moritz | daniel-s: if you prefer, I can remover your commit bit again, but I really don't see the need - we've had lots of git newbiew | 14:13 | |
*newbies | |||
daniel-s accepts that challenge :P | |||
moritz | jnthn: first blocker: multi-part names (X::Base) | 14:14 | |
workaroundable, but ugly | |||
14:14
jaldhar left
14:15
jaldhar joined
14:20
jaldhar left
|
|||
jnthn | moritz: oh | 14:24 | |
moritz: Move them to top of nommap :) | |||
moritz: I can do them this evening, or tomorrow. | |||
14:26
simcop2387 left
14:30
wtw left
14:32
simcop2387 joined
|
|||
moritz | jnthn: are attributes with accessors implemented? | 14:33 | |
jnthn | moritz: yes | 14:34 | |
nom: class Foo { has $.x is rw }; my $y = Foo.new; $y.x = 42; say $y.x | |||
ENONOMBOTYET :) | |||
We may be at the point where nom in evalbot would be useful though :) | 14:35 | ||
moritz | jnthn: oddly enough, my class X-Base { has $.backtrace; has $.message; method Str () { 'OH NOEZ' } } in CORE.setting makes the compilation take very long, I suspect it loops somewhere | 14:36 | |
jnthn | moritz: take very long as in, not finish? | 14:39 | |
moritz | jnthn: as in "I got impatient after a few minutes" | ||
jnthn | oh | ||
:/ | 14:40 | ||
ooh, does changing . to ! make the problem go away? | |||
*ooc | |||
moritz | commenting out the attributes makes the compilation of the setting finish in ~20s | ||
I'll try | |||
jnthn | ETOOSLOW | 14:41 | |
moritz | yes, with ! it seems to work | ||
14:42
kaare_ joined
|
|||
jnthn | OK, that tells me where to look :) | 14:43 | |
mberends | daniel-s: gitready.com/ | 14:44 | |
dalek | kudo/nom: bd689bb | moritz++ | NOMMAP.markdown: add multi-part names (Foo::Bar) to nommap |
14:47 | |
kudo/nom: 22b0fbc | moritz++ | / (2 files): start to stub in exception classes |
|||
14:48
stephanepayrard_ left
14:50
kboga left,
koban left
|
|||
jnthn -> home | 14:53 | ||
daniel-s | mberends, thanks | 14:55 | |
14:58
cognominal joined
15:08
dukeleto joined
|
|||
dalek | p: fd52b67 | (Martin Berends)++ | src/6model/knowhow_bootstrapper.c: [src/6model/knowhow_bootstrapper.c] fix gcc 'return value not used' warnings |
15:30 | |
15:31
JimmyZ joined
15:32
sahadev joined
15:35
Chillance left
15:37
thou joined
15:38
Chillance joined
15:42
jfried left
|
|||
dalek | p: 367a3bc | (Martin Berends)++ | src/6model/multi_dispatch.c: [src/6model/multi_dispatch.c] fix gcc 'parentheses around && within ||' warning |
15:45 | |
JimmyZ | good evening, #perl6 | 15:47 | |
15:48
molaf left
|
|||
pmichaud | good morning, #perl6 | 15:48 | |
JimmyZ | good early morning, pmichaud | 15:49 | |
15:49
MayDaniel left
15:54
jerome joined
15:57
kboga joined
16:10
thou left
16:19
daxim left
16:22
flatwhatson joined,
flussence joined
16:25
cizpre joined
|
|||
jnthn | evening, #perl6 | 16:26 | |
JimmyZ | good night | 16:29 | |
JimmyZ sleeps | |||
16:29
JimmyZ left
16:30
thou joined
16:31
thou left
|
|||
tadzik | 'evening | 16:37 | |
16:47
pernatiy left,
mj41 left
16:49
Lorn joined
16:51
timbunce joined
16:52
timbunce left
16:55
dakkar left
17:12
mj41 joined
|
|||
dalek | p: 60387e7 | (Martin Berends)++ | / (3 files): odel/reprs/P6opaque*] fix gcc 'incompatible pointer type' warnings, tweak .gitignore |
17:13 | |
jnthn | Time to see if I can still build :) | 17:14 | |
mberends | jnthn: aye, I've run out of warnings :) | ||
tadzik | and I've run out of memory. Chromium is a pig | 17:15 | |
flussence | building from source? :) | 17:16 | |
17:16
_twitch joined
|
|||
jnthn | mberends++ # nqp still builds :) | 17:16 | |
tadzik | also, swap is the worst invention I use | ||
mberends | \o/ | ||
tadzik | flussence: yeah, no binary builds for gentoo | ||
17:16
bluescreen10 joined
|
|||
tadzik | I think I'm going debian after exams ;) | 17:17 | |
17:17
cooper joined
|
|||
flussence | oh, right, there's chrome but not chromium binaries... | 17:17 | |
17:17
mj41 left
|
|||
TimToady | .oO(virtual memory, which is great except for the virtual part...) |
17:17 | |
flussence | (Firefox 5 is a *lot* more evil than Chromium - it somehow eats > 3GB of build directory space...) | 17:18 | |
17:19
Mowah left
|
|||
sorear | good * #perl6 | 17:19 | |
mberends | hi sorear | ||
jnthn | mberends: passes tests too | ||
o/ sorear | |||
colomon | \o | 17:20 | |
mberends | jnthn: what do you think of adding a slight performance penalty to eliminate the 'aggregate value' warnings? | 17:21 | |
colomon | sorear: don't suppose you have an Android phone? | ||
jnthn | mberends: do not want | 17:22 | |
mberends: It's a silly warning anyway. Just pragma it away if it bothers you. | |||
mberends | jnthn: ok | 17:23 | |
jnthn | mberends: That code ain't on a hot path at the moment but it could very easily get hotter... | 17:24 | |
mberends | jnthn: so my 'slightly' didn't fool you ;) | ||
17:25
_twitch left,
simcop2387 left
|
|||
colomon | ooooo, nqp just built for me!!! | 17:27 | |
17:29
kaare_ left
|
|||
tadzik | nice | 17:29 | |
colomon: what C compiler do you use? | |||
colomon | tadzik: i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5488) | 17:30 | |
17:30
mj41 joined
|
|||
TimToady | niecza: .say for 1,2,4 ... 65536 | 17:31 | |
p6eval | niecza v6-87-g44f7995: OUTPUT«1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536» | ||
TimToady | \o/ | ||
colomon++ :) | 17:32 | ||
colomon | TimToady: eh? | ||
TimToady | didn't you do the original sequence stuff? | 17:33 | |
17:33
simcop2387 joined
|
|||
colomon | I did one iteration of it, yup. | 17:33 | |
I didn't do the earliest version, and I only helped with the most recent. :) | |||
TimToady | well, then, everyone++ :) | ||
colomon | though I was there in the trenches when you kept changing it faster than I could implement it. ;) | 17:34 | |
I am excited to see it up and running in niecza! \o/ | 17:35 | ||
niecza: .say for 1, 2, 3 ... 10 | 17:36 | ||
p6eval | niecza v6-87-g44f7995: OUTPUT«1 2 3 4 5 6 7 8 9 10» | ||
colomon | errr.... interesting | ||
rakudo: .say for 1, 2, 3 ... 10 | |||
p6eval | rakudo 484a25: OUTPUT«12345678910» | ||
colomon | it's not iterating over the sequence, it's just doing the entire thing as one object? | 17:37 | |
TimToady | niecza: say("[$_]") for 1,2,3...10 | 17:38 | |
p6eval | niecza v6-87-g44f7995: OUTPUT«[1 2 3 4 5 6 7 8 9 10]» | ||
TimToady | ayup | ||
niecza: say (1,2,3...10).WHAT | |||
p6eval | niecza v6-87-g44f7995: OUTPUT«» | ||
sorear | mathw: møøse not enough for you? | ||
TimToady | o_O | 17:39 | |
sorear: something ^^ is odd about sequences | |||
sorear | how odd! | 17:40 | |
TimToady | yes, 1 is always odd... | ||
sorear | niecza: say (1,2,3...10).perl | 17:41 | |
p6eval | niecza v6-87-g44f7995: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).list.item» | ||
colomon | niecza: .say for 1..10 | 17:42 | |
p6eval | niecza v6-87-g44f7995: OUTPUT«12345678910» | ||
colomon | niecza: .say for 1...10 | ||
p6eval | niecza v6-87-g44f7995: OUTPUT«1 2 3 4 5 6 7 8 9 10» | ||
TimToady | btw, niecza runs rosettacode.org/wiki/Kaprekar_numbers pleasantly fast | ||
tadzik | "it's even, even if some people think it's odd" | ||
sorear | niecza: say &Niecza::generate-series([1,2,3],10).perl | ||
p6eval | niecza v6-87-g44f7995: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).list» | ||
17:42
wamba joined
|
|||
sorear | niecza: say &Niecza::series-listop(((1,2,3),10)).perl | 17:43 | |
p6eval | niecza v6-87-g44f7995: OUTPUT«Unhandled exception: No value for parameter $exclude-limit in CORE series-listop at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE series-listop @ 0)  at /tmp/YJdO4zIzXR line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 1768 (CORE | ||
..C830_ANON @ 2)  a… | |||
sorear | niecza: say &Niecza::series-listop(((1,2,3),10), False).perl | ||
p6eval | niecza v6-87-g44f7995: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).list.item» | ||
sorear | niecza: say @(10).perl | 17:44 | |
p6eval | niecza v6-87-g44f7995: OUTPUT«(10, ).list» | ||
17:52
hudnix left
|
|||
sorear | found it | 17:52 | |
colomon | niecza: my @a := 1, 2, 4 ... *; say @a[100] | 17:54 | |
p6eval | niecza v6-87-g44f7995: OUTPUT«Any()» | ||
colomon guesses that's related | |||
diakopter | niecza: gist.github.com/1014924 | ||
p6eval | niecza v6-87-g44f7995: OUTPUT«===SORRY!===Any()Confused at /tmp/wzOGASDnal line 1:------> <html><body>⏏You are being <a href="raw.githuParse failed» | ||
sorear | niecza: my @a := (1, 2, 4 ... *); say @a[100] | ||
p6eval | niecza v6-87-g44f7995: OUTPUT«Any()» | ||
sorear | probably | ||
diakopter | TimToady: how fast | 17:55 | |
hm | |||
sorear | niecza: raw.github.com/gist/1014924/48b5f8...tfile1.txt | 17:57 | |
p6eval | niecza v6-87-g44f7995: OUTPUT«===SORRY!===Any()Confused at /tmp/0WdNzEPavi line 1:------> https⏏://raw.github.com/gist/1014924/48b5f8463Undeclared routine: 'https' used at line 1Parse failed» | ||
17:58
hudnix joined
|
|||
diakopter | bah github changed something | 17:58 | |
tadzik | p6eval bug? | ||
dalek | ecza: 904bb14 | sorear++ | / (3 files): Fix binding to existing @vars |
||
diakopter | niecza: <html><body> | ||
p6eval | niecza v6-87-g44f7995: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Str at /tmp/FitXkF8mG6 line 0 (MAIN mainline @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 1768 (CORE C830_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 1769 (CORE module-CORE @ 57)  | ||
.. at /home/p6… | |||
17:59
masak joined
|
|||
masak | salve, #perl6. | 17:59 | |
diakopter | niecza: <html><body>masak | ||
p6eval | niecza v6-87-g44f7995: OUTPUT«===SORRY!===Any()Confused at /tmp/9xciz8uZMh line 1:------> <html><body>⏏masakParse failed» | ||
tadzik | yayitsmasak! | ||
sorear | o/ masak | ||
17:59
molaf joined
|
|||
mberends | salvete masak | 17:59 | |
diakopter | niecza: <html><body><masak> | ||
p6eval | niecza v6-87-g44f7995: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Str at /tmp/6cJ9ps6U9p line 0 (MAIN mainline @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 1768 (CORE C830_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 1769 (CORE module-CORE @ 57)  | ||
.. at /home/p6… | |||
sorear had something to say to masak but forgot it... | |||
masak | diakopter: I'm having difficulty mapping your actions to a rational intent... :P | 18:00 | |
maybe I should backlog... | |||
diakopter | attention | ||
p6eval's gist downloading broke | 18:01 | ||
masak | ah. | ||
sorear | well, .say for 1,2,4...* works | ||
masak | #perl6, do you think Perl 6 should have a platform-independent way to do getch? (i.e. grab one keypress) | 18:02 | |
if yes, what should be the syntax? if no, how will the various implementations provide that functionality? | 18:03 | ||
tadzik | is there a platform independent way? | ||
colomon | masak: seems like it should be provided | ||
tadzik | syntax: [] :P | ||
.u square | |||
phenny | U+32CC SQUARE HG (㋌) | ||
tadzik | also, this :) | 18:04 | |
jnthn | .u finger | ||
phenny | jnthn: Sorry, no results for 'finger'. | ||
jnthn | aww | ||
:) | |||
18:04
kst joined
|
|||
diakopter | .u middle | 18:04 | |
phenny | U+00B7 MIDDLE DOT (·) | ||
masak | jnthn: did you just give me the finger in a very elaborate way? :P | ||
flussence | .u 2328 | ||
phenny | U+2328 KEYBOARD (⌨) | ||
mberends | masak: it would be nice, but historically platforms have made the promise very difficult to keep in a portable way. | ||
jnthn | masak: Would I :P | 18:05 | |
sorear | masak: use Term::ReadKey; ReadKey() | ||
masak | sorear: finebyme. | ||
mberends: I suspected as much. | 18:06 | ||
sorear: then I guess my question becomes: would Rakudo and Niecza be able to have the same Term::ReadKey? | |||
TimToady | perl6: my $x = ⌨; | ||
p6eval | niecza v6-87-g44f7995: OUTPUT«===SORRY!===Any()Bogus term at /tmp/TA5r87G3Ie line 1:------> my $x = ⏏⌨;Parse failed» | ||
..rakudo 484a25: OUTPUT«===SORRY!===Confused at line 22, near "my $x = \u2328;"» | |||
..pugs: OUTPUT«decodeUTF8': bad data: '\9000'***  Unexpected "$x" expecting "=", context, ":" or "(" at /tmp/2x6HDudne6 line 1, column 4» | |||
masak | ETOOCUTE | 18:07 | |
sorear | masak: probably niecza-clr and rakudo/nqpnet could share a Term::ReadKey | ||
based on use System::Console | |||
masak | I meant rakudo/parrot. | 18:08 | |
mberends | masak: I cannot remember the source, but somewhere there is a good explanation of the futility of trying to be too universal. | ||
masak | mberends: agree. which is why this is probably a good problem for a module to tackle. | ||
mberends | +1 | ||
sorear | niecza> (@(1..10)).perl | ||
"(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).list" | |||
niecza> (1...10).perl | |||
"(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).list" | |||
niecza> (1...10)[2] | |||
Any | |||
niecza> (@(1..10))[2] | |||
3 | |||
masak | I'm just wondering whether even making the module VM-independent is too tricky a task... | ||
tadzik | masak: you can add it to our awesome wiki page | ||
sorear | wtf of the day | ||
TimToady | till now I've just used run "stty raw -echo min 1 time 1"; and then push @INPUT, $TTY.read(10)[*]».chr unless @INPUT; :) | 18:09 | |
masak | TimToady++ | ||
hardly platform-independent, but at least it works, today :) | |||
...on Unix. | |||
TimToady wonders whether cygwin provides stty... | 18:10 | ||
flussence | just asked some guy with it, he said yes | 18:11 | |
jnthn | masak: getch is available on Win32. | ||
18:12
mj41 left,
mtk left
|
|||
tadzik | jnthn: t/p6regex/01-regex.t fails for nqp, expected? | 18:13 | |
also, (17 TODO tests unexpectedly succeeded) | 18:14 | ||
sorear | it gets weirder! | ||
niecza: say (1...10).shift.perl | |||
p6eval | niecza v6-87-g44f7995: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).list» | ||
18:14
mtk joined
|
|||
tadzik | niecza: say (1...10).shift | 18:14 | |
p6eval | niecza v6-87-g44f7995: OUTPUT«12345678910» | ||
sorear | oh | 18:15 | |
TimToady | something being mutable that shouldn't, seems | ||
sorear | it's producing a very un-flat list | ||
with lots of inner parcels | |||
18:15
colomon joined
|
|||
sorear | niecza: say (1,2,4...*).flat.[100] | 18:15 | |
p6eval | niecza v6-87-g44f7995: OUTPUT«1267650600228229401496703205376» | ||
TimToady | niecza: say (1,2,3,4,5).shift | 18:16 | |
p6eval | niecza v6-87-g44f7995: OUTPUT«Unhandled exception: Unable to resolve method shift in class Parcel at /tmp/ULV2u7sN1e line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 1768 (CORE C830_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 1769 (CORE module-CORE @ 57)  | ||
..at /home/p6e… | |||
18:18
kst left
18:19
kst joined
|
|||
dalek | ecza: e849cf7 | sorear++ | lib/CORE.setting: Sprinkle .flat in ... impl; my @a := 1,2,4...*; say @a[100] works now |
18:19 | |
albot: 8129711 | (Perl 6 Evalbot)++ | lib/EvalbotExecuter.pm: fix gists |
18:21 | ||
diakopter | evalbot control restart | ||
18:21
sftp joined,
p6eval joined,
ChanServ sets mode: +v p6eval
|
|||
diakopter | niecza: gist.github.com/1014924 | 18:22 | |
TimToady | it would be nice to find a way not to return extra parcels in the first place, I suppose | ||
colomon | sorear++ | ||
p6eval | niecza v6-87-g44f7995: OUTPUT«1 9 45 55 99 297 703 999 2223 2728 4879 4950 5050 5292 7272 7777 9999» | ||
18:23
thou joined
|
|||
diakopter | gists work again | 18:23 | |
masak | diakopter++ | ||
18:24
ChrisDennis joined
|
|||
frettled skips the obvious pun. | 18:27 | ||
diakopter | what's the obvious pun :) | ||
masak | ENOTSOOBVIOUS | 18:29 | |
18:32
cizpre left
|
|||
mberends | ENOMEANWHATIMEAN | 18:32 | |
frettled | Oh, you'll get the gist of it, eventually. :) | 18:34 | |
mberends | ARGH | ||
frettled | zukzez | ||
mberends | ++frettled | 18:35 | |
18:37
kst left
18:38
kst joined
|
|||
masak | dåligt. :) | 18:38 | |
18:40
bluescreen10 left
18:43
wamba left
18:53
birdwindupbird left
18:55
bluescreen10 joined,
molaf left
18:56
phenny joined
18:57
phenny left
18:59
phenny joined
|
|||
sorear | I am now embarking on a project to make niecza generate Metamodel::StaticSub objects during the parse itself | 19:03 | |
pmichaud | I have new build systems for rakudo and nom... shall I push now or after I get back from errands? | 19:09 | |
*nqp and nom | 19:10 | ||
tadzik | how about now? | ||
pmichaud | I can push now but won't be available to troubleshoot/fix issues for about 45 mins (possibly a little longer) | ||
frettled | pmichaud: then them kids will have to cope for themselves for a while ;) | ||
pmichaud | I'll push the nqp changes. | 19:11 | |
tadzik | we will have time for testing | ||
dalek | p: 878e8ff | pmichaud++ | / (5 files): Major refactor of build/Configure system (based on new tools/lib/NQP/Configure.pm being developed for Rakudo's build/Configure system). |
||
frettled | \o/ | ||
pmichaud | I've an update or two to make on nom... will push it when I get back. Testing of nqp build/configure welcome. | ||
jnthn | Oh noes...some breakage in nom :( | 19:14 | |
(not related to pmichaud++'s push) | |||
darn...this looks bad :/ | 19:15 | ||
PerlJam | jnthn: that's okay ... I have every confidence that you can fix it :) | 19:16 | |
jnthn | oh ouch | 19:17 | |
- if (defined && desired == DEFCON_UNDEFINED || | |||
- !defined && desired == DEFCON_DEFINED) { | |||
+ if ((defined && desired) == DEFCON_UNDEFINED || | |||
+ (!defined && desired == DEFCON_DEFINED)) { | |||
wtf | |||
That totally changes the semantics of it | |||
gcc-- # stupid warnings | |||
<- much smarter than the compiler, but thanks. | 19:18 | ||
sjohnson shakes fist at compiler | 19:19 | ||
jnthn | Seriously, how could the conditional have even been worth warning about? && being higher precedence than || is hardly news. | 19:20 | |
19:21
tyatpi joined
19:23
slavik left
|
|||
TimToady | I suppose they thought someone could think of it the wrong way, and add parens in the wrong place for clarity...oh wait... | 19:23 | |
jnthn | :P | 19:24 | |
19:24
daniel-s left
|
|||
jnthn | mberends++ # cleanup - especially my misspelling of Rakudo :) | 19:24 | |
19:25
daniel-s joined
|
|||
tadzik | I find it funny that the typo was in so many places. I suppose jnthn++ writes "rak[TAB]" in his ide | 19:26 | |
jnthn | :) | 19:27 | |
Such things tend to pass me by very easily. | |||
Thanks to my crappy eyewight, I'm pretty dependent on reading whole words at once for any kind of decent reading speed. Anything that's the right shape fits. | |||
dalek | kudo/nom: 503fbd3 | jnthn++ | src/binder/multidispatch.c: Fix regression introduced by a fix for a warning that GCC shouldn't have bothered giving anyway. Hopefully doesn't bring the warning back... :-/ |
19:28 | |
jnthn | I realize this when trying to learn new languages that have unfamiliar chars or char clusters. My reading speed becomes depressingly slow if I have to actually read the individual letters. :( | 19:29 | |
So, back to the nommap... | 19:31 | ||
19:33
kboga left
|
|||
tadzik | fwiw, nqp builds for me, when I use "--prefix=`parrot_config prefix`". Maybe that should be the default, and cwd()."install" will be used when we use(d) --gen-parrot? | 19:37 | |
flussence | masak: your latest blog post seems to be suffering from partial dd/mm/yy-itis... | 19:39 | |
19:40
mj41 joined
|
|||
masak | flussence: the date looks wrong, yes. | 19:46 | |
fixing. hoping it won't spam planet perl 6. | |||
19:46
lue joined
19:48
slavik joined
|
|||
frettled | masak: hey, if it does, _two_ posts! Can't be worse than the Dear Dave multi-posts @reddit (i.imgur.com/jVvPQ.jpg) | 19:52 | |
mberends | jnthn: I see that I misread your mind about where the closing paren had to go :) | ||
masak | frettled: huh. don't know what that's about, but it looks ambitious in a time-wasting kind of way. | 19:54 | |
frettled | masak: yup | 19:56 | |
masak: basically a bunch of people have submitted the exact same image | 19:57 | ||
jnthn | moritz: ping | ||
frettled | masak: so don't worry about a double-post at Planet Perl 6 :D | ||
jnthn | mberends: I guess if you didn't write the binder it may be less obvious... :) | ||
moritz | jnthn: pong-ish | ||
jnthn | moritz: Good news: I just pushed multi-part names. | 19:58 | |
moritz: Bad news: only for our-scoped stuff and...you're in the setting. | |||
moritz | \o\ | ||
19:58
envi_laptop left
|
|||
jnthn | moritz: However, easy workaround | 19:58 | |
> my package Foo { class Bar { method m { say 42 } } }; Foo::Bar.m | |||
42 | |||
frettled | jnthn++ – looking forward to more | 19:59 | |
jnthn | Or I could just make my class Foo::Bar { } mean that Foo is lexical and it's packages the rest of the way down. :) | ||
dalek | kudo/nom: 26dc6d6 | jnthn++ | src/ (5 files): Get multi-part package names workinger. Note, only for our scope, which probably doesn't help moritz++ quite so much... |
||
jnthn | The thing is I'm not quite sure what the spec wants it to mean... :) | ||
Anyway, nested packages in nom are (though almost certainly not yet perfect) a lot less hosed than in master. | 20:00 | ||
moritz | jnthn: I think that's roughly what the spec wants, except that class Foo::Bar { }; Class Foo { } should not give a redeclaration error | 20:03 | |
jnthn | moritz: Yeah. I know how to fix that one. | ||
tadzik | yay | ||
jnthn | moritz: Also I golfed the hang you found. | 20:05 | |
jnthn tries to get it under the C debugger | 20:06 | ||
20:06
cooper|ipad joined
|
|||
jnthn | oh wow | 20:07 | |
diakopter waits | |||
jnthn | I managed to make exception handler search into an infinite loop | ||
frettled | nice :) | ||
20:08
wamba joined
|
|||
jnthn | Turns out 30% speedups thought up in the shower can be slippery... | 20:08 | |
frettled | Well, is the infinite loop 30% faster than it used to? :D | ||
mberends | jnthn: so is all that work now down the drain? | 20:09 | |
tadzik | nehehehehe :) | ||
An Actual Laughter Was Produced | |||
jnthn | hehe...I have a call chain that loops back on itself. | 20:10 | |
mberends: I think I can clean up the bug... | |||
Better than packing out the change. The optimization puts performance head and shoulders above what it would be otherwise... | 20:11 | ||
pmichaud | back agaub | ||
back again | |||
mberends | jnthn: don't throw the baby out with the bathwater! | ||
jnthn | Hope it's not too hard to fix, or I might throw in the towel | ||
pmichaud: o/ | 20:12 | ||
mberends | jnthn: you'll manage, you're not wet behind the ears any more | ||
tadzik | fwiw, nqp builds for me, when I use "--prefix=`parrot_config prefix`". Maybe that should be the default, and cwd()."install" will be used when we use(d) --gen-parrot? | ||
frettled | mberends: very droll :D | ||
tadzik | pmichaud: ^ | ||
pmichaud | tadzik: nqp is supposed to use the prefix of whatever it finds for parrot, iirc. | 20:13 | |
is it not doing that? | 20:14 | ||
tadzik | nope. Configure.pl has "prefix = opts<prefix> || cwd()."install/"" or something like that | ||
pmichaud | tadzik: I think that doesn't mean anything if a parrot is found/provided, though. | 20:15 | |
tadzik | pmichaud: see github.com/perl6/nqp/blob/master/C...ure.pl#L38 | ||
and then line 64 | |||
pmichaud | pj. tjat | ||
drat | |||
oh, that's a small bug, yes. | |||
dalek | p: 9ec488d | pmichaud++ | Configure.pl: Also look for any parrot in the search patch (tadzik++). |
20:16 | |
pmichaud | better? | ||
tadzik | lemee see | ||
yeah, it found it instantly now. pmichaud++ | 20:17 | ||
diakopter | the fix had wetter work | ||
pmichaud | how were you having it find parrot before? | ||
tadzik | pmichaud: --prefix=`parrot_config prefix` | 20:18 | |
pmichaud | oh, I see. You were setting prefix to the location of your parrot. | ||
got it. | |||
tadzik | yep | ||
20:18
wamba left,
wamba joined,
lichtkind joined
|
|||
jnthn | oh my. In debugging this I'm reading how Parrot looks up exception handlers | 20:19 | |
frankly, :'( | |||
masak | that bad, eh? :( | 20:20 | |
lichtkind | oh dear johnny it will be all-right :) | ||
20:21
cooper|ipad left,
cooper|ipad joined
|
|||
PerlJam wonders how the h in Jonathan migrated to just before the first n | 20:21 | ||
jnthn | yeah. It does a Parrot-level, GCable-allocating, signature-string parsing method invocation...on every call frame it finds that has a plausible handler. | ||
...until it finds one... | 20:22 | ||
masak | smooth. | ||
pmichaud | jnthn: that's whenever an exception is thrown? | 20:23 | |
jnthn | pmichaud: oh yes | ||
20:23
dorlamm joined
|
|||
jnthn | pmichaud: scheduler.c:912 | 20:23 | |
pmichaud | oh yeah, that's been there a while. :) | 20:25 | |
jnthn | *sigh* | ||
jnthn puts "exceptions" onto his "list of Parrot things to re-invent properly" list | |||
tadzik | 6ceptions! | ||
jnthn | At this rate I'll practically have written a VM. | 20:26 | |
masak | tadzik: :) | ||
pmichaud | that does seem to be the highest-probability outcome at this point. Maybe we could call it something like "nqp" or something like that :-P | ||
masak | "your sub call was 6cessful!" | ||
PerlJam | jnthn: But it'll be a VM tailored to Perl 6's needs. :) | 20:27 | |
jnthn | 6 sells! | ||
pmichaud | it'll be a vm that is more compatible with perl 6, but can still support other languages (hopefully) | ||
tadzik | heh, not only amazon reads my browsing history, it also thinks I'm programing in Ruby | ||
masak | "Parrot was in the way so we, um, routed around it." | 20:28 | |
jnthn | pmichaud: Innevitably, since every other language is just a Perl 6 DSL :) | ||
PerlJam | jnthn: I'm going to start telling Ruby people that. | 20:29 | |
jnthn | PerlJam: I hear they like DSLs, so I expect it'll be well received. ;) | ||
PerlJam | indeed :) | 20:30 | |
masak | PerlJam: in order for them not to take offense, prefix it with "don't take this the wrong way, but..." :P | ||
20:30
wknight8111 left
|
|||
mberends | masak: there, you drove off whiteknight++ | 20:30 | |
masak | o.O | ||
PerlJam | mberends: he's just retreated to a safer position where he can regroup and launch a better parrot for us :) | 20:31 | |
mberends | PerlJam: that's the Right Stuff :) | ||
tadzik | Damn, "Operating Systems Design and Implementation" cost as much as a Kindle | 20:34 | |
mberends: do they cost any less than 120$ in Netherlands? | 20:35 | ||
mberends | tadzik: I'll search for that | ||
tadzik | thank you | 20:36 | |
I now wonder if Tanenbaum wrote it in English originally ;) | 20:37 | ||
lichtkind | moritz: ding :) | ||
mberends | tadzik: €71.51 www.selexyz.nl/product/978013505376...mentation/ | 20:38 | |
20:39
BinGOs joined
|
|||
tadzik | not much better :/ | 20:39 | |
PerlJam | tadzik: if only you'd won masak's contest ... | ||
moritz | lichtkind: pong | 20:40 | |
tadzik | gah :( | ||
pmichaud | okay, I'm about to push the new rakudo build system :) | 20:42 | |
any reason to wait? | |||
Util | New RC solution: rosettacode.org/wiki/Non-continuous...ces#Perl_6 | ||
tadzik | pmichaud: no! :) | ||
moritz | tadzik: amazon.de has a used copy for 44.90 Euro + 3 Euro shipment (in .de) | 20:43 | |
jnthn | pmichaud: yes | ||
pmichaud: oh, darn :) | |||
pmichaud | yeah, already pushed :) | 20:44 | |
jnthn | pmichaud: I was only going to say yes so I could push first ;P | ||
moritz | tadzik: or new for 67€ | ||
tadzik | moritz: thanks, I'll consider that. .de is not far :) | ||
pmichaud | jnthn: shouldn't be any big conflicts, I don't think. | ||
jnthn | pmichaud: not unless you were patching Terrifying Op also, no. :) | ||
20:45
benabik joined
20:46
bluescreen10 left
|
|||
dalek | kudo/nom: 7ec8cf2 | pmichaud++ | / (6 files): New Configure/build system, part 1. |
20:46 | |
kudo/nom: 1b81860 | pmichaud++ | tools/lib/NQP/Configure.pm: Clean up some messages during Configure.pl . |
|||
kudo/nom: 412a42e | pmichaud++ | Configure.pl: Update Configure.pl --help text. |
|||
kudo/nom: 6c9783d | pmichaud++ | / (2 files): Add some better error message support and option handling. |
|||
kudo/nom: bcc0773 | pmichaud++ | Configure.pl: Search for nqp executable if not specified. Check NQP revision requirements. |
|||
kudo/nom: 39737ca | pmichaud++ | / (2 files): Clean up verify_install handling. |
|||
kudo/nom: 6818837 | pmichaud++ | tools/lib/NQP/Configure.pm: Re-sync NQP::Configure with version from nqp (bug in gen_parrot failing to return to correct directory). |
|||
kudo/nom: 424a6df | pmichaud++ | Configure.pl: Force a "make clean" after running Configure, output a better 'we are done' message. |
|||
kudo/nom: 7f2911c | pmichaud++ | / (6 files): Merge branch 'nom-build' into nom |
|||
kudo/nom: 5e2be40 | jnthn++ | src/ops/perl6.ops: When lying about call frames, be sure to cover our tracks. :-) (Actually, just don't introduce a loop in the call chain...) Fixes hang reported by moritz++. |
|||
20:47
benabik left,
daniel-s left,
daniel-s joined
|
|||
tadzik | I can has an umbrella? | 20:48 | |
masak | it's raining nom! | ||
pmichaud | perl Configure.pl --gen-parrot # dtrt again :-) | ||
mberends | flood! | ||
pmichaud | also, one can now do: perl Configure.pl --gen-parrot=master and it builds nqp/rakudo using the master branch of Parrot | ||
tadzik | masak: :D | ||
jnthn | pmichaud: What does --gen-parrot actually do? | 20:49 | |
pmichaud: NQP and Parrot? | 20:50 | ||
oh, you just said so | |||
:) | |||
pmichaud | --gen-parrot automatically implies --gen-nqp | ||
(since it wouldn't make sense to use an already existing nqp on a parrot you just generated) | |||
jnthn | k | ||
pmichaud | --with-parrot also implies --gen-nqp | ||
PerlJam | could you say --gen-parrot=<some sha1> --gen-nqp=<some sha1> ? | ||
pmichaud | PerlJam: Yes. | ||
PerlJam | cool | 20:51 | |
pmichaud | anything that's a valid argument to "git checkout " | ||
tadzik | niice! | ||
pmichaud | it still performs version checks (and still dies if version checks aren't satisfied). I'm likely to do a --no-version-check option to disable version checks | ||
or maybe that's just --force | 20:52 | ||
dalek | kudo/nom: d158f3f | pmichaud++ | build/ (4 files): Remove some outdated build files and scripts. |
||
kudo/nom: 7291309 | pmichaud++ | src/ops/perl6.ops: Merge branch 'nom' of github.com:rakudo/rakudo into nom |
|||
20:52
pernatiy joined
|
|||
tadzik | pmichaud: nom builds flawlessly for me | 20:52 | |
sorear back | |||
pmichaud | also, nqp and nom now share essentially the same configuration library (in tools/lib/NQP?Configure.pm) | ||
s{\?}{/} | 20:53 | ||
frettled | pmichaud++ - this is getting cooler and cooler | ||
pmichaud | other languages built using NQP can also use that library, so they don't have to duplicate all of the build scripts | ||
it's essentially just Configure.pl and tools/lib/NQP/Configure.pm | |||
(and tools/build/NQP_REVISION) | 20:54 | ||
jnthn | pmichaud: oh, excellent! | ||
pmichaud++ | 20:55 | ||
moritz | just one question I can't resist to ask... | ||
pmichaud: does it have tests? :-) | |||
pmichaud | moritz: no. But I'm not a big believer in testing configure/build systems. | ||
I'm fine if someone wants to write them, though. | |||
(they belong in the nqp repo) | |||
jnthn | moritz: re "has $.foo" in the setting, turns out there's an underlying issue and the bug I just fixed was hiding the reporting of it. | 20:56 | |
moritz suddenly feels like a valuable early adaptor :-) | 20:57 | ||
20:57
bluescreen10 joined
|
|||
PerlJam | "early adaptor"? | 20:59 | |
sorear | adopter | ||
jnthn | I dunno, he's adapted to the new codebase pretty quickly too :) | ||
moritz++ | 21:00 | ||
mberends | moritz is adepter than most early adopters | ||
slavik | ha! | ||
tadzik | this would make a good tongue-twister | 21:01 | |
slavik | clientsfromhell.net/post/6295037815...doing-over | ||
tadzik | an early adaptor early adapts to early adopters release | ||
sorear | so now, from the todo list TimToady gave me the other day, I have two items left, and both are problematic at an understanding level | ||
tadzik | slavik: was that in your company? :) | 21:02 | |
slavik | tadzik: it wouldn't be my company anymore ;) | ||
tadzik: no, we get dumber people than that | |||
sorear | 1. "sorting lists of pairs" - discussion deadlocked on how cmp should work. This is bad... | ||
2. "log" - how best to handle transcedental base arguments? | 21:03 | ||
21:04
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
masak | sorear: what does "transcendental" mean in a number system that only stores finite precision? | 21:04 | |
sorear | masak: "function that never returns a precise result" :) | 21:06 | |
PerlJam | that sounds like you just gave a new name to "floating point" | ||
masak | in the sciences, we call it an error bar. | ||
sorear | but that's beside the point | 21:07 | |
sbp | that's where all the washed up theoreticians go to drink | ||
masak | I don't think I see the point, yet. | ||
21:07
cooper|ipad left
|
|||
sorear | the point is that all the exp-related functions take an extra argument | 21:07 | |
PerlJam | sorear: do the most conservative thing possible. | ||
moritz | FatRats are arbitrary precision | ||
dalek | kudo/nom: 05e5fab | pmichaud++ | Configure.pl: Parameterize Configure.pl so it can potentially be used by languages other than Rakudo. |
||
sorear | like the base for logarithms, or the angle type for sin | 21:08 | |
masak | moritz: difference between arbitrary precision and infinite precision. | ||
mberends | I would not like my log to use this base en.wikipedia.org/wiki/Transcendental_number | ||
moritz | masak: I know. But the question remains where to cut off | ||
masak | yes, quite. | ||
pmichaud | All your transcendental base are belong to us. | 21:09 | |
sorear | optional arguments are expensive. I don't think "log($num, $base = Num::e)" is viable | ||
moritz | mutlis are OK too | ||
21:09
benabik joined
|
|||
masak | I still think we should learn as much from Guido/Python as possible, and not give the user too much precision at the expense of speed. | 21:09 | |
pmichaud | optional arguments are inherently expensive, or is that implementation dependent? | ||
masak | I doubt I will ever need log or exp or sin with finer precision than the ordinary float/double precisions. | 21:10 | |
sorear | pmichaud: prooobably the latter | ||
masak: where did precision come in to this? | 21:11 | ||
masak | sorear: if that's a stumbling point, let me get back to my "transcendental numbers can't be represented in the computer" point, and we'll go from there. :) | ||
felher | I don't know if the following is of any interest since S32::Basics is marked as DRAFT but i think S32-setting-library/Basics.pod has a broken reference in line 198. :) | 21:12 | |
masak | felher: care to fix it? :) | ||
sorear | masak: I tried to start a conversation about efficient handling of "use trigbase" and optional arguments. It got derailed by someone wanting to talk about computable reals. | 21:13 | |
pmichaud sees a commitbit preparing for launch | |||
masak | sorear: I'm sorry, I misunderstood you completely, then. | ||
sorear: right around "how to handle transcendental base arguments". | 21:14 | ||
21:14
wamba left
|
|||
masak | oh! you meant the type of function! | 21:14 | |
not the type of number. | |||
felher | masak: how? Wouldn't that require me to have commit-access to perl6/specs? Or am i misunderstanding something? | 21:15 | |
pmichaud | felher: we can give you commit access to perl6/specs | ||
sorear | felher: what's your github name? | ||
felher | pmichaud, sorear: felher | ||
pmichaud, sorear: just as here :) | 21:16 | ||
masak | rakudo: say "OH HAI".substr(-3) | ||
p6eval | rakudo 484a25: OUTPUT«HAI» | ||
masak | rakudo: say "OH HAI".substr(* - 3) | ||
pmichaud | felher: you now have a commitbit | ||
p6eval | rakudo 484a25: OUTPUT«maximum recursion depth exceeded in 'Cool::Num' at line 1934:CORE.setting in 'Cool::Num' at line 1934:CORE.setting in 'Cool::Numeric' at line 1921:CORE.setting in 'Cool::Numeric' at line 1921:CORE.setting in 'Cool::Num' at line 7674:CORE.setting in 'Cool::Numeric' | ||
..at li… | |||
masak | niecza: say "OH HAI".substr(* - 3) | ||
p6eval | niecza v6-89-ge849cf7: OUTPUT«Unhandled exception: Cannot use value like Sub as a number at /home/p6eval/niecza/lib/CORE.setting line 568 (CORE die @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 42 (CORE Any.Numeric @ 4)  at line 0 (ExitRunloop @ 0)  at | ||
../home/p6eval/niecza/lib/CORE.setting line 0 (… | |||
mberends sees ETOOMUCHRESPONSIBILITY flashing on felher's console ;) # Ignore it! | |||
felher | pmichaud: thanks a lot. | 21:17 | |
mberends: :P | |||
masak | because none of the implementations are conformant, I'm going to write a blog post that's not up to spec today. | ||
pmichaud | felher: please feel free to fix any typos/linkos you happen to find | ||
masak | will update it when implementations start to DTRT. | ||
pmichaud | ..."not up to spec?" | ||
or "up to spec but NYI"? | |||
masak | pmichaud: see the evaluations above. | ||
flussence | I guess in the sense of "here's how to use a <marquee> tag"... | 21:18 | |
sorear | pugs: say "OH HAI".substr(* - 3) | ||
p6eval | pugs: OUTPUT«OH HAI» | ||
masak | pmichaud: neither Rakudo nor Niecza discard negative arguments to .substr. both error out on Whatever. | ||
pmichaud | well, WhateverCode, actually. | ||
21:18
Zapelius joined
|
|||
masak | yeah, wh... :) | 21:18 | |
pmichaud | masak: can you add a test for it? | 21:19 | |
21:19
benabik left
|
|||
pmichaud | or is there one already? | 21:19 | |
felher | pmichaud: thnx, i will. :) | ||
masak | pmichaud: will investigate after I've blogged today. | ||
21:19
icwiener left
|
|||
flussence | there's no *s in the substr.t I'm looking at... | 21:20 | |
masak | TimToady has been quite clear that that's the way it should work. | 21:21 | |
sorear | masak: oh! I am sorry for the ambiguity. | ||
masak | sorear: me too. I could have picked it up way earlier. | ||
21:23
bluescreen10 left
|
|||
pmichaud | pmichaud@kiwi:~/rakudo$ ./perl6 | 21:33 | |
> say "OH HAI".substr(*-3) | |||
HAI | |||
> say "OH HAI".substr(*-5) | |||
H HAI | |||
> | |||
are the details of the params to substr documented anywhere, either in spec or in test? | 21:34 | ||
masak | possibly not. | ||
pmichaud++ | |||
well, there is some wording in S32/Str. | 21:35 | ||
pmichaud | I'm not too comfortable about committing this before it appears somewhere official :) | ||
mberends | it's now officially in the irclogs | ||
pmichaud | I'd even go for a reference in the irclogs :) | ||
masak | I'm sure TimToady has said it in the irclogs. | 21:36 | |
but I'm writing a blog post right now, so I won't look it up just now. | |||
flussence | the * thing looked odd to me at first, but it's easy to mnemonise it as "the entire string" | ||
pmichaud | well, "chars of the string" in this case. | ||
masak | flussence: it vibes really well with how arrays work. | ||
21:37
Tene left
|
|||
pmichaud | I don't mind committing the WhateverCode part, but the behavior on negative values isn't specced. | 21:37 | |
it's supposed to treat a negative value like zero, then? | |||
masak | no idea. | ||
pmichaud | yeah, that's what bugs me about no spec or tests :) | ||
masak | array indexings treat them like errors. :) | ||
21:38
Tene joined
|
|||
pmichaud | so, lacking a spec otherwise, officially it falls back to "the way Perl 5 does it" :-P | 21:38 | |
21:38
Tene left,
Tene joined
|
|||
dalek | kudo/nom: 0132c2e | jnthn++ | src/CORE.setting/Exceptions.pm: Fix up X::Base a little. |
21:39 | |
kudo/nom: b95108c | jnthn++ | src/CORE.setting/Attribute.pm: A little circularity sawing so we can use attributes with accessors in the setting. In theory we shouldn't need to do this; can track down the underlying issue later. |
|||
tadzik | X-Base sounds like Power Rangers or something :) | 21:40 | |
pmichaud | All your transcendental X-Base are belong to us. | ||
masak | pmichaud: irclog.perlgeek.de/perl6/2010-09-17#i_2838129 | 21:41 | |
blog post! strangelyconsistent.org/blog/june-8...of-strings | |||
21:42
Psyche^ joined
|
|||
frettled | string him up! | 21:42 | |
masak | now, about those tests... :) | ||
21:44
Patterner left,
Psyche^ is now known as Patterner
|
|||
lichtkind | good night | 21:45 | |
masak | night, lichtkind. | 21:46 | |
it's been a while since I was in roast. I... I suppose the right way to go about this isn't just to indiscriminately change all occurrances for -$N to *-$N, thus breaking all implementations that run S32-str/substr.t ? | |||
21:46
lichtkind left
|
|||
tadzik | like both? | 21:47 | |
pmichaud | I think indiscriminately change is okay, fwiw | 21:48 | |
flussence | yeah, the test's wrong in this case | ||
masak changes indiscriminately | |||
sorear | wrong tests are BAD | ||
speaking of which, what's "munch"? | |||
the spectests use it, but it's not mentioned in the specs | 21:49 | ||
pmichaud | munch is part of lists.... although it wasn't necessarily intended to be spec | ||
there will certainly be something like it, so .munch is fine | |||
mberends | "munch" seemed cute, on that day ;) | 21:50 | |
pmichaud | iirc, it got a tentative approval | ||
"that day" being very hectic, as it was :) | 21:51 | ||
masak | which is correct, substr($str, 2, -3) or substr($str, 2, *-3) ? | ||
we've only discussed the second argument so far. | |||
pmichaud | masak: I thought about that also -- I suspect the latter. | ||
masak | me too. | ||
pmichaud | since a "length" of -3 doesn't really make sense. | ||
flussence | if -3 is a length and not an end point... -3 wouldn't make sense anyway | ||
masak | pmichaud: though it doesn't feel as symmetric as the second argument. | ||
mberends | -3 would surprise me more | 21:52 | |
masak | when the third argument is negative, it ceases to denote a length and starts meaning position. | ||
pmichaud | well, it means "position from the end" :-P | ||
which involves "length" | |||
but we don't do "length" :-) | |||
21:53
y3llow_ joined
|
|||
pmichaud | so the argument name is incorrect anyway | 21:53 | |
21:53
pothos_ joined
|
|||
masak | I'll... just go back to indiscriminate changing :) | 21:53 | |
dalek | ecs: 451a32f | larry++ | S32-setting-library/Str.pod: spec WhateverCode in substr |
||
pmichaud | oooh! | ||
tadzik | wklej.org/id/543382/ -- nom runs this stupid thingy 15x faster than master | 21:54 | |
21:54
pothos_ is now known as pothos
|
|||
tadzik | perl6: say (2 < 5).WHAT | 21:55 | |
p6eval | rakudo 484a25, niecza v6-89-ge849cf7: OUTPUT«Bool()» | ||
..pugs: OUTPUT«Bool» | |||
tadzik | perl6: say ((2 < 5)).WHAT | ||
21:55
y3llow_ is now known as y3llow
|
|||
p6eval | rakudo 484a25, niecza v6-89-ge849cf7: OUTPUT«Bool()» | 21:55 | |
..pugs: OUTPUT«Bool» | |||
mberends | about substr, we recently discussed that .chars should more correctly be .graphs | 21:56 | |
tadzik | otoh, nqp is like 2x slower than nqp-rx on this | ||
TimToady | .chars is less confusing, and supposed to represent the current level, which is supposed to be graphs by default | 21:57 | |
dalek | ast: 813d445 | masak++ | S32-str/substr.t: [S32-str/substr.t] put in lots of Whatevers It was decided (and spec'd) that negative string indices and lengths aren't allowed in substr any more. Adapted the tests to reflect this. |
||
masak | I'm pretty sure I broke something. but it's hopefully a step in the right direction. | ||
flussence | breaking something is the whole point of TDD :) | 21:58 | |
(if it ain't broke, add more tests that are) | |||
masak | :) | 21:59 | |
'night, #perl6 | |||
flussence | i/ | ||
o/ even | |||
tadzik | I thought the point of TDD is breaking... nothing | ||
21:59
masak left
|
|||
flussence | when nothing is broke, that's where you do a git-commit :) | 21:59 | |
22:00
dorlamm left
22:01
cooper|ipad joined
|
|||
dalek | ecs: c788c3d | larry++ | S32-setting-library/Containers.pod: treat splice more like substr |
22:02 | |
ecs: 2164c2b | (Felix Herrmann)++ | S32-setting-library/Basics.pod: [S32/Basics] remove broken reference (L<Scalar>) |
22:04 | ||
kudo/nom: cb756d5 | jnthn++ | src/Perl6/Actions.pm: Get Num literals in place. We work them out at compile time and then just create the boxed constant once, not re-parse it every time at runtime. Note - the code here is probably duplicating something from HLL::Actions and could do with being in NQP, not PIR, where that's not the case. Please can somebody look at that? kthbx. |
22:05 | ||
pmichaud | omg, no | 22:08 | |
pmichaud again cries at the further bloating of handling numeric literals | |||
sorear | heh | 22:09 | |
jnthn | pmichaud: I can't do everything. | ||
sorear | numeric literal handling in Niecza is... I wouldn't say _bloated_ but chaotic would be charitable | ||
pmichaud | jnthn: I know... it just bugs me that the answer always seems to be "let's add yet another copy of the wrong way to do it into our codebase" | ||
jnthn | pmichaud: We now do *all* the computation at compile time. | ||
pmichaud | well, we don't compute +"123" at compile time. | 22:10 | |
jnthn | ? | ||
We could, but that's optimization. | |||
pmichaud | (no, we're not supposed to... but I don't want to have two separate sections of "calculate a number" code either) | ||
and this only handles literals that have an 'e', yes? | 22:11 | ||
jnthn | pmichaud: Yes, if they don't have an exponent, they're Rat. | ||
pmichaud | that's still going through the runtime calculation, then. | ||
jnthn | pmichaud: ? | 22:12 | |
pmichaud: What is? | |||
pmichaud | a literal like 123.45 | ||
jnthn | pmichaud: It's not, because the Rat type hasn't even been put back in place yet. | ||
pmichaud: But it shouldn't be computed at runtime when it is. | |||
pmichaud | either way, having the str2num functions in Perl6::Actions is wrongish, unless they will also be accessible at runtime. | 22:13 | |
jnthn | pmichaud: Where should they be? | 22:14 | |
pmichaud | we should have one set of conversion functions for all string to number calculations | ||
not a separate set for runtime and compile time | |||
jnthn | pmichaud: +1 | ||
Well, +1ish :) | |||
The actual computation should be the same | |||
For now we may have to cope with the code to stick it in the constant table and the code to produce the value at runtime being slightly different. | 22:15 | ||
pmichaud | why? | ||
jnthn | Maybe we can make them completely the same anyway. | ||
22:15
bis0n joined
|
|||
bis0n | Hello all! How to use regular expression to check if a variable contains only one number? | 22:16 | |
sorear | Question is both underspecified and overspecified. | ||
Step back, explain what you're trying to do. | |||
pmichaud | bis0n: in perl 5 or perl 6? | ||
jnthn | pmichaud: Because we don't have full-blown serialization just yet. | 22:17 | |
pmichaud: I may be able to fathom a way to deal with the issue anyway though. | |||
pmichaud | jnthn: I don't understand why that requires two separate ways of doing it | ||
jnthn: no, let me go ahead and write it. | |||
bis0n | pmichaud, in perl 5 but I can't join channel perl I don't know why | 22:18 | |
pmichaud | bis0n: do you mean "number" or "digit"? | ||
bis0n | number like [0-9] | ||
sorear | bis0n: have you been #perl-help recently? | ||
pmichaud | that's a digit | ||
/^\D*\d\D*$/ only matches strings containing exactly one digit | 22:19 | ||
/^\D*\d\D*$/ only matches strings containing exactly one digit | |||
bis0n | thx you, sorry for my poor english | ||
thank you very much | |||
22:20
cooper|ipad_ joined,
cooper|ipad left,
cooper|ipad_ is now known as cooper|ipad,
mj41 left
|
|||
bis0n | if my entry contain only digit can I use /^\d$/ ? sorry, I just want understand | 22:20 | |
jnthn | pmichaud: OK. | 22:21 | |
pmichaud: You'll figure out what I mean when you dig in. | |||
pmichaud | jnthn: I can put it in HLL::Compiler, HLL::Actions, or Perl6::Compiler | ||
(or Perl6::Actions) | |||
jnthn | pmichaud: I guess that is runtime visible. | 22:22 | |
pmichaud | I guess I'm asking if they are runtime visible or not. | ||
sorear | bis0n: I think what you want to do is if ($test >= 0 && $test < 10) | ||
jnthn | pmichaud: Not without an explicit import. | 22:23 | |
bis0n | oO yes that is simple! | ||
pmichaud | bis0n: yes, if your string contains only digits you can use /^\d$/. But if your string contains only digits, you can just check if its length is 1. | ||
sorear | bis0n: your problem was saying "regular expressions" | ||
bis0n | yes... but I need to check many possibilities... | 22:24 | |
sorear | it's called an X/Y problem | ||
bis0n | but now I think that is ok, I will test, thank you | ||
sorear | "How do I use X to do Y?" - classic bad question | ||
jnthn | pmichaud: To clarify, that just means use statement in the setting. | 22:25 | |
bis0n | yes all is ok now, thx! | ||
jnthn | pmichaud: e.g. use Perl6::Grammar; use Perl6::Actions; at the start of the setting. | 22:26 | |
pmichaud | jnthn: yes, that's what I expected. | 22:27 | |
sorear | Is it acceptable for spectests to mention 'Perl6::Compiler'? | ||
pmichaud | sorear: probably not. | ||
jnthn | pmichaud: oh...though...I need to clean up module loading a bit first...need a little more unification there | 22:28 | |
pmichaud: e.g. so NQP and Rakudo use the same "low level" module loading mechanism. | 22:29 | ||
pmichaud | jnthn: no problem | ||
jnthn | pmichaud: At the moment if NQP *and* Rakudo try to load the same module things get messed up. | ||
pmichaud: Actually really we should be able to do use Perl6::Compiler; and it'll bring in both of the above. | 22:30 | ||
Then we'll ahve the interface to it that we need for implementing eval. | |||
pmichaud | saying "use Perl6::Compiler" would import HLL::Compiler?! | 22:31 | |
that's.... weird. | |||
oh, you meant Perl6::Grammar and Perl6::Actions | |||
jnthn | pmichaud: er, I meant Perl6::Grammar and Perl6::Actions | ||
pmichaud | I can live with that. | ||
I'm thinking it might want to live as a method on the Compiler object. | 22:32 | ||
jnthn | pmichaud: HLL::Compiler? Or Perl6::Compiler? | ||
pmichaud | "Yes" | ||
on HLL::Compiler, and the overridable if needed by Perl6::Compiler | 22:33 | ||
(or NQP::Compiler or whatever) | |||
22:33
cooper|ipad left
|
|||
jnthn | pmichaud: I'm just thinking dependency ordering. | 22:33 | |
22:33
cooper|ipad joined
|
|||
jnthn | pmichaud: Perl6::Compiler needs to use Grammar and Actions | 22:33 | |
pmichaud: So in actions we'd not be able to see Perl6::Compiler | |||
Though of course there's compreg. | |||
pmichaud | surely there's a dynvar that points to our current compiler object :-) | 22:34 | |
(or there ought to be a ...) | |||
jnthn | Oh, that'd also work :) | 22:35 | |
Well | |||
but if you come in through pre-comp you may not be in the compiler ;) | |||
22:35
icwiener joined
|
|||
jnthn | oh wait | 22:35 | |
that's not a problem :) | |||
pmichaud | anyway, there's a method on HLL::Compiler that lets us find any known compiler object | 22:36 | |
jnthn | oh, cool | ||
:) | |||
I didn't know that. :) | |||
pmichaud | HLL::Compiler.compiler("nqp") -- returns the compiler named "nqp" | 22:37 | |
jnthn | You'll probably encounter SymbolTable.add_constant at some point. That's the thingy that knows how to add something to the "constant table" | ||
pmichaud | (yes, it currently does a compreg to find the compiler... but it could just as easily look up in an our %compilers shared variable) | ||
jnthn | Yeah, I'm happy we have compreg abstracted away. | ||
pmichaud | the adding of constants isn't the part that bugs me :) | 22:38 | |
jnthn | Note that add_constant also makes the real object too. | ||
pmichaud | that part's well abstracted | ||
jnthn | So you may want to split add_constant into two parts | ||
add_constant and make_constant or some such, so add_constant calls make_constant | |||
pmichaud | and it can be treated as an optimization until we have all of the other pieces (e.g., 'Rat') in place | ||
jnthn | Yeah. I expect us to make Rat and Complex constants at compile time too. | 22:39 | |
May as well go the whole hog. | 22:40 | ||
pmichaud | I just want to get us out of the habit of creating multiple routines for converting string literals into numeric values. | ||
s/literals/values/ | |||
if we're doing it for speed/performance, okay, but so far we've been doing it out of poor design | 22:41 | ||
jnthn | Oh, I'm all for the unification. | 22:42 | |
TimToady | well, to take it to the logical endpoint, all constant folding should be done by the same set of code that would have been called at run time | 22:45 | |
(this is how P5 does it, because that's how P4 didn't...) | |||
pmichaud | exactly. | ||
the notion of separate code handling things at compile time is one of the things I want to avoid. | |||
TimToady | and the P4 constant folder was always getting out of sync with the runtime code | ||
jnthn | Yes, that's exactly the direction I'm going in. | 22:46 | |
TimToady | all the compiler really has to worry about is purity, and then it's really just a BEGIN <expr> | ||
22:46
cooper|ipad left
|
|||
jnthn | TimToady: It's exactly the same mechanism I already built for trait_mod. | 22:47 | |
TimToady: When it goes searching for trait mods, it looks through the lexical scopes, finds the nearest instantiated dispatch and uses that. | |||
pmichaud | trait_mod is accessible at runtime? | ||
jnthn | TimToady: So all the workings are in place. | ||
pmichaud: Accessible | |||
pmichaud: But never called at runtime | |||
TimToady | cool. where P5 fell down, of course, was in having any decent serialization that was any faster than just recompiling :) | ||
jnthn | pmichaud: All trait_mods are called at compile time | 22:48 | |
pmichaud: They get dynamically compiled if needed. | |||
(e.g. on demand) | |||
pmichaud | jnthn: okay. the big difference here then is that not all string to number conversions happen at compile time :) | ||
jnthn | pmichaud: Well, not all trait mods do either I guess. | ||
TimToady | there's always BEGIN and eval | 22:49 | |
jnthn | eval...well, OK, that's compile time. :) | ||
buubot_backup | jnthn: ERROR: syntax error at (eval 28) line 1, near "; .." | ||
jnthn | .oO( eval fork while 1 # shut up... ) |
||
TimToady | buubot_backup: eval kill $$ | ||
buubot_backup | TimToady: 0 | ||
jnthn | Anyway, my point was that if we want to constant fold, we'll do it with whatever operators are in scope at that point, by calling them just as we would at runtime. Same code. | 22:51 | |
pmichaud | I'm thinking that constant eval should do the same. | ||
TimToady | constant is really BEGIN in disguise | 22:52 | |
jnthn | "constant eval"? | ||
pmichaud | given a literal like 123, we should use whatever the runtime uses to convert that to a numeric sonstant | ||
*constant | |||
mberends | jnthn: are we worried about whether there is just one instance of this code or that there may be two instances? | 22:53 | |
TimToady | perl6: constant @fib = 0,1,*+*...*; say @fib[10]; | ||
p6eval | rakudo 484a25: OUTPUT«===SORRY!===Constant type declarator not yet implemented at line 22, near "= 0,1,*+*."» | ||
..pugs: OUTPUT«***  Unexpected "@fib" expecting "=", context, ":" or "(" at /tmp/8PC8xA_7oZ line 1, column 10» | |||
..niecza v6-89-ge849cf7: OUTPUT«55» | |||
TimToady | niecza++ | ||
jnthn | mberends: I don't think that's the issue. | ||
pmichaud: OK, which moves the question to, what does the runtime use :) | 22:54 | ||
mberends | jnthn: I didn't think so either. | ||
TimToady | niecza: constant @fib = 0,1,*+*...*; @fib[10] = 42; say @fib[10] | ||
pmichaud | jnthn: right, which is what concerns me about putting it in Perl6::Actions :) | 22:55 | |
p6eval | niecza v6-89-ge849cf7: OUTPUT«42» | ||
TimToady | aha! | ||
niecza -= .5 | |||
jnthn | pmichaud: Well, that's only an issue if the runtime doesn't call that ;-) | ||
pmichaud | jnthn: right. anyway, I'll work on it. | ||
TimToady | niecza: constant @fib = 0,1,*+*...*; say @fib[10]; @fib[10] = 42; say @fib[10] | 22:56 | |
p6eval | niecza v6-89-ge849cf7: OUTPUT«5542» | ||
jnthn | pmichaud: I mean, in a sense you can put it in the Str class in the setting, as Str.Num, Str.Int, etc. | ||
pmichaud: But then we can't write any literal numbers/integers in the setting until after that. :) | |||
TimToady | you just have to use Church numbers :) | 22:57 | |
jnthn | Which is probably getting too cute with the circularity saw. :) | ||
pmichaud | jnthn: it's not Str.Num or Str.Int anyway | ||
at best, it's Str.Numeric | |||
jnthn | pmichaud: Sure, I was more calling out the general issue. | 22:58 | |
dalek | odel: f6f0936 | (Martin Berends)++ | c/README.markdown: [c/README.markdown] begin the 6model/c subproject |
22:59 | |
pmichaud | jnthn: okay, now that I've got the build systems fixed up... what priority next for me? Parcel and List? | ||
jnthn | pmichaud: Yes, I think so | 23:00 | |
pmichaud | okay | ||
I should be able to work on those tonight | |||
23:00
benabik joined
|
|||
jnthn | pmichaud: Provided it was performant, how would you feel about at least Array eventually being a role? | 23:00 | |
pmichaud: Same with Hash. | |||
pmichaud | why does it need to be a role, ooc? | 23:01 | |
jnthn | pmichaud: Otherwise any typing stuff becomes quite the cheat. | ||
pmichaud: It needs to do Positional[Foo] | |||
pmichaud | and only roles can do that? | ||
jnthn | Or Associative[Foo | ||
] | |||
Yes, only roles are parametric. | |||
I mean, OK, we *could* mix in the role to the container at the right point | |||
But that's icky. | |||
23:02
benabik left
|
|||
jnthn | pmichaud: Thing is that we can do all the "resolution" of the role at compile time. | 23:02 | |
(now...that wasn't possible before) | |||
pmichaud | what would be the declaration so that Array ~~ List ? | ||
mberends | pmichaud: if you have time, please look at test failures documented in github.com/jnthn/zavolaj/blob/mast...resident.t | 23:03 | |
pmichaud | mberends: will do. | ||
mberends | :) | ||
pmichaud | mberends: that's with latest rakudo release? | ||
mberends | yes | ||
pmichaud | mberends: okay. | ||
mberends | also for you to extend if needed: github.com/jnthn/zavolaj/blob/mast...ustomlib.t | 23:04 | |
jnthn | pmichaud: role List[::T] does Positional[T] does Iterable { }; role Array[::T = Mu] does List[T] { } # at a guess | ||
sorear | *shudder* | ||
pmichaud | jnthn: and it's okay if Iterable is a class? | 23:05 | |
jnthn | pmichaud: Feel free to dig into it as a class in the meantime - it'll probably be the weekend before I've got the roles stuff all in place. | ||
pmichaud: Does Iterable need to be a class? | |||
pmichaud: I thought it was meant to be a role? | 23:06 | ||
pmichaud | jnthn: at some point I get to a class. | ||
jnthn | pmichaud: Array gets punned | ||
perigrin | is there a strong distinction? Syn 6 suggested they were transmutable. | ||
pmichaud | Array ~~ List ~~ Iterable ~~ Cool ~~ Any ~~ Mu | ||
jnthn | e.g. into a class | ||
Ah | |||
23:06
icwiener left
|
|||
pmichaud | do all of those have to be roles? | 23:06 | |
jnthn | role Iterable is Cool { } # makes sure we add Cool as the parent | ||
No | |||
Iterable could be a class as well. | |||
sorear | Are you going to make Any a role now too? :/ | 23:07 | |
jnthn | sorear: What would that gain? | ||
pmichaud | jnthn: so, List will need to be a role so that we can do Positional[T] ? | ||
jnthn | pmichaud: Feels that way. | ||
pmichaud | checking. | 23:08 | |
jnthn | pmichaud: Only roles can take type parameters. | ||
pmichaud: It'd feel weird if Array could be type parametric, but list couldn't. | |||
*List | |||
23:08
Chillance left
|
|||
pmichaud | well, in general List wants to be List[Mu} | 23:09 | |
er, List[Mu] | |||
jnthn | Yes. | ||
pmichaud | it doesn't have many cases where it cares about the 'of' type | ||
sorear | I think the real problem here is that classes can't have parameters. | ||
pmichaud | same sort of thing goes for Parcel, which also does Positional | ||
sorear | Does anyone else think that int[$x] being a role is completely insane? | ||
jnthn | pmichaud: In what way are Array and List related? | 23:10 | |
pmichaud: Does Array just add mutability? | |||
pmichaud: And it uses the same underlying storage? | |||
pmichaud | has container as elements | ||
Array is a list of Scalar | |||
jnthn | pmichaud: I'm thinking ahead to my int @foo | 23:11 | |
(e.g. packed arrays) | |||
sorear | FWIW, I don't like the Array/List/Seq split | ||
pmichaud | I'm certain that Array and List are correct. Seq I'm less certain of. | ||
jnthn | sorear: Letting classes have parameters would hugely complicate classes. | 23:12 | |
sorear | it seems too coarse-grained - what happens with @( @list, @array ) ? | ||
pmichaud | sorear: it does exactly what it says :-) | ||
it creates a list from the Parcel containing @list and @array | |||
s/creates/returns/ | |||
jnthn | sorear: The immutability of roles helps also. | 23:13 | |
sorear: Augmenting a parametric class makes me shudder. | |||
23:14
flatwhatson left
|
|||
pmichaud | jnthn: (thinking ahead to my int @foo) I don't know that it's much different from my int $x | 23:14 | |
23:14
flatwhatson joined
|
|||
jnthn | (Yes, I did once wonder why classes didn't have type parameters too. 3 or so implementations of roles later, I've concluded it's the Right Thing.) | 23:14 | |
pmichaud | the major difference is how @foo handles .at-pos | ||
jnthn | pmichaud: Well, and the storage is allocates. | 23:15 | |
I mean, yes, it could grab the type out of the container descriptor just fine. | |||
daniel-s | good morning | ||
jnthn | We still need it to "does Positional[T]" though | ||
pmichaud | I'm not sure that my int @foo results in @foo being Array[int] | ||
it might need to be something like PackedArray[int] | |||
and perhaps it's not ~~ List | 23:16 | ||
but simply ~~ Positional. (It could still return Lists where needed, same as Parcel does) | |||
or, perhaps it is Array[int] which is also List[int], and List[int] is smart enough to know that it has different storage requirements. | 23:18 | ||
jnthn | I suspect the way it should really work is that we have a REPR for array storage that, like P6opaque does, looks at the storage requirements and does the Right Thing. | ||
I don't so much want us to do that *now*, I just want to make sure we don't design something now that makes it a horrible refactor to do that later. | 23:19 | ||
pmichaud | anyway, I don't see any immediate problems with making Array and/or List into roles | ||
jnthn | OK. I just have a *really* bad feeling about cheating on that. | ||
pmichaud | I think it falls out fairly naturally. | 23:20 | |
jnthn | "it"? | ||
pmichaud | (conversion to roles) | ||
jnthn | ah, OK | ||
Yes, I think it should. | |||
pmichaud | as long as role can inherit from a class, shouldn't be too much problem. | ||
sorear | What is the "Code" class used for? | ||
TimToady | if we have to start doing type introspection to figure out, say, what's mutable or not, that's maybe a danger sign | ||
pmichaud | Code == anything that is executable | ||
jnthn | sorear: It's generally not instantiated directly, it's the ultimate base class of executable things. | 23:21 | |
Block is the closest thing to it that's directly instantiated. | |||
Routine is also never instantiated directly; it's just the case class of Sub, Method, etc. | |||
sorear | jnthn: Is there any circumstance where I might see an $object which is ~~ Code but !~~ Block? | ||
TimToady | Code could be the default punning of Callable | ||
jnthn | sorear: class Thingy is Code { } # :-) | 23:22 | |
sorear: Given an extensible grammar, it only follows on that people will extend meta-objects too. | |||
Or created new sorts of them. | |||
pmichaud | I've internally speculated that Code might represent things that are inlinable and aren't blocks | 23:23 | |
but no, I haven't come up with any actual Code examples yet. | |||
jnthn | pmichaud: Thunks could potentially be Code. | ||
pmichaud | jnthn: yes, that too. | ||
jnthn | sub foo($a = ...) { ... } | ||
TimToady | but surely there are things that are Code that aren't inlineable | ||
jnthn | The default value there is potentially Code. | ||
Since it doesn't imply a lexical scope of its own. | 23:24 | ||
Whereas Block would. | |||
pmichaud | TimToady: I meant "instances of Code that aren't blocks", not that "Code represents only inlinable things". Sorry for ambiguity. | ||
TimToady | ah | ||
I usually see those... | |||
pmichaud | I agree I phrased it badly. | ||
anyway, Rakudo has Code as a class only because the specs mention it in various places | 23:25 | ||
although it looks like it's not in S02 anymore (I think it used to be...) | |||
TimToady | well, the conservative thing is probably to make too many distinctions and then drop the no-oppy ones; splitting up things that have been confused is much harder | 23:27 | |
pmichaud | agreed fully | ||
jnthn | +1 | ||
TimToady | there's really no way to tell in P5 whether an array was intended to be constant, for instance | ||
s/constant/immutable/ | 23:28 | ||
dalek | ecza/immediate: e94671e | sorear++ | src/ (2 files): [immediate] preliminaries; comp_unit |
||
TimToady | so there are a large number of optimizations that are effectively impossible | 23:29 | |
pmichaud | TimToady: yesterday you mentioned that you were tired of typing --gen-parrot... what would you like to see instead? | ||
TimToady | nothin' | ||
pmichaud | i.e., just "perl Configure.pl" does the right thing ? | ||
TimToady | that's the idea, at least until we have multiple VMs to pick from... | 23:30 | |
pmichaud | --gen-parrot is meant to distinguish between "download and build a copy of parrot" versus "use a parrot I already have installed" | 23:31 | |
not to distinguish among multiple VMs (at least, not yet) | |||
TimToady | yes, but the default optimizes for the uncommon case | ||
that's my plaint | |||
pmichaud | "uncommon case" meaning "someone that already has a parrot installed?" | 23:32 | |
TimToady | yes | ||
jnthn | I suspect it's common case for developer vs common case for user. | ||
TimToady | it would be interesting to poll everyone here as to whether they have a separate parrot | ||
tadzik | I do | ||
sorear | pmichaud: ($x = ... as Code) I made the same speculation | ||
jnthn | (And the user should be who we really optimize for...) | ||
(Though we want development to be conveneint too :-)) | 23:33 | ||
tadzik | I guess the user is usually a release user/star user | ||
sorear | I did, but stopped when I realized that Parrot's support for being installed was buggy | ||
flussence | I'm lazy and --gen-parrot is less thinking for me than maintaining a separate parrot install | ||
pmichaud | well, the user could be someone that installed "parrot-devel" package (e.g., on Debian) | ||
flussence | it's the same sort of situation as with firefox/xulrunner... | 23:34 | |
TimToady | "Downloading a newer parrot than you have...type ^C to not do that..." | ||
23:34
Moukeddar joined
|
|||
tadzik | I don't mind gen-parrot being default as long as it doesn't gen-parrot if I already have parrot | 23:34 | |
pmichaud | TimToady: at least on my system, that message scrolls up long before I have a chance to see it. | ||
tadzik | sleep & | 23:35 | |
TimToady | there's gotta be some way to have my cake and eat it too... :) | ||
pmichaud | TimToady: that's what I'm trying to get to, yes. | ||
would requiring --gen-parrot only once help out? or is that still too much of a pain? | 23:36 | ||
flussence | .oO( maybe Configure.pl should have a --* flag that fills in any blanks :) |
||
pmichaud | i.e., if there's already a parrot repo in the rakudo dir, assume --gen-parrot ? | ||
TimToady | well, if there's no parrot on the system, it would also seem that you need a parrot... | 23:37 | |
so maybe either of those conditions | |||
23:37
jaldhar joined
|
|||
pmichaud | unless the problem is simply that we weren't looking in the right place. :-) | 23:37 | |
TimToady | then the onus should be on the configurer to supply the right place, not on the person who just wants to do the subdir thing | 23:38 | |
pmichaud | would a prompt be okay? | 23:39 | |
"Presss ENTER if you want me to go ahead and download a parrot..." | |||
TimToady | well, if isatty | ||
flussence | as long as there's a flag to disable it... think of the distro maintainers :) | ||
jnthn | pmichaud: Another thing to consider could be having some configure.defaults file that people can set up locally that we look for. | 23:40 | |
pmichaud | presumably distro maintainers are specifying the flag that says where to find the parrot | ||
jnthn: I'm thinking primarily "fresh repo" | |||
TimToady | distro maintainers are not us stupid users | ||
jnthn | pmichaud: So folks who have a Parrot to hand to develop against but often want to re-configure often (Makefile.in changes) can also just have perl Configure.pl do the right thing for them. | ||
pmichaud | jnthn: oh, that's even easier, at least on *nix | 23:41 | |
sh config.status | |||
re-runs Configure.pl with the same options you used the last time. | |||
jnthn | oh sh... I'm on Windows. :) | ||
pmichaud | I'm open to creating a windows equivalent :) | ||
TimToady | surely Configure.pl is, er, a Perl script | ||
pmichaud | yes, it is. | 23:42 | |
TimToady | and Perl knows how to read in other files | ||
pmichaud | I went with sh config.status because that's what autoconf typically does | ||
yes, I could do perl Configure.pl --same-options-as-last-time | 23:43 | ||
TimToady | I distinctly remember putting in such capability once upon a time :) | ||
BAD DEFAULT | |||
I think perl Configure.pl should default to same options as last time, unless it's provable that one of them is bad, or is overridden | 23:44 | ||
pmichaud | do most Configure.pl (and other configuration scripts) use that as the default behavior? | 23:45 | |
i.e., assume same options as last time? | |||
flussence | the standard unixy ones I've encountered don't | 23:46 | |
TimToady | P5 keeps a Policy.sh | ||
so it saves some of them | |||
23:46
whiteknight joined
|
|||
TimToady | and this definitely has the flavor of policy | 23:47 | |
pmichaud | it's been a long time since I built a P5 from sources | 23:50 | |
23:51
envi_laptop joined
|
|||
pmichaud | anyway, I'll think about all of this some more. | 23:54 | |
I definitely would be okay with the idea that "cp config.status config.default" causes Configure.pl to re-use previous options | |||
so then a rebuild is always perl Configure.pl to use whatever options are in config.default | 23:55 | ||
afk, errands | 23:57 |