|
»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
|
00:04
FROGGS left
|
|||
| [Coke] | tadzik: I lied. removing a submodule is a PITA, and the directions I've found don't work for my version of git. we'll get it eventually. | 00:05 | |
|
00:11
cognominal left
00:12
cognominal joined
00:22
FROGGS joined
|
|||
| Tene | [Coke]: git submodules? | 00:30 | |
| [Coke]: What's the question? | |||
|
00:42
donaldh joined
|
|||
| [Coke] | Tene: github.com/rakudo/star/issues/27 | 00:42 | |
|
00:43
donaldh left
|
|||
| BenGoldberg | preflex: karma yoleaux | 00:46 | |
| preflex | yoleaux has no karma | ||
| yoleaux | 16 Aug 2013 18:09Z <[Coke]> preflex: DIE DIE DIE | ||
| diakopter | haha | ||
| BenGoldberg | r: ((map { $_ }, ^Inf) but role {}).print | 00:48 | |
| camelia | rakudo 10b9ac: OUTPUT«This type does not support elems in method REIFY at src/gen/CORE.setting:7493 in method reify at src/gen/CORE.setting:6719 in method reify at src/gen/CORE.setting:6706 in method gimme at src/gen/CORE.setting:7139 in method print at src/gen/CORE.setting:12… | ||
| BenGoldberg | That's a bug, right? | ||
| TimToady | it seems wrongish | 01:03 | |
| otoh, I can see why it might want to precalculate how much it's going to output, if it's using join | 01:04 | ||
| but if it's using join, that might be the bug :) | |||
| but the traceback seems to indicate that it's gimme/reify that is calling elems, which is...problematic | 01:06 | ||
| since the whole point of gimme/reify is to avoid precalculating things... | |||
| or possibly it's calling .elems to see how much is in the reified bit | 01:08 | ||
| one would, horrors, have to read the source code to find out :) | |||
| TimToady promised the implementors 13 years ago that he would stay out of implementation, but maybe I should consider breaking that promise someday :) | 01:09 | ||
| s/I/he/ | |||
|
01:10
Mouq joined
|
|||
| BenGoldberg | r: ((map { $_ }, ^Inf)).print | 01:16 | |
| camelia | rakudo 10b9ac: OUTPUT«(timeout)0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121… | ||
|
01:28
raiph joined
01:30
FROGGS left
|
|||
| TimToady | so two bugs maybe; it should know that the mixin is also infinite, but when it is sure, it maybe shouldn't be assuming finite | 01:35 | |
| ss/is sure/isn't sure/ | |||
| my n't key is going all gimpy again... | 01:36 | ||
| diakopter | Promise.break() | 01:48 | |
|
01:49
FROGGS joined
|
|||
| Mouq | #`[Perl 6 rocks. Just getting the little things Right saves like half the brain load writing it, in what little time I've spent with the language. (all contributers ever)++] | 01:50 | |
| raiph | Promises/A+ standardizes on the terms “fulfilled”, “rejected”, “reason”, and “pending” | ||
| (quoted from promisesaplus.com/differences-from-promises-a) | 01:51 | ||
| I don't know the standing of the Promises/A+ spec | |||
| but I like fulfil(ed), reject(ed), reason and pending | 01:52 | ||
| lue | .oO(Does this mean std will *run* my Perl 6 code too someday?) |
02:15 | |
|
02:29
araujo left
02:30
EvanTeitelman joined,
araujo joined
02:39
raiph left
02:55
colomon joined
|
|||
| colomon is in Canada for the third time this summer... | 02:59 | ||
| and jakudo still is giving org.perl6.nqp.runtime.UnwindException | 03:02 | ||
| :( | |||
| that's when building. | 03:08 | ||
|
03:11
raiph joined,
EvanTeit1lman joined
03:12
EvanTeit1lman is now known as bayr
03:17
raiph left
03:18
abnorman left
03:19
xilo joined
03:21
jaldhar joined
|
|||
| colomon | getting the error on both OS X and Linux | 03:24 | |
|
03:26
FROGGS left
03:29
preflex_ joined,
ChanServ sets mode: +v preflex_
03:30
preflex_ is now known as preflex
|
|||
| colomon | complete rebuild from scratch also fails | 03:35 | |
| and with that, I'm going to bed. | |||
|
03:40
bayr left
03:44
EvanTeitelman left
03:50
colomon left
03:56
adu joined
04:03
skids left
04:11
BenGoldberg left
|
|||
| Mouq | Following “Building Rakudo on JVM” with the latest everything AFAIK and OS X, I also fail, but with “No registered operation handler for 'jvmisnull' in …” | 04:20 | |
| This might just be me doing something dumb though | |||
| moritz | Mouq: that usually means your copy of nqp is too old | 04:22 | |
| TimToady | that op was added on Aug 7, so yeah | 04:23 | |
| Mouq | :p 'k, thx. Wanted to see if I could duplicate colomon's error | 04:24 | |
| TimToady | FROGGS++ already bisected it earlier, and 144a3f87f58e576159c1dea7b6a8854f2bdc1e86 is apparently in error | 04:26 | |
| 5f460187c89ec42b98925dccebe1962b5efdbc60 is the last good commit | 04:27 | ||
|
04:29
grondilu joined
|
|||
| adu | hi TimToady | 04:31 | |
| TimToady | o/ | ||
| Mouq | Wow. So all the error does is tell you that it's throwing an error | 04:40 | |
| TimToady | "Something's wrong at line I dunno!" | 04:41 | |
|
04:42
benabik joined
|
|||
| diakopter | "Either something's wrong or this error is wrong" | 04:43 | |
|
04:45
aindilis` joined
04:55
shinobicl_ joined
04:59
fridim__ joined
05:08
xilo left
05:12
FROGGS joined
|
|||
| Mouq | Very aside, is something like Storable::dclone() needed in Perl 6? | 05:13 | |
| moritz | yes | 05:16 | |
| Mouq | Err, asking if/how to deep copy. I wasn't really plan on implementing Storable >_> | 05:19 | |
|
05:19
FROGGS left
|
|||
| TimToady --> bed # jet slagged | 05:22 | ||
| moritz | first implement it, then use it :-) | ||
| Mouq | Goodnight TimToady! | 05:23 | |
| The error in 144a3f8 comes from src/core/Array.pm, I've determined that much | |||
|
05:24
adu left
05:25
FROGGS joined
|
|||
| Mouq | Ah. Okay, the answer appears to be "yes" indeed. I wasn't sure what question you were answering. But: | 05:29 | |
| r: my $x = {"a"=>{"a"=>{"a"=>3}}};my $y = $x;$y<a><a><a>++;say $y.perl;say $x.perl; | |||
| camelia | rakudo 10b9ac: OUTPUT«{"a" => {"a" => {"a" => 4}}}{"a" => {"a" => {"a" => 4}}}» | ||
| Mouq | I want to deep clone so that $y !~~ $x at the end | 05:30 | |
| But, so, there really isn't a method for this? | 05:31 | ||
| moritz | no | 05:32 | |
| Mouq | Err, wait my bad in the previous comment; I got mixed up because I was testing Array, it's src/core/Hash.pm that messes everything up | 05:33 | |
| checkout 144a3f8 and then git checkout 5f46018 src/core/Hash.pm and it works | 05:34 | ||
|
05:47
FROGGS left
05:53
FROGGS joined
|
|||
| cognominal | jnthn++ # slides for YAPC::EU | 06:03 | |
|
06:05
fridim__ left
06:11
iSlug joined
|
|||
| dalek | : d21eaa1 | (Tobias Leich)++ | STATUS.md: status update after nqp changes |
06:17 | |
|
06:22
SamuraiJack joined
|
|||
| dalek | kudo/nom: ade8bc1 | (Tobias Leich)++ | src/core/ (3 files): unbreak build by reverting 144a3f87f58e576159c1dea7b6a8854f2bdc1e86 |
06:28 | |
| Mouq | FROGGS: The offending lines seem to be src/core/Hash.pm:29-31 | 06:31 | |
| FROGGS | Mouq: before my last commit? | 06:33 | |
| Mouq | In 144a3f8 | ||
| FROGGS | hmmmm, I can just guess wildly what could be wrong with it | 06:34 | |
| Mouq | There are two other sets of basically the same thing within the file; maybe it's just because they don't get called, but `make` works when 29-31 are commented out | 06:35 | |
| FROGGS | .tell lizmat please read irclog.perlgeek.de/perl6/2013-08-17#i_7462070 | 06:42 | |
| yoleaux | FROGGS: I'll pass your message to lizmat. | ||
| PerlJam | r: my Buf $b .= new(); | 06:46 | |
| camelia | rakudo 10b9ac: OUTPUT«Cannot modify an immutable value in method dispatch:<.=> at src/gen/CORE.setting:1154 in any at src/gen/Metamodel.nqp:1461 in block at /tmp/1pFS9XvIZu:1» | ||
| PerlJam | r: my Buf $b = Buf.new(); | ||
| camelia | rakudo 10b9ac: ( no output ) | ||
| PerlJam | r: my Buf $b = $b.new(); | 06:49 | |
| camelia | rakudo 10b9ac: ( no output ) | ||
| Mouq | r: my Buf $b; $b .= new() #? | 06:50 | |
| camelia | rakudo 10b9ac: OUTPUT«Cannot modify an immutable value in method dispatch:<.=> at src/gen/CORE.setting:1154 in any at src/gen/Metamodel.nqp:1461 in block at /tmp/blB71uYruw:1» | ||
|
06:53
kaare_ joined
06:59
abnorman joined
07:14
PacoAir joined
|
|||
| grondilu | I think Buf is not mutable yet because at_pos is not yet redefined for it. | 07:14 | |
| (see Buf.pm line 200) | |||
| r: my Buf $b; $b = Buf.new: ^10; $b[3] = 13; | 07:15 | ||
| camelia | rakudo ade8bc: OUTPUT«Cannot modify an immutable value in block at /tmp/LY_tto8SzH:1» | ||
|
07:31
crab2313 joined
07:47
spider-mario joined
|
|||
| Mouq | rn: my $foo; 0..* ==>$foo | 07:48 | |
| camelia | rakudo ade8bc: ( no output ) | ||
| ..niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Feed ops NYI at /home/p6eval/niecza/lib/CORE.setting line 1531 (die @ 5)  at /home/p6eval/niecza/lib/CORE.setting line 3555 (infix:<==>> @ 4)  at /tmp/naIVkSJi6O line 1 (mainline @ 5)  at /home/p6eval/niecza/lib/CORE.setting li… | |||
|
07:58
abnorman left
07:59
PacoAir left
08:02
PacoAir joined
08:03
PacoAir left
08:39
Mouq left
08:42
cognominal left,
cognominal joined
|
|||
| masak | oh hai #perl6 | 08:44 | |
| masak is back home | |||
| grondilu whishes he could write: loop do-something(); instead of loop { do-something() }; | 08:47 | ||
| grondilu thought of this while writing rosettacode.org/wiki/Arithmetic-geo...ean#Perl_6 He though it would be nice if he could write loop given { ... } instead of loop { given {...} } | 08:49 | ||
|
08:55
thou left
09:02
SamuraiJack left
|
|||
| masak | ah, so making 'loop' take a blast instead of just a block. | 09:05 | |
| I *think* that'd fly. | |||
| r: macro myloop($s) { quasi { loop { $s } } }; myloop say "!" | 09:06 | ||
|
09:06
SamuraiJack joined
|
|||
| camelia | rakudo ade8bc: OUTPUT«(timeout)» | 09:06 | |
| masak | er. | 09:07 | |
| r: macro myloop($s) { quasi { loop { {{{$s}}} } } }; myloop say "!" | |||
| camelia | rakudo ade8bc: OUTPUT«(timeout)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!xE2x90 | ||
| masak | \o/ | ||
| quotation levels are tricky ;) | |||
|
09:08
locsmif joined
|
|||
| masak | locsmif: greetings. | 09:08 | |
|
09:11
rhr joined
|
|||
| grondilu | masak: nice, but it doesn't work if I try: myloop given rand { .say } | 09:18 | |
| masak | grondilu: try 'myloop do given rand { .say }' | 09:20 | |
| grondilu: I haven't *actually* made it into a statement prefix, like 'try'. | 09:21 | ||
| grondilu | indeed, do works | ||
| masak | \o/ | ||
| so 'myloop given <anything>' reads 'given' as a statement modifier. | |||
| and so 'myloop given rand { .say }' is TTIAR. | 09:22 | ||
|
09:22
shinobicl_ left
|
|||
| grondilu | got a weird error while trying: (do given rand { .say }) xx * | 09:24 | |
| r: (do given rand { .say }) xx * | |||
| camelia | rakudo ade8bc: ( no output ) | ||
| grondilu | perl6 -e '(do given rand { .say }) xx *' | ||
| ===SORRY!=== | 09:25 | ||
| Could not find sub cuid_1_1376731420.91863 | |||
| masak submits rakuodbug | |||
| diakopter | o_O | ||
| sounds like an optimizer bug | |||
| masak | hm, cannot reproduce locally. | ||
| grondilu: are you on ade8bc? | |||
| I seem to be on 0cd2c68 locally. | 09:26 | ||
| grondilu | hang on | ||
| locsmif | hi masak | ||
| grondilu | the macro definition was actually still there (I did not bother deleting it) | ||
| if I remove it, the error does not appear. | |||
| masak | locsmif: I'd like to extend a sincere welcome. if there's anything I can help with, please ask. | ||
| grondilu | r: macro myloop($s) { quasi { loop { {{{$s}}} } } }; (do given rand { .say }) xx * | 09:27 | |
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===Could not find sub cuid_1_1376731623.80477» | ||
|
09:27
cognominal left
|
|||
| grondilu | r: macro myloop($s) { quasi { loop { {{{$s}}} } } }; | 09:27 | |
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===Could not find sub cuid_1_1376731638.76788» | ||
| grondilu | weird, isn't it? | ||
| masak | oh! it's 'cus of the macro. | ||
|
09:27
cognominal joined
|
|||
| locsmif | masak: thanks, just your regular Perl affacianado hanging around. :) | 09:27 | |
| afficianado* | |||
| masak | locsmif: yes, I figured that out. :) | ||
| locsmif: since you show up so soon after a YAPC ;) | 09:28 | ||
| locsmif | Heh... never been to one unfortunately, but I believe there must be some where I am (NL) | ||
| masak | grondilu: why the heck did you get it for the 'perl6 -e' execution above? is that a real copy-paste? | ||
| locsmif: oh! then I was wrong. :) anyway, welcome! | 09:29 | ||
| rn: say <greetings aloha welcome>.roll, " locsmif!" | |||
| camelia | rakudo ade8bc, niecza v24-88-g1f87209: OUTPUT«welcome locsmif!» | ||
| masak | :D | 09:30 | |
| locsmif | :D | ||
|
09:31
colomon joined
|
|||
| masak | r: say "When someone asks 'Where can I download Perl 6?', we ought to say 'Here is Rakudo Star'." | 09:33 | |
| camelia | rakudo ade8bc: OUTPUT«When someone asks 'Where can I download Perl 6?', we ought to say 'Here is Rakudo Star'.» | ||
| masak | star: say "When someone asks 'Where can I download Perl 6?', we ought to say 'Here is Rakudo Star'." | ||
| camelia | star 2013.02: OUTPUT«When someone asks 'Where can I download Perl 6?', we ought to say 'Here is Rakudo Star'.» | ||
| masak | 2013.02 is the newest Star release? :/ | ||
| grondilu | masak: it was a "hand-made" copy paste, if you see what I mean. | ||
| masak | grondilu: that explains it. | 09:34 | |
| grondilu: please don't do that. :) it makes it harder to reason deductively about causes. | |||
| grondilu | ok | ||
|
09:39
Mouq joined
09:41
crab2313 left
|
|||
| masak | r: macro myloop($s) { quasi { loop { {{{$s}}} } } } | 09:42 | |
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===Could not find sub cuid_1_1376732548.89373» | ||
| masak | r: macro myloop($s) { quasi { loop { {{{$s}}} } } }; say "A" | ||
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===Could not find sub cuid_1_1376732554.79208» | ||
| masak | r: macro myloop($s) { quasi { loop { } } }; say "A" | ||
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===Could not find sub cuid_1_1376732563.08685» | ||
| masak | r: macro myloop($s) { quasi { } }; say "A" | ||
| camelia | rakudo ade8bc: OUTPUT«A» | ||
| masak | r: macro myloop($s) { quasi { loop { } } } | 09:43 | |
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===Could not find sub cuid_1_1376732590.26211» | ||
|
09:46
rindolf joined
|
|||
| Mouq | also | 09:51 | |
| r: macro myloop($s) { quasi { while 1 { } } } | |||
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===Could not find sub cuid_1_1376733098.895» | ||
| Mouq | but not | ||
| r: macro myloop($s) { quasi { for 1 { } } } | |||
| camelia | rakudo ade8bc: ( no output ) | ||
| Mouq | r: macro myloop($s) { quasi { for 1..* { } } } | 09:52 | |
| camelia | rakudo ade8bc: ( no output ) | ||
| timotimo | r: macro myloop($s) { quasi { loop { } } }; say &myloop; | 09:54 | |
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===Could not find sub cuid_1_1376733256.21519» | ||
| timotimo | r: macro myloop($s) { quasi { loop { } } }; say "alive?"; | ||
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===Could not find sub cuid_1_1376733262.89451» | ||
| timotimo | ah, so it's not even that. | ||
| masak | right. | 09:55 | |
| it's macros and loops (but not for loops), AFAICS. | 09:56 | ||
|
09:57
colomon left
|
|||
| Mouq | r: macro myloop($s) { quasi { 1; loop { } } } | 10:01 | |
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===Could not find sub cuid_1_1376733672.75965» | ||
| Mouq | r: macro myloop($s) { quasi { for 1 {}; loop { } } } # :B | 10:02 | |
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===Could not find sub cuid_2_1376733748.30408» | ||
| timotimo | i still can't get rakudo to build | 10:03 | |
| something must be foul | |||
|
10:04
Rotwang joined,
pdcawley joined
|
|||
| moritz tries again | 10:06 | ||
| timotimo | but i didn'r get the unwind exception, i get the very early class not found thingie | ||
| anyway, i need to go now | |||
| moritz | timotimo: are you on nqp/master? | ||
| timotimo | yes | ||
| configured and made clean a few times over | |||
| Mouq | The latest commit make'd for me :/ | 10:09 | |
| Oh, maybe I was doing stuff wrong though... | 10:10 | ||
| dalek | kudo/nom: d9f8d6e | tadzik++ | tools/build/Makefile-JVM.in: Make 'make install' build stuff |
||
| masak | r: quasi { loop {} } | 10:12 | |
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===Could not find sub cuid_1_1376734365.60755» | ||
| moritz | r: quasi { loop {} }; 1 | 10:13 | |
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===Could not find sub cuid_1_1376734386.4858» | ||
| moritz | ok, it's not sink context that's to blame :-) | ||
| masak | I bet from hunting that one down, I will learn something about the Rakudo internals. | ||
| moritz: right -- that's easy to assume, but we established above that it wasn't. | 10:14 | ||
| GlitchMr | std: "\x" | 10:18 | |
| camelia | std c2215f0: OUTPUT«===SORRY!===Unrecognized backslash sequence: '\x' at /tmp/Vb18QyNjxB line 1:------> "\x⏏"Check failedFAILED 00:00 41m» | ||
| GlitchMr | It's \x00 in Perl 5 (but I assume it's one of its bugs...) | ||
| tadzik | moritz: I think you know; where is -I implemented? | ||
| masak | GlitchMr: I assume so too. | 10:21 | |
| pdcawley | 1 @ 2 | 10:23 | |
| Gah! Completely the wrong window. | |||
| masak | :) | ||
| diakopter | pdcawley: oh noes! :D | 10:24 | |
| pdcawley | Heh. | ||
| Thinking smalltalk. | |||
| masak | r: multi infix:<@>($l, $r) { $l +^ $r }; say 1 @ 2 | ||
| camelia | rakudo ade8bc: OUTPUT«3» | ||
| masak | \o/ | ||
| pdcawley | r: multi infix:<@>($x,$y) { Point.new(...) } | 10:25 | |
| camelia | rakudo ade8bc: OUTPUT«===SORRY!=== Error while compiling /tmp/bgYBfDHoYEUndeclared name: Point used at line 1» | ||
| pdcawley | Just need to write the point class :) | ||
| r: class Point { has $.x; has $.y; }; multi infix:<@>($x, $y) { Point.new(:x<$x>, :y<$y>) }; say 1 @ 2 | 10:27 | ||
| camelia | rakudo ade8bc: OUTPUT«Point.new(x => "\$x", y => "\$y")» | ||
| pdcawley | Awesome! | ||
| r: class Point { has $.x; has $.y; }; multi infix:<@>($x, $y) { Point.new(:x<$x>, :y<$y>) }; say 1@2 | |||
| camelia | rakudo ade8bc: OUTPUT«Point.new(x => "\$x", y => "\$y")» | ||
| jnthn | pdcawley: Point.new(:$x, :$y) # shortcut :) | 10:28 | |
| pdcawley | Presumably, if I added a 'method perl' to Point, that output could be rejiggered to ($x@$y) | 10:29 | |
| jnthn: Of course! | |||
| jnthn | um, and...I think you wanted :x($x), as :x<$x> is a literal :) | ||
| pdcawley | Ah. Right. Yes. | ||
| Been away from six a while. | |||
| pdcawley keeps reading the docs... | 10:30 | ||
| diakopter | we have docs? | 10:32 | |
| pdcawley | There's something at doc.perl6.org | ||
| Can't say they're brilliant, but they're a start. | |||
| I'm also vaguely wondering if we (can) get Haskell style autocurrying... | 10:34 | ||
| sub foo($a, $b) is Curried { ... } or some such? | |||
| pdcawley blinks... circumfix () and circumfix {}? They're just operators like any other? | 10:36 | ||
| That's awesome. | |||
| masak | aye. | 10:37 | |
| we have prefix, postfix, infix, but then also circumfix and postcircumfix. | |||
| the only one that's obviously missing is precircumfix ;) | 10:38 | ||
| pdcawley | Could one do multi circumfix:(Announcement *@ann) and have it yield an AnnouncementCollection or some such? | ||
| Or just override comma? | |||
| jnthn | r: sub circumfix:<LOL LOL>($str) { $str.subst('s', 'z', :g) }; say LOL 'cheeseburger' LOL | 10:39 | |
| camelia | rakudo ade8bc: OUTPUT«cheezeburger» | ||
| pdcawley has been playing with smalltalk - overriding comma for building specialized collections is one of those tricks you want to use everywhere. | |||
| masak | pdcawley: the syntax is 'circumfix:<[ ]>(Announcement *@ann)' or some such. | 10:41 | |
| pdcawley | masak: Gotcha - jnthn's example was helpful. | 10:42 | |
| masak | that is, you specify the actual circumfixing symbols inside alligator quotes. | ||
| jnthn | The...alligator?! | ||
| masak | :) | ||
| jnthn | Did we call them that before? :P | ||
| masak | not that I know of. | ||
| but that's obviously what they are :> | |||
| pdcawley | `~< >~' are alligators, surely? | 10:43 | |
| masak | r: sub circumfix:<< ~< >~ >>($str) { $str.uc }; say ~< 'come here... om nom nom' >~ | 10:44 | |
| camelia | rakudo ade8bc: OUTPUT«===SORRY!=== Error while compiling /tmp/7WbjybgfGQTwo terms in a rowat /tmp/7WbjybgfGQ:1------> c }; say ~< 'come here... om nom nom' >~⏏<EOL> expecting any of: postfix infix stopper infix or meta-… | ||
| masak | hrm... that looks legit to me. | ||
| std: sub circumfix:<< ~< >~ >>($str) { $str.uc }; say ~< 'come here... om nom nom' >~ | |||
| camelia | std c2215f0: OUTPUT«===SORRY!===Prefix requires an argument at /tmp/xl_7WWEqT3 line 1 (EOF):------> c }; say ~< 'come here... om nom nom' >~⏏<EOL>Other potential difficulties: >~ is not an infix operator (to suppress warning put space between in… | ||
| jnthn | masak: Conflict with the prefix. | ||
| masak | yesbut... LTM... | 10:45 | |
| jnthn | masak: EXPR always parses a prefix, then a term. | ||
| And a circumfix is a term. | |||
| masak | ah. | ||
| pdcawley | looking at these docs again... various operators doing 'returns Numeric:D' | ||
| jnthn | LTM only helps if you're looking for the right categories :P | ||
| pdcawley | what does the :D mean? | ||
| masak | pdcawley: defined. | ||
| pdcawley: often it means "don't accept the type object" | |||
| r: sub foo(Int) { say "yess!" }; foo Int | |||
| camelia | rakudo ade8bc: OUTPUT«yess!» | ||
| masak | r: sub foo(Int:D) { say "yess!" }; foo Int | 10:46 | |
| camelia | rakudo ade8bc: OUTPUT«Parameter '' requires an instance, but a type object was passed in sub foo at /tmp/oyXUsKZKJj:1 in block at /tmp/oyXUsKZKJj:1» | ||
| pdcawley | So 'returns Numeric' means? | ||
| masak | pdcawley: that they return anything Numeric, including the type object. | ||
| pdcawley | r: sub foo(Int) { say "yess!" }; foo undef | ||
| camelia | rakudo ade8bc: OUTPUT«===SORRY!=== Error while compiling /tmp/YllCqdlX_FUnsupported use of undef as a value; in Perl 6 please use something more specific: Any (the "whatever" type object), an undefined type object such as Int, :!defined as a matcher, Any:U as a | ||
| ..ty… | |||
| masak | pdcawley: in Perl 6, a type object like Numeric is on "equal footing" with actual instance objects. | ||
| pdcawley: undefined is abolished as being not type-y enough. | |||
| pdcawley | So, undef : Perl 5 :: Nil : Perl 6 | 10:47 | |
| r: sub foo(Int) { say "yess!" }; foo Nil | |||
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===CHECK FAILED:Calling 'foo' will never work with argument types (Nil) (lines 1, 1) Expected: :(Int )» | ||
| pdcawley | Allowing an instance of the type or the type objects seems like an interesting choice. | ||
| Not particularly Huffmanized it seems to me. | 10:48 | ||
| jnthn back in a bit | 10:49 | ||
| masak | pdcawley: no, I'd say in most cases Any stands in for 'undef'. | 10:50 | |
| pdcawley: but if, as above, your &foo wants an Int, then Int stands in for 'undef'. | 10:51 | ||
| think of it as a "typed 'undef'" | |||
| pdcawley | Hmm... that might take a bit of getting used to. | 10:52 | |
| What's the diff between a type object and a class? | |||
| Mouq | I don't think there is one. (?) See for example Math::Quaternion github.com/Util/Perl6-Math-Quatern...ernion.pm6 | 10:54 | |
| masak | pdcawley: the type object is an object that can be used to represent either the whole class, or an undefined object of that class. | ||
| pdcawley: one very common use of type objects is to simply do Dog.new on them. | |||
| pdcawley: that is, type objects have all the methods instances of that class have. but you're not supposed to call methods that use attributes, since type objects don't deal in attributes. | 10:55 | ||
| pdcawley | No parameterised types? | ||
| List(Int) ? | |||
| masak | yes, but only in roles. | ||
| classes in Perl 6 are too "messy" to do parameterization. roles are static enough to do it. | 10:56 | ||
| GlitchMr | std: <<<<<<< | 10:57 | |
| camelia | std c2215f0: OUTPUT«===SORRY!===Unable to parse shell-quote words at /tmp/yaV_PbXveb line 1:------> <BOL>⏏<<<<<<<Couldn't find final '>>'; gave up at /tmp/yaV_PbXveb line 1 (EOF):------> <<<<<<<⏏<EOL>Parse failedFAILED 00:00 … | ||
| GlitchMr | std: #DEBUG -1 | 10:58 | |
| camelia | std c2215f0: OUTPUT« ::::::::::::::: RE_any 3 [RE_ast.pm:553] :::::::::::::::: RE_sequence [RE_ast.pm:518] ::::::::::::::::: RE_meta $ [RE_ast.pm:401] ::::::::::::::::: RE_method ws [RE_ast.pm:411] ::::::::::::::::: RE_method_re before [RE_ast.pm:440] :::::::::::::::::: | ||
| ..RE_cclass [… | |||
| GlitchMr | rn: gist.github.com/GlitchMr/6256391 | 11:00 | |
| camelia | rakudo ade8bc: OUTPUT«===SORRY!===Found a version control conflict markerat /tmp/3Tr1PxZtcG:3------> <<<<<<<⏏ yours:sample.p6Preceding context expects a term, but found infix ==== insteadat /tmp/3Tr1PxZtcG:5------> ====⏏===… | ||
| ..niecza v24-88-g1f87209: OUTPUT«===SORRY!===Found a version control conflict marker at /tmp/ysNSBYrpYV line 3:------> <<<<<<<⏏ yours:sample.p6Bogus statement at /tmp/ysNSBYrpYV line 5:------> <BOL>⏏=======Parse failed»… | |||
| pdcawley | From Perl6::Math::Quaternion »**» vs »*« ? | ||
| (That class is rather splendid, btw) | 11:01 | ||
| masak | pdcawley: the direction of the » markers indicate a kind of strictness. | 11:02 | |
| r: my @x = 1, 2, 3; my @y = 10, 20, 30; say @x »+« @y | |||
| camelia | rakudo ade8bc: OUTPUT«11 22 33» | 11:03 | |
| pdcawley | Okay... | ||
| masak | r: my @x = 1, 2, 3; my @y = 10; say @x »+« @y | ||
| camelia | rakudo ade8bc: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<+> are not of the same lengthleft: 3 elements, right: 1 elements in sub hyper at src/gen/CORE.setting:15490 in sub hyper at src/gen/CORE.setting:15478 in block at src/gen/CORE.setting:15469 in block at /… | ||
| masak | r: my @x = 1, 2, 3; my @y = 10; say @x »+» @y | ||
| camelia | rakudo ade8bc: OUTPUT«11 12 13» | ||
| masak | see, if you turn an arrow towards the operand, it doesn't have to be of the same shape as the other operand. | ||
| (and values are sort of filled in, rotating back to the beginning as necessary) | 11:04 | ||
| pdcawley | So if you're raising everything in a list to the same power, you do @list »**« $pow | ||
| Sorry »**» $pow | |||
| masak | aye. | ||
| correct. | |||
| by the way, every time you do something like »**» with both arrows turned the same way, you should consider whether it's actually hyper behavior you want/need, or whether it's laziness with X** | 11:05 | ||
| they give the same result, but they behave differently. | |||
| jnthn | Z** ? | 11:06 | |
| masak | oh! | 11:07 | |
| yes. | |||
| of course. | |||
| pdcawley | masak: I like laziness well enough, but Z**? | ||
| masak | rightright, Z** | 11:08 | |
| pdcawley | snippet? | ||
| masak | r: my @x = 1, 2, 3; my @y = 10; say @x Z+ @y | ||
| er. | |||
| camelia | rakudo d9f8d6: OUTPUT«11» | ||
| masak | r: my @x = 1, 2, 3; my @y = 10; say @x Z+ @y, * | ||
| camelia | rakudo d9f8d6: OUTPUT«Cannot call 'Numeric'; none of these signatures match::(Mu:U \v: Mu *%_) in method Numeric at src/gen/CORE.setting:961 in sub infix:<+> at src/gen/CORE.setting:3561 in sub infix:<+> at src/gen/CORE.setting:3559 in block at src/gen/CORE.setting:15359 in … | ||
| masak | r: my @x = 1, 2, 3; my @y = 10, 20, 30; say @x Z+ @y | 11:09 | |
| camelia | rakudo d9f8d6: OUTPUT«11 22 33» | ||
| pdcawley | take @x Z+ @y ? | ||
| masak | sorry, what? | ||
| Mouq | Whoa. My brain just exploded when I realized you could (I'm pretty sure) implement X and Z with something sub infix:<X> (@a, @b) is parsed({...}) {...} | ||
| pdcawley | Z = zip? | ||
| Mouq | r: my @x = 1, 2, 3; my @y = 10; say @x Z+ @y xx * | ||
| masak | pdcawley: aye. | ||
| camelia | rakudo d9f8d6: OUTPUT«11 12 13» | ||
| pdcawley | Implicitly lazy? | ||
| masak | pdcawley: and zip is lazy, whereas hyperops are not. | ||
| pdcawley: yes. | |||
| pdcawley: it took us years to realize that X and Z were not just operators (cross product and zip, respectively), but also metaoperators. | 11:10 | ||
| pdcawley | Hmm... not take, because take belongs to gather... | ||
| masak: Writing zipWith all the time? | |||
| r: my @x = 1,2,3; say @x X, @x | 11:11 | ||
| camelia | rakudo d9f8d6: OUTPUT«1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3» | ||
| pdcawley | r: my @x = 1,2,3; say @x X @x | ||
| camelia | rakudo d9f8d6: OUTPUT«1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3» | ||
| masak | pdcawley: I don't remember what we did before that. I guess we looped over stuff with 'for @x Z @y' and did things in the loop. | ||
| pdcawley | r: my @x = 1,2,3; say @x X=> @x | ||
| camelia | rakudo d9f8d6: OUTPUT«1 => 1 1 => 2 1 => 3 2 => 1 2 => 2 2 => 3 3 => 1 3 => 2 3 => 3» | ||
| pdcawley | masak: zipWith's a pretty common higher order combinator. | 11:12 | |
| masak | aye. | ||
| guess we were slow on that one :) | |||
| pdcawley | Does Z($a,$b -> { ... }) work then? | ||
| Or have we got Haskelly list comprehensions for more complex combinators? | 11:13 | ||
| masak | metaoperators work *only* on operators. | 11:15 | |
| well, kinda. | |||
| pdcawley | While I'm about it, if I want to do (1,2,3) ??? (1,2) and get ([1,1], [2,2]) as output (ie, zipping to the shortest), what do I do? | ||
| masak | pdcawley: but you can do '@a Z @b Z @c' and it'd do what you want. | ||
| because chaining operators. | |||
| pdcawley | masak: I don't think you get what I want. | ||
| masak | no, maybe not. | 11:16 | |
| pdcawley | Zipping two lists and combining with an arbitrary lambda rather than a given op. | ||
| GlitchMr | std: use incorrect | ||
| camelia | std c2215f0: OUTPUT«===SORRY!===Cannot locate module incorrect at /tmp/JtqfzMxVD2 line 1 (EOF):------> use incorrect⏏<EOL>Check failedFAILED 00:00 41m» | ||
| GlitchMr | Why neither Niecza or Rakudo has Sorry message in that case. | ||
| pdcawley | Haskelly style, zipWith \x,y -> x * y + 999 $ xs | ||
| masak | pdcawley: easiest to wrap your arbritary lambda in a sub or an op, I thinkk. | ||
| think* | |||
| pdcawley | p'shaw! | 11:17 | |
| masak | pdcawley: or use the actual zipwith function. | ||
| pdcawley | Happy enought to use zipWith :) | ||
| persumably zipWith is lazy. | |||
| masak | aye, 'cus it drives the operator. | ||
| pdcawley | is there an equivalent to haskell's handy `func` which magically turns a binary function into an infix operator? | 11:19 | |
| masak | r: my @words = <so many words>; say @words.zipwith( -> $l, $r { $l ~ $r }) | ||
| camelia | rakudo d9f8d6: OUTPUT«No such method 'zipwith' for invocant of type 'Array' in block at /tmp/rJmOquADfd:1» | ||
| masak submits NYI rakudobug | |||
| .zipwith is mentioned in S03:4774 | 11:20 | ||
| synopsebot | Link: perlcabal.org/syn/S03.html#line_4774 | ||
| masak | pdcawley: yes, kinda. | ||
| pdcawley | masak: I'd expect a second list argument there... | ||
| And generally expect zipWith to be a function, not a method. | |||
| masak | pdcawley: oh, you're right. | ||
| r: sub foo { say "It was $^a and $^b" }; say "ham" [&foo] "eggs" | 11:21 | ||
| camelia | rakudo d9f8d6: OUTPUT«===SORRY!=== Error while compiling /tmp/cETJixHW8hUnable to parse expression in bracketed infix; couldn't find final ']'at /tmp/cETJixHW8h:1------> say "It was $^a and $^b" }; say "ham" [&⏏foo] "eggs"» | ||
| masak | hrm. | ||
| pdcawley | r: @a = (1,2,3); @b = (5,6,7); zipWith [+], @a, @b | ||
| camelia | rakudo d9f8d6: OUTPUT«===SORRY!=== Error while compiling /tmp/pPahNJgfWoVariable '@a' is not declaredat /tmp/pPahNJgfWo:1------> @a⏏ = (1,2,3); @b = (5,6,7); zipWith [+], @ expecting any of: postfix» | ||
| masak | r: (<a b>; 1,2).zipwith(&[~]) | ||
| camelia | rakudo d9f8d6: OUTPUT«WARNINGS:Useless use of "a b" in expression "a b" in sink context (line 1)No such method 'zipwith' for invocant of type 'Parcel' in block at /tmp/57qxSq2VBV:1» | ||
| masak | that's the actual example from S03. | ||
| guess list-of-lists are not quite there yet. | 11:22 | ||
| bah. | |||
| pdcawley | r: my @a = (1,2,3); my @b = (5,6,7); zipWith [+], @a, @b | 11:23 | |
| camelia | rakudo d9f8d6: OUTPUT«===SORRY!=== Error while compiling /tmp/Cnfn76gZfTUndeclared routine: zipWith used at line 1» | ||
| jnthn | r: zip | 11:24 | |
| camelia | rakudo d9f8d6: OUTPUT«(timeout)» | ||
| masak | r: sub zipWith(&op, @l, @r) { map { &op($^l, $^r) }, (@l Z @r) }; say (zipWith &[+], <1 2 3>, <70 80 90>).perl | ||
| camelia | rakudo d9f8d6: OUTPUT«(71, 82, 93).list» | ||
| masak | \o/ | ||
| masak submits rakudobug on jnthn's timeout | |||
| jnthn wonders where zip is defined | |||
| pdcawley | masak: Wants to take >=2 lists surely? | 11:25 | |
| masak | pdcawley: just a simple example. but yes. | ||
| jnthn | oh... | ||
| my &zip := &infix:<Z>; | |||
| :) | |||
| pdcawley | ie, 'zipWith &[+], @a, @b, @c' should work. | ||
| masak | jnthn: still shouldn't hang. | ||
| jnthn | masak: aye, no idea why it does that. | 11:26 | |
| masak | pdcawley: yes; this is where lists of lists come in. | ||
| pdcawley | lists of lists, or parcels of lists? | ||
| jnthn | Well, I think @a Z @b Z @c works... | ||
| tadzik | jnthn: I have a feeling something's wrong with ModuleLoader's search_paths | ||
| if INC is set, it completely skips vm_search_paths | |||
| masak | jnthn: yes, it does. | ||
| pdcawley | r: my @a = (1,2,3); (@a Z @a Z @a).perl | ||
| camelia | rakudo d9f8d6: ( no output ) | ||
| pdcawley | r: my @a = (1,2,3); say (@a Z @a Z @a).perl | ||
| camelia | rakudo d9f8d6: OUTPUT«((1, 1, 1), (2, 2, 2), (3, 3, 3)).list» | 11:27 | |
| tadzik | that can't be right, can it? | ||
| masak | pdcawley: "lists of lists" is our slightly wrong term for "parcels of lists" | ||
| pdcawley | masak: Fairy nuff. | ||
| tadzik | pdcawley: could you upload the lyrics for "1-2-3 Perl Hackers" somewhere, while the video is not online yet? | ||
| pdcawley | Nope. | ||
| And I'd rather the video weren't online. | 11:28 | ||
| tadzik | oh | ||
| why so? | |||
| pdcawley | That stuff is under the "What happens at YAPC stays at YAPC" | ||
| licencse. | |||
| tadzik | heh, ok | ||
| masak | pdcawley++ | ||
| pdcawley | It's lyrically ropey as hell. | ||
| Which is fine when it's a song about what happened at a particular event, but not fine for it to have a life after that. | |||
| jnthn | tadzik: Note that in terms.pm, the things that are normally identified by vm_search_paths should be being put into @INC. | 11:30 | |
| tadzik: So it's redundant once @INC is there. | |||
| pdcawley | If I implement 'multi sub perl(MyType $thing) { ... }', do I get $mything.perl for foree? | ||
| tadzik | oh. Seems like they aren't for some reason | ||
| pdcawley | s/foree/for free/? | ||
| Expecting the answer to be 'yes', but just checking | |||
| tadzik | symptom: if I use either PERL6LIB or -I, Test.pm is not being located anymore | ||
| jnthn | tadzik: OK, maybe check for if there's any accidental differences :) | ||
| tadzik | it must be something jvm-specific | 11:31 | |
| jnthn | tadzik: Sure...I wonder if we're missing some notion of install directory? | ||
| tadzik: In the paths, I mean. | |||
| tadzik | possibly | ||
| our install is a bit dodgy | |||
| jnthn | Well, on an installed one, does @*INC contain the place wehre Test.pm is put? :) | 11:33 | |
| If not, that's probably the problem ;) | |||
| tadzik | it may be that it doesn't :) | ||
| pdcawley | So... if I wanted to contribute something to perl6, where's zipWith documented and can I implement it in perl6, or should I use nqp? | 11:34 | |
|
11:35
colomon joined
|
|||
| pdcawley | r: say perl (1,2,3) Z (1) | 11:35 | |
| camelia | rakudo d9f8d6: OUTPUT«===SORRY!=== Error while compiling /tmp/dM7R1LlsU_Undeclared routine: perl used at line 1» | ||
| pdcawley | r: say ((1,2,3) Z (1)).perl | 11:36 | |
| camelia | rakudo d9f8d6: OUTPUT«((1, 1),).list» | ||
| pdcawley | Hmm... docs say perl should work as a multisub as well as as a method. | ||
|
11:36
xinming left
11:38
xinming joined
|
|||
| pdcawley | r: (<a b>; 1,2).zip.lol.map: { .reduce(&[~]) } | 11:40 | |
| camelia | rakudo d9f8d6: OUTPUT«WARNINGS:Useless use of "a b" in expression "a b" in sink context (line 1)No such method 'zip' for invocant of type 'Parcel' in block at /tmp/JoeDRl60Pe:1» | ||
| pdcawley | Hmm... no wonder the synopsis for .zipWith isn't there, the .zip isn't there either :) | ||
| (<a b>; 1,2).lol | |||
| r: say (<a b>; 1,2).lol | 11:41 | ||
| camelia | rakudo d9f8d6: OUTPUT«WARNINGS:Useless use of "a b" in expression "a b" in sink context (line 1)1 2» | ||
| pdcawley is making shit up and expecting the computer to understand him now... | |||
| cosimo | aren't we all? | 11:46 | |
| pdcawley | There is that :) | ||
| r: (<a b>; 1,2).zip.tree.map: { .reduce(&[~]) } | 11:49 | ||
| camelia | rakudo d9f8d6: OUTPUT«WARNINGS:Useless use of "a b" in expression "a b" in sink context (line 1)No such method 'zip' for invocant of type 'Parcel' in block at /tmp/CxAifWdgSq:1» | ||
| GlitchMr | glitchmr.github.io/perl-changes-2013W10.html (error pages, why I bother...) | ||
| pdcawley | r: say (<a b>; 1,2).tree | ||
| camelia | rakudo d9f8d6: OUTPUT«WARNINGS:Useless use of "a b" in expression "a b" in sink context (line 1)1 2» | ||
| jnthn | pdcawley: Try just , there | ||
| instead of ; | |||
| pdcawley | r: say (<a b>, (1,2)).tree | 11:50 | |
| camelia | rakudo d9f8d6: OUTPUT«a b 1 2» | ||
| pdcawley was following other examples. | |||
| jnthn | r: say (<a b>, (1,2)).tree.perl | ||
| camelia | rakudo d9f8d6: OUTPUT«LoL.new($("a", "b"), $(1, 2))» | ||
| GlitchMr | Isn't ";" so called "comma" operator. | ||
| pdcawley | r: say ;.perl | ||
| camelia | rakudo d9f8d6: OUTPUT«» | ||
| pdcawley | r: say (1,2;3,4).perl | 11:51 | |
| camelia | rakudo d9f8d6: OUTPUT«WARNINGS:Useless use of "," in expression "1,2" in sink context (line 1)(3, 4)» | ||
| jnthn | shopping & | ||
| pdcawley | ast: (1,2;3,4) | ||
| Right. Need to go buy Earl Grey Tea. | 11:52 | ||
| I shall be back - mind blown by how far P6 has come since I last looked :) | |||
| And a pointer on how to contribute a zip/zipWith implementation would be handy for when I get back - even just a pointer to a webpage. | |||
|
12:03
birdwindupbird joined
|
|||
| Mouq | Am I right to think that I can have a role in it's own file (My/Role.pm) and then maybe use My::Role somehow? | 12:08 | |
| s/it's/its/ | |||
| colomon | pdcawley! \o/ | 12:12 | |
| Mouq: yes | |||
| Mouq | Awesomecoolness, thank you | 12:13 | |
| colomon has role ABC::Duration in lib/ABC/Duration.pm, so it even works. ;) | |||
|
12:15
rindolf left
|
|||
| masak | moritz: just found this: lesswrong.com/lw/hmx/prisoners_dile...urce_code/ lesswrong.com/lw/hxy/prisoners_dile...t_results/ (haven't read it yet) | 12:23 | |
|
12:28
xenoterracide joined
|
|||
| timotimo | GlitchMr: that error page is super cute! | 12:29 | |
| i was able to build jakudo by supplying an absolute path to --with-nqp | |||
| thanks for the hint, whoever i have that from | |||
|
12:31
dmol1 joined
12:32
dmol left
12:42
cognominal left,
cognominal joined
12:44
mtk joined
12:50
cognominal left,
cognominal joined
|
|||
| FROGGS | masak / jnthn: when nqp::sprintf passes the spectest suite and most of P5's sprintf tests, I am allowed then to use it for parrot backend too? | 12:57 | |
| jnthn | FROGGS: It'll pass more spectests on Parrot too then, 'cus it handles bigint better, iiuc? | 12:59 | |
| FROGGS | jnthn: that should be the case, yes | 13:00 | |
|
13:00
crab2313 joined
|
|||
| FROGGS | right now I have a problem with the nqp test for it though, there is a testbigint repr, and it complains about get_integer() not being implemented... | 13:00 | |
| jnthn | FROGGS: Maybe a missing nqp::unbox_i somewhere? | 13:01 | |
|
13:02
domidumont joined
|
|||
| FROGGS | I'll have a look... thank you! | 13:05 | |
|
13:07
Mouq left
13:16
census left
13:18
coax75ohm joined
|
|||
| colomon | FROGGS: Glad to see someone else hacking on sprintf. :) | 13:27 | |
| masak | \o/ | 13:28 | |
|
13:38
fridim__ joined
|
|||
| timotimo | hm, can i assign to $/<something>? perhaps clear it? | 13:40 | |
| jnthn | no | ||
| timotimo | i have a schlemiel-the-painter algorithm in my table parser right now | ||
| although that pretty much could be helped by moving one part into its own rule, i should probably really try that. | 13:41 | ||
|
13:45
donaldh joined
|
|||
| colomon has just received a complaint that his C++ code doesn't work with Visual C++ 6.0. That's because the code uses features from ISO C++'98. :( | 13:50 | ||
| timotimo | :( | 13:51 | |
| but vc++ 6 is pretty old now, too, isn't it? | |||
| geekosaur | "and I can't view your web site in IE6" | 13:54 | |
| TimToady | heh: t/00-parrot/09-pir.t ............... skipped: This is not Parrot and cannot run PIR blocks | 13:55 | |
| but it passes all the rest of the "parrot" tests | |||
| so maybe we need to pull some of those tests out of the "parrot" category into the "rakudo" category... | 13:56 | ||
| jnthn | Yes, it's misnamed :) | 13:58 | |
| Years of legacy there ;) | |||
| moritz | shall we rename them to 00-pre-sanity ? :-) | 13:59 | |
| tadzik | unsanity | ||
| donaldh | hi perl6 o/ | ||
| jnthn | Is there actually any real line between 00-* and 01-* tests? | 14:00 | |
| masak | hi, donaldh | ||
| jnthn | I'm not sure there's any contemporary, interesting dividing line | ||
| TimToady | eventually all the tests are sanity tests :) | 14:01 | |
| jnthn | Could just re-number and have 'em all in an 00-sanity or so | ||
| ruoso | do junctions autothread in the jvm already? | 14:02 | |
| masak .oO( o.O-sanity ) | |||
| jnthn | ruoso: yeah | ||
| ruoso | yay | ||
| jnthn | ruoso: Well, thing we pass all the junction tests we do on Parrot at least :) | ||
| masak | jnthn: autothread as in *actual threads*? | 14:05 | |
| moritz | that would be an interesting experiment | ||
| jnthn | masak: no, that's not what autothread means | 14:07 | |
| (to me, at least.) | |||
| ruoso | ahhh | ||
| heh... | |||
|
14:07
PacoAir joined
|
|||
| masak | jnthn: I just saw the misunderstanding between you and decided to point it out. :) | 14:07 | |
| jnthn | I'm skeptical that most junction auto-threading would ever benefit from spreading the work over threads. | ||
| I mean, the synchronization overhead would dominate | 14:08 | ||
| diakopter | *thank you* | ||
| finally someone who agrees with me | |||
| ruoso | jnthn: my guess is that it will depend on how long you carry the junction | 14:09 | |
| diakopter | .. unless the junction were many thousands of items.. and it's spread only over as many threads as there are cores | ||
| jnthn | It's same with hyperops; @ten-things >>+<< @ten-things is *never* worth tossing off to threads. | ||
| Unless your things are, like, huge matrices, and you overloaded + for matrix addition :P | 14:10 | ||
|
14:11
domidumont left
14:12
domidumont joined
|
|||
| moritz | hyper != autothread | 14:12 | |
| autothreading happens at call level, and you never know how expensive your calls are going to be | 14:13 | ||
| jnthn | aye, but hyper does imply data parallelism. | ||
| ruoso | it also depends on the cost of the operation | ||
| gist.github.com/anonymous/6257055 | 14:14 | ||
|
14:15
crab2313 left
|
|||
| ruoso | in this case, line 34, i create a junction with all the cells that may conflict with the current cell in the sudoku puzzle | 14:15 | |
| the test itself is not trivial | |||
| so it would probably benefit from using extra threads | 14:16 | ||
| it already runs at more than 100% cpu (most likely because of the garbage collector that already runs in a different thread) | |||
| masak | historically, it's one of those things where we have grown and learned over time as a community. so by the time hyperops were introduced it was all "ooh and we can just do everything in different threads", but these days we're like "it's a tradeoff, and it's often likely not to be worth the thread overhead". | 14:17 | |
| ruoso | maybe we need a pragma | 14:18 | |
| jnthn | The trick is finding good ways to decide if it is worth it. | ||
| And then providing a pragma to allow finder-grained control. | |||
| TimToady | or race it both ways and see who wins the first time :) | 14:19 | |
| masak | to me it feels like a JIT thing, that would be based on statistics from actually running code. | 14:20 | |
| TimToady | feeds are much likelier to benefit from threading | ||
| ruoso | or estimate the cost of the function being called to see if would be worth | ||
| TimToady | and some lazy lists that can be turned into feeds | 14:21 | |
| ruoso | jnthn: how hard do you thikn it would be to make the change into using threads for an experiment? | 14:22 | |
| TimToady --> much needed shower & | 14:25 | ||
| jnthn | ruoso: Well, the auto-threader is written in Perl 6 code and the synchronization primitives you need already exist...may have to add a pre-decl or so on Promise... | 14:26 | |
| ruoso: You can even experiment with it outside of CORE.setting I think. | 14:27 | ||
| ruoso: Or do it as a module. | |||
| See Junction.pm | |||
| ruoso | Ok. I'll take a look | 14:28 | |
|
14:38
Psyche^ joined
14:42
Psyche^_ left
|
|||
| ruoso | Interesting... for the sake of comparing performance, I used explicit async blocks, and now I got to a deadlock in the scheduler | 14:43 | |
| because some jobs depend on other jobs which are not schedule because jobs in between did not get a chance to execute... | |||
| jnthn | Yes, that's 'cus await and select aren't smart enough to yield back to the scheduler yet... | 14:45 | |
| ruoso | if you point me to the code that handles that I could try and implement it | 14:46 | |
| jnthn | It's all in Threading.pm | ||
| ruoso | ok | ||
| jnthn | It'll involve playing with the continuation stuff. :) | ||
| My first attempt failed, but I only spent 15 mins on it... | 14:47 | ||
| ruoso | Is creating resumable control exceptions possible? | 14:49 | |
| jnthn | Hmm...if so, it's only to the degree that exception handlers run on the top of the stack, so a resumable exception is just something that doesn't unwind... | 14:50 | |
| A control exception is needed somewhere in this, I suspect, but still need explicit use of the continuation ops too, like gather/take does | 14:51 | ||
| (See GatherIter.pm for more on that) | |||
|
14:51
rindolf joined
|
|||
| jnthn | We may wish to add another cont exception category, yield, or so. | 14:51 | |
|
14:52
domidumont left
|
|||
| ruoso | I see something else that is missing, which is a way to tell the scheduler that the current thread is blocked and that it's waiting on something | 14:52 | |
| jnthn | Well, that's really the mechanism await and select are interested in. | 14:53 | |
| That is, making them do the right thing is really a case of implementing what we're discussing, perhaps with a sufficiently extensible API. | 14:54 | ||
|
14:55
benabik left
14:56
benabik joined
|
|||
| ruoso | Ok... | 14:57 | |
|
14:57
pdcawley left
15:06
araujo left,
araujo joined
15:07
kbaker joined
15:14
ajr joined,
ajr is now known as Guest36177
15:15
Guest36177 is now known as ajr_
15:23
EvanTeitelman joined
|
|||
| ruoso | jnthn: is a Channel going to be a Promise? or are they different types? | 15:23 | |
| if not, is there a base type for all "things that one may await on?" | |||
| tadzik | a role may be more suitable | 15:25 | |
| but yeah, that sounds like a good idea | |||
| and no, Channel is not going to be a Promise | |||
| afaik :) | |||
| ruoso | Yeah, I meant "base type" in a very loose sense... so yes, role makes more sense | 15:26 | |
| JimmyZ | trait! | ||
| is await | |||
| ruoso | I think we may have to define that in order for me to implement the "blocked" state in the scheduler | ||
| JimmyZ | is Promise | 15:27 | |
| jnthn | No, Channel isn't Promise | 15:28 | |
| I could imagine Awaitable/Selectable roles | |||
| ruoso | Selectable makes sense | ||
| since you are already reusing the "select" function | 15:29 | ||
| jnthn | await operates on promises and channels also | 15:30 | |
| tadzik | Late :) | 15:31 | |
|
15:32
locsmif_ joined
|
|||
| moritz | late await? | 15:32 | |
|
15:38
thou joined
|
|||
| dalek | Heuristic branch merge: pushed 75 commits to nqp/make-install by donaldh | 15:42 | |
|
15:42
berekuk left
|
|||
| donaldh | hurrah, I've finally found tuits again | 15:43 | |
| tadzik | \o/ | ||
|
15:44
colomon left
15:45
berekuk joined
15:47
berekuk left
15:49
SamuraiJack_ joined
15:50
SamuraiJack left
15:51
kaare__ joined
15:52
kbaker left,
census joined
15:53
pdcawley joined,
berekuk joined
15:54
kaare_ left
15:56
SamuraiJack__ joined
15:58
pdcawley left,
SamuraiJack_ left
16:00
berekuk left
16:12
dalek joined,
ChanServ sets mode: +v dalek
16:15
EvanTeitelman left
16:17
SamuraiJack__ left
16:46
|ChErOkY| joined
|
|||
| |ChErOkY| | Hi | 16:46 | |
| moritz | hello | 16:47 | |
| |ChErOkY| | PacoAir, my friend :) | 16:48 | |
|
16:54
pdcawley joined
16:55
berekuk joined
16:59
pdcawley left
|
|||
| donaldh | rakudo Configure.pm uses a particular regex /^([\w:]+)=(.*)/ to filter nqp --show-config output | 17:04 | |
| does anyone know why?> | |||
| geekosaur | given the captures, I assume it's parsing the output so $1 is a variable and $2 its value | 17:06 | |
| masak | right. | ||
| it expects lines of that shape. | 17:07 | ||
| something like 'foo:bar:baz=42' | |||
| moritz | grondilu: (re loop without curlies) the problem is that 'loop { }' is just a special case of 'loop (init; cond; increment) { ... }'. And in the general case, that would lead to two terms in a row if the curlies were omitted | 17:08 | |
| masak | and indeed, 'nqp --show-config' seems to output something like that. | ||
| geekosaur | right, I figured that so I focused on the captures | ||
| masak | moritz: ah -- that's a good reason to not have that. I almost got there, but I didn't finish the thought. | ||
| moritz++ | 17:09 | ||
| moritz | well, actually even with curlies it's TTIAR, but the requirements that the second term is surrounded by curlies gives it back some sanity | ||
| masak | donaldh: interestingly, this one will fail the regex: | ||
| nqp::build-date=2013-07-06T21:41:05Z | |||
| because of the dash. | |||
| donaldh | indeed | ||
| and jvm::runtime.jars | |||
| masak | aye. | ||
| feels a bit odd to be listing cases like that as characters turn out to be allowed on the left side. | 17:10 | ||
| is there, like, a standard or something? | |||
| moritz | maybe it should just be (\S+)=... | ||
| masak | moritz: or ([^=]+)= | ||
| donaldh | Looking at the output from parrot nqp, it looks like nqp::build-date is about the only victim | ||
| Yeah, I wondered about ^= | 17:11 | ||
| moritz | [^\s=]+ | 17:12 | |
| masak | aye. | 17:13 | |
|
17:13
donaldh left
|
|||
| moritz tests a patch for it | 17:14 | ||
|
17:17
araujo left
17:18
araujo joined
17:19
SamuraiJack__ joined
17:20
birdwindupbird left
|
|||
| ruoso | Thinking about it... The "Promise" analogy works well for read operations, but gets slightly weird for write operations... | 17:30 | |
| specifically, the term "result" is implicitly assuming read semantics | 17:33 | ||
| timotimo | having just implemented the richards benchmark i don't really want to implement a proper scheduler for promises and friends | 17:36 | |
|
17:38
benabik left
|
|||
| ruoso | of course we could consider the result of a write operation to be simply the status of the write... | 17:38 | |
|
17:38
benabik joined
17:41
p5eval joined
|
|||
| jnthn | ruoso: I didn't really see it in terms of reads and writes. | 17:42 | |
| It's about a piece of asynchronous work that will eventually produce a result or an exception. | |||
| In a way, I guess promises and channels are mechanisms to avoid writes to shared memory. | 17:43 | ||
| ruoso | well.. in that case, an exception is just a type of result, isn't it? | ||
| jnthn | Yes. | ||
| ruoso | Ok... in that case it makes sense | ||
| jnthn | But we distinguish the cases. | 17:44 | |
| ruoso | I am thinking to have simply "has_result" as a fundamental introspection | ||
| jnthn | Well, that's really just .satus == any(Kept, Broken) | 17:45 | |
| *status | |||
| ruoso | (which would be true whenever it was a success or a failure) | ||
| jnthn | If we don't already have such a method, I can see it being useful | ||
| Though .completed would match the name channels have. | |||
| ruoso | jnthn: the thing is that it needs to be a method to allow for lower-level implementations to decide | 17:46 | |
| completed is also not the right one, because (specially in the case of channels) you may have more results later | 17:47 | ||
| jnthn | completed on a channel means "no more results" | 17:49 | |
| To send more results on a completed channel is an error. | |||
| To keep/break a Promise multiple times also is | |||
| So it fits nicely in that sense. | |||
| ruoso | yes, but you may be unblocked with a few results before all results are available | ||
| so you need to be able to block/unblock several times | |||
| jnthn | ah, I guess it's a ready/completed distinction. | 17:50 | |
| hm, ready is cute, 'cus it means what it says, but it's like, read-y, like, you can read it :P | |||
| ruoso | or writey | 17:51 | |
| ;) | |||
| jnthn | .oO( now somebody hits me on the head with an etymological dictionary and tells me that's where it came from... ) |
||
| ruoso | are we useing "is_foo" or just "foo"? | 17:52 | |
| (as a convention, I mean) | 17:53 | ||
| arnsholt | jnthn: Unfortunately it doesn't look like it =) | 17:54 | |
| 'Cause that would have been kinda neat | 17:55 | ||
|
17:55
pdcawley joined
|
|||
| jnthn | ruoso: Just foo | 17:55 | |
| timotimo | i put a piece of my grammar into a separate regex and made it b0rk :( | 17:56 | |
| jnthn | ruoso: has_blah is also kinda icky, which I why I was hunting for other things. I think for now I like .ready and .completed (which on a Promise mean the same). | ||
| arnsholt: Yeah...I'm sure there's been at least once a bad pun turned out to be the etymology of a word... :P | |||
|
17:57
kaare__ is now known as kaare_
|
|||
| arnsholt | Indeed =D | 17:57 | |
| masak | jnthn: what arnsholt said. "ready" seems to come from a ME word meaning "prompt", while "read" comes from Sanskrit. | ||
| ruoso | jnthn: I think I may need to add a type to qualify the items in the scheduler's queue | 17:58 | |
| and probably move the status enum to that type | 17:59 | ||
| jnthn | That last bit sounds wrong | ||
| s/sounds/is/ :) | 18:00 | ||
|
18:00
pdcawley left
|
|||
| ruoso | the secheduler need to be able to query the status for all the items in the queue | 18:00 | |
| jnthn | The type bit may make sense. | ||
| Hmmm | |||
| But that sounds more to me like the thing holding the scheduled item actually has a dependencies list and you want to just call .ready on each of those. | 18:03 | ||
| ruoso | Hmm... that may make sense, so the scheduler would have to keep of everything by itself | 18:05 | |
| and the control exception could contain enough data to allow for that... | 18:06 | ||
| I think you are right. This will encode less assumptions into the architecture, making it more future-proof | 18:07 | ||
| I think I don't even need a new type for the items in the queue... | 18:08 | ||
|
18:10
donaldh joined
|
|||
| [Coke] waves from the highway. | 18:14 | ||
| timotimo | don't irc and drive! | 18:15 | |
| masak | maybe [Coke] is hitch-hiking. | 18:17 | |
|
18:17
Mouq joined
|
|||
| [Coke] | the wife is driving. I remembered I had a hot spot on my phone. | 18:19 | |
| timotimo | you let the wifi drive? | 18:20 | |
| benabik | Maybe a little bit of ice will cool it off. Remember to use a ziploc bag to keep the melt off the phone. | ||
| Ooh, slides. jnthn++ | |||
| timotimo | already seen them. they are recommended :) | 18:21 | |
| masak | they are indeed. | ||
| timotimo | i was a bit blown away by how easy the parallelism stuff can be combined, that really is great | ||
|
18:26
ajr_ left
18:28
rindolf left
|
|||
| jnthn | Composability is often undervalued in software design... | 18:29 | |
| timotimo | i've learnt to appreciate it through y'all | ||
| masak winks and points to github.com/masak/workshop/blob/mas...compose.md | 18:32 | ||
| timotimo | "Two simple examples" and then three bullet points :) | 18:33 | |
| masak | oops -- fixing :) | 18:34 | |
| jnthn | Maybe the third one is a complex example :P | ||
| masak .oO( composition is nice, but once-and-only-once isn't so bad either ) :P | 18:35 | ||
| fix'd. timotimo++ | |||
| oh! CPAN is another really successful example of composition. | 18:36 | ||
| hoo, found this. interesting. www.existentialprogramming.com/2010...every.html | 18:41 | ||
|
18:41
Mouq left
|
|||
| masak | "There is no such thing as a Component" | 18:41 | |
| ruoso | jnthn: I think I'll need a new thread to keep watching for blocked jobs to reinsert them to the queue as their blockers get ready... | ||
| jnthn | Or just throw them into the queue main queue for now... :) | 18:47 | |
| s:1st/queue// | |||
|
18:48
eviltwin_b joined
|
|||
| ruoso | the blocked ones? | 18:48 | |
|
18:49
eviltwin_b is now known as geekosaur
|
|||
| GlitchMr | rn: 09 | 18:50 | |
| camelia | niecza v24-88-g1f87209: OUTPUT«Potential difficulties: Leading 0 does not indicate octal in Perl 6; please use 0o9 if you mean that at /tmp/bG0aidKfSR line 1 (EOF):------> 09⏏<EOL>» | ||
| ..rakudo d9f8d6: OUTPUT«Potential difficulties: Leading 0 does not indicate octal in Perl 6; please use 0o9 if you mean that at /tmp/gHv2_nIqpu:1 ------> 09⏏<EOL> Leading 0 does not indicate octal in Perl 6; please use 0o9 if you mean that at /tmp/gH… | |||
| jnthn | ruoso: Yes; they'll come back around eventually and can be checked for not being blocked... | ||
| GlitchMr | Uhm, why perl6 -e 'say 09;' says error two times? | 18:51 | |
| masak | GlitchMr: that's a bug. please submit. | ||
| GlitchMr | rt.perl.org/rt3/Public/Bug/Display...?id=119339 | 18:55 | |
| masak | GlitchMr++ | ||
|
18:56
pdcawley joined
|
|||
| masak | GlitchMr: the phrase "don't work" is generally taboo in bug reports. | 18:56 | |
| GlitchMr | sorry | ||
|
18:56
kaare_ left
|
|||
| masak | GlitchMr: you should be talking about what you did, what you observe, and what you expected. | 18:56 | |
| GlitchMr | Null PMC access in get_string() | ||
| Sorry, I will next time. | |||
| masak | right. that should be in there. | ||
| GlitchMr: the goal is to have enough information that the thing can be checked again later. | 18:57 | ||
| masak adds this to the ticket | |||
| timotimo | moritz: the link to "regular expressions" (masaks talk) has an url ending in "" | 18:58 | |
| masak | don't all strings end in "" ? :P | 18:59 | |
| timotimo | "didn't quite apply to much current work situation" probably should be "my" instead of "much"? | ||
| the "touching and thoughtful moments" link has no href | 19:00 | ||
| dalek | kudo/nom: 3aebcac | moritz++ | tools/lib/NQP/Configure.pm: [build] more permissive parsing of config keys donaldh++ and masak++ found out that the key "nqp::build-date" does not match the old regex, [\w:]+ |
||
|
19:00
pdcawley left
|
|||
| GlitchMr | ~/c/panda (master) $ perl6 -e 'my $sock = IO::Socket::INET.new(host => "ipv6.google.com", port => 80); $sock.send("GET /lol HTTP/1.1\r\n\r\n"); say $sock.recv' | 19:00 | |
| getaddrinfo failed: ipv6.google.com: Success | |||
| Am I doing something incorrectly? | |||
| Can I tell IO::Socket::INET to use IPv6? | 19:01 | ||
| masak | moritz: nit: s/Moarvm/MoarVM/ | ||
| moritz | ChimeraVM :-) | ||
| jnthn | :D | 19:02 | |
| masak | moritz: the link "touching and thoughtful moments" is empty. | ||
| moritz | masak: yes, timotimo just said the same thing | 19:03 | |
| fixing now... | |||
| fixed. | |||
|
19:04
SamuraiJack__ left
|
|||
| GlitchMr | rn: my %hash is default<perfect>; say %hash<elem> | 19:04 | |
| camelia | niecza v24-88-g1f87209: OUTPUT«===SORRY!===Trait default not available on variables at /tmp/VZHLPUhAy8 line 1:------> my %hash is default<perfect>⏏; say %hash<elem>Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting… | ||
| ..rakudo d9f8d6: OUTPUT«perfect» | |||
| GlitchMr | std: my %hash is default<perfect>; say %hash<elem> | ||
| camelia | std c2215f0: OUTPUT«ok 00:00 43m» | ||
| timotimo | i'm a bit annoyed that my table parsing regex doesn't work if i turn it from "regex" to "token"; i think that's because i rely on some backtracking somwehere :( | 19:06 | |
| moritz | masak++ timotimo++ # helping me improve my blog post | 19:08 | |
| timotimo | but i don't really know how to figure that out | ||
| moritz++ # for the original post | |||
| jnthn | timotimo: Keep it as a regex. Now go through the quantifiers, adding a : after them, until you find the one where adding a : fails | ||
| timotimo | ah, good tip, thanks! | 19:09 | |
| do i want one : in the whole thing or keep adding more and more until only one (or perhaps multiple) non-:'d pieces? | 19:10 | ||
| jnthn | A : on a quant means "don't backtrack on this one" | 19:11 | |
| You could add it to half of them and do it bisect-style, maybe | |||
| Or maybe you have a sense for which it is :) | |||
| timotimo | :) | ||
| masak | moritz++ # blogging | ||
| timotimo | i find it amusing how things like :my $foobar; have a : as starter and ; at the end | 19:12 | |
| masak | woolfy joked that I might "defect to Python". I just got an IndexError because I tried to assign to an element outside of an array. | 19:13 | |
| so I guess I'm sticking with you lot. :P | |||
| geekosaur | : helloworld forth love if honk then ; | ||
| masak | geekosaur: :) | ||
| timotimo | oh, i think i know what's going on | 19:14 | |
|
19:14
EvanTeitelman joined
|
|||
| moritz | domm.plix.at/perl/2013_08_things_i_..._2013.html # another blog post about the YAPC | 19:14 | |
| timotimo | yes, yes; my columns are %'d with [\h+'|'?\h+] | 19:15 | |
| that has some backtracking problems if | isn't in there, so i need to put in a little alteration and it should become backtrackless | |||
| although i need to make it match no less than 2 \h all in all, but that's very doable | 19:17 | ||
| masak | moritz: nice! | 19:19 | |
| dalek | p/make-install: 28b58c0 | (Donald Hunter)++ | tools/build/ (2 files): Add install libdir into jvmconfig.properties |
19:23 | |
|
19:28
fridim__ left
|
|||
| donaldh | Does anyone else get intermittent out of memory errors when compiling NQP on JVM ? | 19:30 | |
| Maybe it's an OSX thing | |||
| jnthn hasn't seen that | |||
| masak .oO( out-of-memory errors. all the cool kids do it. ) | 19:31 | ||
| jnthn | That explains why I don't get them :P | ||
| masak | it's worth it for the rounded corners. | 19:34 | |
| moritz | the day after YAPC::EU was the one with the most visitors on irclog.perlgeek.de so far | 19:36 | |
| masak .oO( people backlogging? ) :P | 19:49 | ||
| moritz | or people having unreliable connections, and thus prefering the logs over proper IRC? | 19:51 | |
|
19:56
pdcawley joined
19:57
jaffa4 joined
|
|||
| jaffa4 | hi | 19:57 | |
| Is there labels in JVM Rakudo version? | |||
| GlitchMr | r: label: say "no" | ||
| camelia | rakudo 3aebca: OUTPUT«===SORRY!=== Error while compiling /tmp/nOIyyhpULOTwo terms in a rowat /tmp/nOIyyhpULO:1------> label⏏: say "no" expecting any of: argument list postfix infix stopper infix or meta-infix … | ||
| GlitchMr | This is Parrot version, but JVM runs mostly the same code, so no. | 19:58 | |
| jaffa4 | std: labelL sat 'hello' | ||
| camelia | std c2215f0: OUTPUT«===SORRY!===Undeclared routines: 'labelL' used at line 1 'sat' used at line 1Check failedFAILED 00:00 42m» | ||
| jaffa4 | std: label: sat 'hello' | ||
| camelia | std c2215f0: OUTPUT«===SORRY!===Undeclared routine: 'sat' used at line 1Check failedFAILED 00:00 42m» | ||
| jaffa4 | std: label: say 'hello' | 19:59 | |
| camelia | std c2215f0: OUTPUT«ok 00:00 42m» | ||
|
20:01
pdcawley left
20:02
stevan_ joined
20:04
colomon joined
20:06
stevan_ left
|
|||
| dalek | p/make-install: cd48fff | (Donald Hunter)++ | tools/build/gen-jvm-properties.pl: Added runtime.prefix to jvmconfig.properties |
20:06 | |
| moritz | jaffa4: no version of rakudo parses labels | 20:10 | |
|
20:11
locsmif_ left
|
|||
| donaldh | github.com/rakudo/rakudo/pull/191 | 20:11 | |
| masak | donaldh: looks good to me. | 20:14 | |
| jaffa4 | why not? | ||
| masak | jaffa4: not yet implemented. | ||
| jaffa4 | Oh my God! | 20:15 | |
| dalek | kudo/nom: 7d24377 | (Donald Hunter)++ | / (4 files): Use configuration from nqp --show-config |
20:16 | |
| kudo/nom: 41a2961 | (Donald Hunter)++ | /: Merge branch 'nom' of github.com:rakudo/rakudo into nqp-make-install |
|||
| kudo/nom: e063c1b | moritz++ | / (3 files): Merge pull request #191 from donaldh/nqp-make-install Make use of the JVM configuration properties provided by "nqp --show-config" |
|||
| moritz | donaldh++ | ||
| jaffa4: quick, implement it! :-) | |||
| masak | :D | ||
| just let the guy finish praying first. | |||
| jnthn | moritz: um, I think the make-install branch in NQP had to be merged first ;) | ||
| "This is dependent on the make-install branch in nqp being merged first." | 20:17 | ||
| moritz should read more carefully | |||
| masak | jaffa4: for all I know, labels shouldn't be a hassle to parse. it's probably goto that people are wary of adding. | ||
| jnthn | The parsing ain't the problem. It's the rest. :P | ||
| masak | jaffa4: I for one would love to see 'next LABEL' in Rakudo. | 20:18 | |
| moritz | well, then we could at least parse, and give a nice NYI error message | ||
| masak | right. | ||
| jnthn | aye | ||
| jaffa4 | involve me about the difficulties | ||
| moritz | well, 'next' uses control exceptions | ||
| so you need to set up the handlers to only catch the exceptions with the right label | 20:19 | ||
| dalek | p: a620765 | (Donald Hunter)++ | tools/build/ (2 files): Restructured install layout to resemble parrot install layout. |
||
| nqp: 1f99742 | (Donald Hunter)++ | / (18 files): | |||
| nqp: Merge remote-tracking branch 'origin/master' into make-install | |||
|
20:19
dalek left
|
|||
| jnthn | moritz: That was the merge? | 20:20 | |
| jnthn tries it | |||
| moritz | jnthn: yes | ||
| jaffa4 | There is goto op in Qast ., right? | ||
|
20:20
dalek joined,
ChanServ sets mode: +v dalek
|
|||
| jnthn | wrong | 20:20 | |
| The tricky with goto is that it can cross block/routine boundaries... | 20:21 | ||
| masak | ok, but there's a smaller bit of it that's easier to implement, yes? | ||
| jnthn | I guess this stuff never bubbled up high enough on the todo list yet... | ||
| masak | don't need to do it all at once... | ||
| jnthn | Of all the things folks miss, goto is fairly far down the list :P | 20:22 | |
| masak | aye :) | ||
| but 'next LABEL' is fairly high... :) | |||
| moritz | masak: I guess that 'next LABEL'/'last LABEL' and 'got LABEL' will be pretty much different beasts | ||
| jnthn | ah | ||
| masak | moritz: me too. | ||
| jnthn | Yeah, those are rather different. | ||
| jaffa4 | How can I print the qast tree? | 20:23 | |
| moritz | ./perl6 --target=past -e 'say 1 + 1' # iirc | ||
| or maybe it's --target=ast | |||
| jaffa4 | Where does it put the target? | 20:25 | |
|
20:26
pdcawley joined
|
|||
| jnthn | donaldh: hmm, seems I get: jvm::runtime.jars value not available from install-jvm\nqp --show-config. | 20:27 | |
| donaldh | hmmm. | ||
| jnthn | that's with a straight perl ConfigureJVM.pl in rakudo, after make install in NQP | 20:28 | |
| moritz | masak: www.pvk.ca/Blog/2013/06/23/bitsets-...pressions/ | ||
| moritz tests too | |||
| donaldh | jnthn: with nqp in a subdir ? | ||
| jnthn nukes his install-jvm directory | 20:29 | ||
| donaldh is building master | |||
| jaffa4 | jnthn: how to test perl6? | ||
| How do you view you the internal structures? | |||
| jnthn | donaldh: Yeah, I have nqp subdir, in that I dod perl ConfigureJVM.pl --prefix=..\install-jvm | 20:30 | |
| donaldh | right | ||
| moritz | does --prefix cope with relative paths? | ||
| jaffa4 | I get no error message if I enter a bad target | ||
| moritz | I know I have had trouble with that in the past | 20:31 | |
| jaffa4 | perl6.bat --target=RRRRR -e "print 1" | ||
| jnthn | oops | ||
| @java -Xmx512m -Xbootclasspath/a:$jar_dir\nqp-runtime.jar;C:\consulting\rakudo\install-jvm\languages\nqp\runtime\asm-4.1.jar;C:\consulting\rakudo\install-jvm\languages\nqp\runtime\jline-1.0.jar;C:\consulting\rakudo\install-jvm\languages\nqp\lib\nqp.jar -cp C:\consulting\rakudo\install-jvm\languages\nqp\lib nqp %* | |||
|
20:31
pdcawley left
|
|||
| jnthn | donaldh: Note the $jar_dir in there :) | 20:32 | |
| moritz | so $jar_dir is not expanded | ||
| jnthn | jaffa4: I can believe that... --target=ast is the most useful one | ||
| donaldh | jnthn: yep. | ||
| In the windows case | |||
| jnthn | donaldh: Trying a fix. | 20:33 | |
| donaldh | it's single quoted | ||
| no interpolation | |||
| missed that | |||
| moritz | and rakudo's ConfigureJVM.pl: | 20:34 | |
| my $with_nqp = $options{'with-nqp'} || | |||
| ($^O eq 'MSWin32' ? 'install-jvm\\nqp' : 'install-jvm/nqp'); | |||
| should that be install-jvm/bin/nqp now? | |||
| jnthn | yeah | ||
| moritz fixes it | |||
| donaldh | moritz++ good catch. | ||
| jnthn | I was gonna come to that next. :) | ||
| At least --with-nqp=... now works :) | 20:35 | ||
| dalek | kudo/nom: 7a2d8aa | moritz++ | ConfigureJVM.pl: fix default path for NQP binary |
||
| donaldh is about to look at --gen-nqp | |||
| jnthn | \o/ | ||
| dalek | p: 8d32819 | jnthn++ | tools/build/install-jvm-runner.pl: Fix thinko in Win32 runner generation. |
||
| moritz | \o/ indeed | ||
| jnthn | This will make stuff easier for everyone :) | 20:36 | |
| Aww, make doesn't work, though | |||
| (In Rakudo) | |||
| hmm | 20:37 | ||
| NQP_PREFIX = ..install-jvm | |||
| That looks...odd | |||
| Getting rid of the .. fixes things | |||
| moritz | missing slash, missing rel2abs? | ||
| jnthn | Well, ./install-jvm or so would be right | 20:38 | |
| .. is not | |||
| moritz | well, the problem seems to be that you passed a relative path to --prefix, and there's no logic to either make it absolute, or deal with relative paths | 20:39 | |
| masak | moritz: looks very interesting. | 20:41 | |
| dalek | p: 3246de8 | moritz++ | ConfigureJVM.pl: always turn --prefix into an absolute path |
20:42 | |
| moritz | jnthn: ^^ that should help | ||
| jnthn | Will try. Anyway, yeah, it's wrong in the --show-config output... | 20:43 | |
|
20:43
pdcawley joined
|
|||
| jnthn | moritz: um...whoa | 20:48 | |
| the \rakudo ended up with the \r getting interpolated somewhere?! | |||
| masak | o.O | ||
| moritz | wtf. | 20:49 | |
| jnthn | yeah, it's wrong in the --show-config output. Rather upsets the terminal too! | ||
| It is absoluting it | 20:50 | ||
| I guess the error is elsewhere. | |||
| moritz | but it built? | ||
| jaffa4 | what is this op locallifetime? | 20:51 | |
| moritz | (nqp, that is) | ||
| jnthn | moritz: not Rakudo, no... | ||
| oh, I might be able to guess where this is going... | |||
| jaffa4 | Where is it going jnthn? | 20:52 | |
| jnthn | um, no, I can't guess | ||
| donaldh: How do the properties end up in the JAR? | 20:53 | ||
| donaldh: Is the jvmconfig.properties file name treated specially? | |||
| jnthn was expecting to find it being spat out in a double-quoted string... :) | |||
| donaldh | nope. gen-jvm-properties.pl is run twice in Makefile. Once for build env and once into bin/ which gets JARed up with the classes. | 20:54 | |
| jnthn | bin/jvmconfig.properties looks right so it must go wrong sometime after this... | ||
| Could something be interpreting the backslash sequences at some point? | 20:55 | ||
| moritz has a runnable, installed rakudo-jvm o/ | |||
| donaldh | jnthn: possibly. I tried to use platform specific slashes everywhere, but may have missed one. | 20:56 | |
| jnthn: what is the output of nqp --show-config? | |||
| moritz | well, if it's emitted into a double-quoted string somewhere, you need to double the backslashes | ||
| jnthn | donaldh: jvm.properties is correct, but when I --show-config then the \r in c:\rakudo has been turned into a carriage return | 20:57 | |
| donaldh: Which then makes it in to the Makefile and corrupts it | 20:58 | ||
| donaldh | ah | ||
| jnthn | Could the Properties class be doing it? | ||
| bah stackoverflow.com/questions/5784895...-backslash | 20:59 | ||
| "The method does not treat a backslash character, '\', before a non-valid escape character as an error; the backslash is silently dropped." | 21:00 | ||
| donaldh | is there some badness in thugh | 21:01 | |
| ugh even | |||
| jaffa4 | what is this :before<ast>? | 21:02 | |
| donaldh | Where Java behaviour crashes into OS behaviour | ||
| jnthn | donaldh: Trying a patch | 21:03 | |
| donaldh | Good catch jnthn++ | ||
| jnthn | jaffa4: Guess you're looking at an add_stage call or so? Just says where to insert something into the compiler pipeline. | ||
| donaldh: Yes, took a little chasing to see where it was going wrong :) | |||
| jaffa4 | jnthn : I mean the syntax | 21:04 | |
| moritz | jnthn: it's a pair | ||
| donaldh | jnthn: I've been bitten by this Properties behaviour before. I should have known. Oh well. | ||
| jnthn | moritz: you meant jaffa4? :) | ||
| jaffa4: Same as before => 'ast' | 21:05 | ||
| moritz | yes | ||
|
21:05
dmol1 left
21:06
dmol joined
|
|||
| jnthn | ok, now I get a Makefile that makes sense :) | 21:06 | |
|
21:06
colomon left
21:07
stevan_ joined
|
|||
| dalek | rl6-roast-data: 2de4b71 | coke++ | / (5 files): today (automated commit) |
21:07 | |
| donaldh | Another approach would be to always use forward slashes in the properties file and translate to Windows backslashes before printing. | ||
|
21:10
dmol left
|
|||
| moritz | donaldh: that only works if all properties are paths. Are they? | 21:10 | |
| moritz doesn't know anything about those properties | |||
| donaldh | moritz: good point | 21:11 | |
| maybe we should double backslash on the way into the properties file, so it is a valid file. | 21:12 | ||
| dalek | p: 5f7b3da | jnthn++ | tools/build/gen-jvm-properties.pl: Ensure backslashes in props file aren't mangled. |
21:13 | |
| jnthn | With that, I get a successful Rakudo build | ||
| donaldh | indeed, that is jnthn++ fix | ||
| moritz | \o/ | ||
| jnthn: and does it install? :-) | |||
| jnthn | yes, and I can run it from outside of the build directory | 21:14 | |
| donaldh++, moritz++ | 21:15 | ||
| masak | hm, who and what was blocking on an installable rakudo-jvm? | ||
| evalbot, right? | |||
| donaldh | panda | ||
| jnthn | And Panda and... :) | ||
| donaldh | I'm just cleaning up a patch for %*CUSTOM_LIB which panda also needs | ||
| moritz | masak: evalbot doesn't really block on installable, it can chdir into a dir before evaling | 21:16 | |
| masak | huh. someone said it blocked on it. | ||
| donaldh | Panda also wants chdir which would need faked on JVM. Might be easier to remove chdir from panda | ||
|
21:17
abnorman joined,
fridim__ joined
|
|||
| [Coke] | let me know when panda works, I'll make the daily star run do both pvm and jvm | 21:18 | |
|
21:19
xenoterracide left
|
|||
| jnthn | [Coke]++ | 21:19 | |
|
21:20
araujo left
21:21
araujo joined
|
|||
| timotimo | hm, is there .comb(regex, :match) in nqp? :| | 21:21 | |
| jnthn | timotimo: no, but match with :g may get you all the things that match | 21:22 | |
| timotimo | oof. i think i'll need to find a differen tway | 21:24 | |
| i'm about to match columns with two regexes, one covering the "don't have two or more spaces" and one "are there openers and closers for Pod6 formatting codes?" | |||
| and then i'd & them | |||
| doesn't sound like i'll exit that piece of code with my brain intact | 21:25 | ||
|
21:29
stevan_ left
|
|||
| donaldh reminds himself that cross-platform build and install scripts are always challenging | 21:29 | ||
| jnthn++ for golfing and patching my broken Windows implementation of nqp jvm properties | 21:31 | ||
| jaffa4 | Is nqp upward compatible with Perl 6 completely? | 21:32 | |
|
21:32
coax75ohm left
|
|||
| jnthn | jaffa4: no | 21:32 | |
| Mostly, but not completely. | |||
| jaffa4 | Are you going to London Workshop? | 21:35 | |
| timotimo | oh my, i still need to get reservations and accomodation for frankfurt! /o\ | 21:36 | |
| jnthn | Not sure yet | ||
|
21:37
fridim__ left
|
|||
| diakopter | ... what's in frankfurt | 21:38 | |
| timotimo | a nqp&rakudo development workshop/learning session hosted by jnthn | ||
| diakopter | oh yeah :) | ||
| timotimo | oh my. the train journey from my home to salzburg is 5.5h long :o | 21:40 | |
| Ulti | jnthn: is that a photo of Gruyère in one of your YAPC talks? | ||
| diakopter | the flight back from frankfurt was 12.5 hours O_O | 21:41 | |
| timotimo | diakopter: well, i'm not used to traveling | ||
|
21:41
xenoterracide joined
|
|||
| jaffa4 | everything travels... into the future at least | 21:42 | |
| we are all time-travellers | |||
| timotimo | okay, travels anywhere far from parallel to the time axis - at least relative to the earths crust | ||
|
21:44
colomon joined
|
|||
| diakopter | er, 11.5 hours | 21:44 | |
| jaffa4 | Is it going to be recorded? | 21:50 | |
| timotimo | hm. bedtime. today doesn't seem to be helping me progress | 21:54 | |
| jaffa4 | Why is there my in the statement_control: in the grammar? | 21:56 | |
| timotimo | are you wondering about the general syntax of the :<...>? | 21:57 | |
| jaffa4 | no | 21:58 | |
| timotimo | k | ||
|
21:58
yannickberthoud joined,
iSlug left
|
|||
| jaffa4 | I am looking at the Perl6 grammar and to see how it is structured.... | 21:59 | |
|
22:06
grondilu left
|
|||
| jnthn | Ulti: Yes. I went there and ate some tasty cheese :D | 22:06 | |
|
22:06
PacoAir left
22:11
jaffa4 left
22:14
fridim__ joined
|
|||
| Ulti | jnthn: me too :D but not recently, I went to a place on the right in that photo for fondue | 22:15 | |
| donaldh | github.com/rakudo/rakudo/pull/192 | ||
| [Coke] | .seen lizmat | 22:17 | |
| yoleaux | I saw lizmat 16 Aug 2013 08:07Z in #perl6: <lizmat> decommuting& | ||
| preflex | yoleaux: you have 2 new messages. '/msg preflex messages' to read them. | ||
| [Coke] | ZOMG. | ||
| donaldh | is that the bots chatting ? | 22:18 | |
| geekosaur | ...right, i was going to contact mauke about that. >.> | 22:19 | |
|
22:21
mauke joined
|
|||
| diakopter | .seen mauke | 22:22 | |
| yoleaux | I haven't seen mauke around. | ||
| mauke | preflex: seen mauke | ||
| preflex | mauke was last seen 1 minute and 5 seconds ago, saying: <private message> | ||
| jnthn | Ulti: Ah, I did some vacation in Switzerland this summer :) | 22:25 | |
| donaldh: Is that patch tested on Parrot also, ooc? | 22:26 | ||
| donaldh | jnthn: good point, I did originally, but not after todays merge up. | 22:27 | |
| Ulti | jnthn: did you do the nice walk from Zermatt to the Matterhorn too? | ||
| jnthn | Ulti: Was staying a bit of a distance from Zermatt, so only had time for a bit of walking there. Discovered I probably want to stay in that part of Switzerland some time in the future to explore it properly. :) | 22:28 | |
| donaldh: Do you have chance to test it, or should I? | 22:30 | ||
| donaldh | jnthn: doing it now | ||
| jnthn | donaldh++ | 22:31 | |
|
22:35
spider-mario left
|
|||
| masak | 'night, #perl6 | 22:37 | |
| donaldh | jnthn: there are no spec tests for CUSTOM_LIB. Is build + make test + sanity check sufficient ? | 22:43 | |
| jnthn | donaldh: yeah, was worried about build fail | 22:44 | |
| dalek | kudo/nom: 97dec7a | (Donald Hunter)++ | / (2 files): Resurrected %*CUSTOM_LIB on JVM. |
||
| kudo/nom: aab3d78 | jonathan++ | / (2 files): Merge pull request #192 from donaldh/custom-lib Resurrected %*CUSTOM_LIB on JVM. |
|||
| jnthn | 'night, #perl6 | 22:46 | |
| colomon | \o | ||
| donaldh | night jnthn o/ | ||
|
22:51
donaldh left
22:55
araujo left
22:56
araujo joined
22:58
cognominal left,
cognominal joined
23:01
colomon left
23:10
Rotwang left
23:17
colomon joined
|
|||
| dalek | p: 4c00cda | (Donald Hunter)++ | ConfigureJVM.pl: Use Cwd::realpath instead of rel2abs because rel2abs doesn't work |
23:27 | |
|
23:27
BenGoldberg joined
23:29
yannickberthoud left
23:32
berekuk left
23:33
berekuk joined,
berekuk left
|
|||
| sorear | o/ | 23:33 | |
|
23:33
berekuk joined
|
|||
| [Coke] | ö/ | 23:35 | |
|
23:39
berekuk left
23:40
colomon left
23:41
berekuk joined
23:44
berekuk left
23:45
Ben_Goldberg joined
23:47
BenGoldberg left
23:51
berekuk joined
23:52
colomon joined
23:54
EvanTeitelman left
23:56
Urchin[emacs] joined
|
|||
| Ben_Goldberg | .ud require Sayings::Wise; | 23:56 | |
| yoleaux | ENOTFOUND | ||