»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by Juerd on 28 August 2009. |
|||
00:32
fridim left
00:37
icwiener_ left
00:41
payload joined
00:42
colomon joined
00:48
eternaleye left
00:59
Ctrl-ZZZ left
01:01
envi_office2 joined
01:03
TiMBuS joined
01:04
rhr_ joined
01:06
meppl left
01:12
envi^office left
01:16
rhr left
01:21
orafu left,
orafu joined
02:00
crythias joined
|
|||
diakopter | whee | 02:00 | |
mberends: you around? | 02:02 | ||
02:03
Avada joined
|
|||
crythias | I added some vodka to sprixel and got some fizzy drink that made me giggle. | 02:05 | |
phenny | crythias: 03 Oct 13:40Z <diakopter> tell crythias someday we'll credit you with coining 'sprixel' | ||
crythias | something punny resulted in xylophones emitting lasers. | 02:12 | |
trying to do perl in c ... isn't that a bit xs-ive? | 02:13 | ||
TimToady | you can't have my original pun | 02:15 | |
crythias | i didn't research it. i guess it was obvious... | ||
TimToady | "independent discovery" :) | 02:16 | |
diakopter | TimToady: but if it's not original, how is it original? | ||
crythias | but ... but .. they're xylophones with freaking lasers! | 02:17 | |
pugs_svn | r28581 | diakopter++ | [sprixel] implement rand | 02:24 | |
r28582 | diakopter++ | | 02:26 | ||
diakopter | perl6: say rand | ||
p6eval | pugs: OUTPUT«0.5032597184188803» | ||
..sprixel 28580: OUTPUT«0.18537836335599422» | |||
..rakudo e976f2: OUTPUT«0.470813668639497» | |||
..elf 28580: OUTPUT«Undefined subroutine &GLOBAL::rand called at (eval 123) line 3. at ./elf_h line 5881» | |||
diakopter | pugs wins that one, barely. | ||
perl6: say rand | |||
p6eval | rakudo e976f2: OUTPUT«0.853278311275975» | ||
..pugs: OUTPUT«0.12474857564660452» | |||
..sprixel 28580: OUTPUT«0.8870638972148299» | |||
..elf 28580: OUTPUT«Undefined subroutine &GLOBAL::rand called at (eval 123) line 3. at ./elf_h line 5881» | |||
diakopter | sprixel edged out rakudo that time | 02:27 | |
02:34
Whiteknight left
02:41
cognominal joined
|
|||
pugs_svn | r28583 | diakopter++ | [sprixel] implement lexical sub declaration/installation | 02:45 | |
diakopter | sprixel: sub foo { my $a = 'hi from foo'; say $a }; foo; | 02:48 | |
p6eval | sprixel 28583: OUTPUT«hi from foo» | ||
02:48
envi^home joined
|
|||
diakopter | sprixel: my $x = 0; sub foo { say "hi "~$x }; while ++$x < 6 { foo }; | 02:51 | |
p6eval | sprixel 28583: OUTPUT«hi 1hi 2hi 3hi 4hi 5» | ||
diakopter | sprixel: my $x = 0; sub foo { say "hi " ~ ++$x }; while $x < 6 { foo }; | 02:52 | |
p6eval | sprixel 28583: OUTPUT«hi 1hi 2hi 3hi 4hi 5hi 6» | ||
diakopter | sprixel: my $x = 0; sub foo { say "hi " ~ ++$x }; { foo } while $x < 6; | 02:53 | |
p6eval | sprixel 28583: OUTPUT«hi 1hi 2hi 3hi 4hi 5hi 6» | ||
pugs_svn | r28584 | diakopter++ | [sprixel] make another case of trailing while work (dunno why statement_mod_loop didn't cover them all; maybe std/viv oddity) | 02:59 | |
diakopter | sprixel: my $x = 0; sub foo { say "hi " ~ ++$x }; foo while $x < 3; | 03:00 | |
p6eval | sprixel 28583: OUTPUT«hi 1hi 2hi 3» | ||
03:17
sparc joined
03:26
envi_office2 left,
envi^office joined
03:27
xinming_ joined
03:33
ayrnieu joined
03:35
cognominal left
03:38
envi^office left
|
|||
mikehh | rakudo (e976f23) builds on parrot r41670 - make test PASS / make spectest_smolder (up to r28584 -> #28507) FAIL - Ubuntu 9.04 amd64 | 03:43 | |
rakudo - t/spec/S11-modules/nested.t - Parse errors: Bad plan. You planned 6 tests but ran 5 | |||
rakudo - t/spec/S32-num/rat.t - Parse errors: No plan found in TAP output | |||
03:47
xinming left
|
|||
quietfanatic | I have parsed and run a trivial c library in rakudo, during runtime. | 03:50 | |
03:50
lisppaste3 left
|
|||
quietfanatic | (trivial meaning "int get_three () { 3; }") | 03:53 | |
spinclad | so you parse the signature and (find/build) a matching (NCI/equiv) Parrot/Rakudo wrapper? | 03:58 | |
03:58
lisppaste3 joined
|
|||
quietfanatic | yeah | 04:00 | |
diakopter | quietfanatic: you could call it h2xs, except maybe not. maybe h2nci | ||
quietfanatic | h2justrunit | ||
diakopter | H2JFRI. Where the F stands for FindAnd | 04:01 | |
quietfanatic | It's currently just a hack. It needs a lot of polishing before it's even github-ready. | 04:02 | |
sloppiness of note: it parses with perl5, dumps it with Data::Dumper into a temporary file, and evals that file in perl6 | 04:06 | ||
04:08
abbe joined
|
|||
abbe | hi everyone | 04:08 | |
hi moritz_ | 04:10 | ||
i'm wondering if laziness is enabled by default in pug or rakudo... | 04:11 | ||
s/pug/pugs/ | |||
quietfanatic | I believe pugs has more laziness than rakudo at the moment | 04:13 | |
abbe | perl6: my @a = [1,2,3].map({ say "Came across: $_"; $_ * 2; }); say "Forcing evaluation of the list."; say @a.join(','); | ||
p6eval | pugs, rakudo e976f2: OUTPUT«Came across: 1Came across: 2Came across: 3Forcing evaluation of the list.2,4,6» | ||
..elf 28584: OUTPUT«Use of uninitialized value $_ in multiplication (*) at (eval 132) line 4.Can't use string ("0") as a subroutine ref while "strict refs" in use at ./elf_h line 197. at ./elf_h line 5881Came across: $_» | |||
..sprixel 28584: OUTPUT«execute(): execute error: real method calls NYI at sprixel.pl line 89.» | |||
quietfanatic | I believe also array assignment is eager by default | ||
my @a = lazy [1,2,3].map({ say "Came across: $_"; $_ * 2; }); say "Forcing evaluation of the list."; say @a.join(','); | 04:14 | ||
perl6: my @a = lazy [1,2,3].map({ say "Came across: $_"; $_ * 2; }); say "Forcing evaluation of the list."; say @a.join(','); | |||
p6eval | sprixel 28584: OUTPUT«execute(): execute error: noun__S_statement_prefix not yet implemented; srsly!!?!?last: eval_argsT,T__noun__S_statement_prefix,_specific,SYM,statement_prefix,M,phase,invoker,context,eval_args at sprixel.pl line 89.» | ||
..pugs: OUTPUT«Came across: 1Came across: 2Came across: 3*** Cannot cast from VList [VInt 2,VInt 4,VInt 6] to Pugs.AST.Types.VCode (VCode) at /tmp/jqw4MTvnl0 line 1, column 9-61» | |||
..rakudo e976f2: OUTPUT«lazy not implemented at line 2, near "; say \"For"in Main (src/gen_setting.pm:608)» | |||
..elf 28584: OUTPUT«statement_prefix:lazy: unimplemented at ./elf_h line 5235» | |||
quietfanatic | perl6: my @a <== [1,2,3].map({ say "Came across: $_"; $_ * 2; }); say "Forcing evaluation of the list."; say @a.join(','); | ||
p6eval | rakudo e976f2: OUTPUT«Came across: 1Came across: 2Came across: 3Feed operators are not yet implemented in Rakudo, sorryin sub infix:<== (src/gen_setting.pm:1977)called from Main (/tmp/VmEAJaBLoq:0)» | 04:15 | |
..pugs: OUTPUT«Came across: 1Came across: 2Came across: 3Forcing evaluation of the list.» | |||
..elf 28584: OUTPUT«Parse error in: /tmp/lqnqQLAayapanic at line 1 column 6 (pos 6): Can't understand next input--giving upWHERE: my @a <== [1,2,3].map({ say "Came acWHERE: /\<-- HERE STD_red/prelude.rb:99:in `panic' STD_red/std.rb:76:in `scan_unitstopper' STD_red/std.rb:224:in | |||
..`comp_uni… | |||
..sprixel 28584: OUTPUT«execute(): execute error: | |||
..sigil,name,context,value,WHAT,set,toString,increment,decrement,do_Additive,do_Multiplicative,toBool,do_infix__S_Lt,do_infix__S_LtEqual,do_infix__S_Gt,do_infix__S_GtEqual,do_infix__S_EqualEqual,do_infix__S_BangEqual,do_infix__S_lt,do_infix__S_le,do_infix__S… | |||
abbe | std: my @a = [1,2,3].map({ say "Came across: $_"; $_ * 2; }); say "Forcing evaluation of the list."; say @a.join(','); | ||
p6eval | std 28584: OUTPUT«ok 00:03 107m» | ||
abbe | rakudo: my @a = [1,2,3].map({ say "Came across: $_"; $_ * 2; }); say "Forcing evaluation of the list."; say @a.join(','); | 04:16 | |
p6eval | rakudo e976f2: OUTPUT«Came across: 1Came across: 2Came across: 3Forcing evaluation of the list.2,4,6» | ||
abbe | rakudo: lazy { my @a = [1,2,3].map({ say "Came across: $_"; $_ * 2; }); say "Forcing evaluation of the list."; say @a.join(','); }; | 04:17 | |
p6eval | rakudo e976f2: OUTPUT«lazy not implemented at line 2, near ";"in Main (src/gen_setting.pm:608)» | ||
diakopter | abbe: sprixel very nearly can do that | 04:18 | |
abbe | diakopter: sprixel ? | ||
diakopter | this Perl 6 interpreter I and others have been working on | ||
abbe | okay | 04:19 | |
so the conclusion is that laziness is not implemented yet ? | |||
diakopter | essentially, yes | ||
if you want 20-30 minutes, I'll make the above work in sprixel | |||
abbe | diakopter: s/want/have/ ?? | 04:20 | |
diakopter | wait | ||
sorry | |||
abbe | oh, okay, np | 04:21 | |
so gather/take are also not implemented. | |||
rakudo: my @a = gather { [1,2,3].map({ say "Came across: $_"; take $_ * 2; }); }; say "Forcing evaluation of the list."; say @a.join(','); | |||
p6eval | rakudo e976f2: OUTPUT«Came across: 1Came across: 2Came across: 3Forcing evaluation of the list.» | ||
abbe | pugs: my @a = gather { [1,2,3].map({ say "Came across: $_"; take $_ * 2; }); }; say "Forcing evaluation of the list."; say @a.join(','); | 04:22 | |
p6eval | pugs: OUTPUT«Came across: 1Came across: 2Came across: 3Forcing evaluation of the list.2,4,6» | ||
diakopter | abbe: mind you, that example will be just about *all* it could do. :) | ||
it won't be a generic solution. more like proof-of-concept. | 04:23 | ||
for demonstration purposes. :) | |||
abbe | diakopter: that example == one you're going to hack ? | ||
diakopter | well I won't hardcode anything specific to that example, no, but the items in the list will indeed be lazily populated | 04:24 | |
abbe | okay | ||
std: my @a = gather { [1,2,3].map({ say "Came across: $_"; take $_ * 2; }); }; say "Forcing evaluation of the list."; say @a.join(','); | 04:25 | ||
diakopter | 'course, I don't know which one of those examples is supposed to produce the output you're expecting. :) | ||
p6eval | std 28584: OUTPUT«ok 00:03 110m» | ||
diakopter | maybe someone can help... | ||
ah well, I'll just make all maps lazy for now. :) | 04:26 | ||
abbe | diakopter: hmm... | ||
diakopter | heh | ||
abbe | diakopter: expected output: Forcing evaluation of the list.\nCame across: 1\nCame across: 2\nCame across: 3\n2,4,6\n | 04:27 | |
diakopter | for which attempt/input above | 04:28 | |
abbe | diakopter: my @a = [1,2,3].map({ say "Came across: $_"; $_ * 2; }); say "Forcing evaluation of the list."; say @a.join(','); # the article by moritz_ says lists are lazy by default. | 04:29 | |
diakopter: perlgeek.de/en/article/5-to-6 | |||
pugs_svn | r28585 | lwall++ | [STD] attach only pad sigs to the pad, not other signatures | 04:31 | |
r28585 | attach final pad sig to the match/ast (as string) | |||
04:32
Avada left
|
|||
diakopter | r28585: hooray | 04:32 | |
04:36
crythias left
04:45
Ctrl-ZZZ joined
|
|||
TimToady | std: BEGIN { $^a } | 04:53 | |
p6eval | std 28585: OUTPUT«===SORRY!===Placeholder variable $^a cannot be used in this kind of block at /tmp/5opcClCLmw line 1:------> BEGIN { $^a⏏ } expecting any of: POST postfix postfix_prefix_meta_operator standard stopper terminatorFAILED | ||
..00:01 100m» | |||
diakopter | std: { say $^a } | 04:56 | |
p6eval | std 28585: OUTPUT«ok 00:02 100m» | ||
diakopter | sprixel: { say $^a } | ||
p6eval | sprixel 28585: OUTPUT«execute(): execute error: | ||
..constructor,contextId,$a,say,map,die,next,last,True,Bool::True,False,Bool::False,Int,Num,Str,Bool,Sub,Rat,plan,done_testing,ok,is,isnt,pass,flunk,isa_ok,dies_ok,lives_ok,skip,todo,force_todo,use_ok,cmp_ok,diag,is_deeply,like,skip_rest,unlike,eval_dies_ok,e… | |||
diakopter | heh | ||
abbe | sprixel: my @a = [1,2,3].map({ say "Came across: $_"; $_ * 2; }); say "Forcing evaluation of the list."; say @a.join(','); # the article by moritz_ says lists are lazy by default. | 05:00 | |
p6eval | sprixel 28585: OUTPUT«execute(): execute error: real method calls NYI at sprixel.pl line 89.» | ||
abbe | perl6: if "abc" ~~ m:i/B/ { say "Matched"; } | 05:02 | |
p6eval | sprixel 28585: OUTPUT«execute(): execute error: quote__S_m not yet implemented; srsly!!?!?last: value__S_quoteT,T__quote__S_m,_specific,SYM,quibble,M,phase,invoker,context,eval_args at sprixel.pl line 89.» | ||
..elf 28585: ( no output ) | |||
..rakudo e976f2: OUTPUT«Colons cannot be used as delimiters in quoting constructs at line 2, near ":i/B/ { sa"in Main (src/gen_setting.pm:3468)» | |||
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.14/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** '<HANDLE>' trapped by operat… | |||
abbe | pugs: if "abc" ~~ m:i/B/ { say "Matched"; } | ||
p6eval | pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.14/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** '<HANDLE>' trapped by operat… | ||
abbe | pugs: if "abc" ~~ m:/B/ { say "Matched"; } | 05:03 | |
p6eval | pugs: OUTPUT«***  Unexpected end of input expecting "\\", variable name or ":" at /tmp/4l5gnrSfH5 line 2, column 1» | ||
abbe | pugs: if "abc" ~~ m/B/i { say "Matched"; } | ||
p6eval | pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.14/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** '<HANDLE>' trapped by operat… | ||
abbe | perl6: if "abc" ~~ m/B/i { say "Matched"; } | ||
p6eval | sprixel 28585: OUTPUT«===SORRY!===Obsolete use of suffix regex modifiers; in Perl 6 please use prefix adverbs instead at /tmp/Nz61wDgUNS line 1:------> if "abc" ~~ m/B/i⏏ { say "Matched"; }Other potential difficulties: Possible obsolete use of /i; in Perl 6 | 05:04 | |
..plea… | |||
..rakudo e976f2: OUTPUT«get_number() not implemented in class 'Sub'in sub postfix:i (src/gen_setting.pm:1287)called from Main (/tmp/Q2rAEhvTh0:0)» | |||
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.14/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** '<HANDLE>' trapped by operat… | |||
..elf 28585: OUTPUT«No viable candidate for call to multimethod postfix_i(Regexp) at (eval 128) line 3 at ./elf_h line 5881» | |||
abbe | perl6: if "abc" ~~ mi/B/ { say "Matched"; } | ||
p6eval | elf 28585: OUTPUT«Parse error in: /tmp/kxo9SVez2qpanic at line 1 column 0 (pos 0): Can't understand next input--giving upWHERE: if "abc" ~~ mi/B/ { say "MatchWHERE:/\<-- HERE STD_red/prelude.rb:99:in `panic' STD_red/std.rb:76:in `scan_unitstopper' STD_red/std.rb:224:in `comp_unit' | ||
..STD_red… | |||
..pugs: OUTPUT«***  Unexpected "{" at /tmp/7j2xQ1nt7J line 1, column 19» | |||
..sprixel 28585: OUTPUT«===SORRY!===Expression needs parens to avoid gobbling block at /tmp/rAiTEHJfPx line 1:------> if ⏏"abc" ~~ mi/B/ { say "Matched"; }Missing block (apparently gobbled by expression) at /tmp/rAiTEHJfPx line 1 (EOF):------> if "abc" | |||
..~~ mi/B… | |||
..rakudo e976f2: OUTPUT«Could not find non-existent sub mi» | |||
abbe | perl6: if ("abc" ~~ m:i/B/) { say "Matched"; } | 05:05 | |
p6eval | sprixel 28585: OUTPUT«execute(): execute error: quote__S_m not yet implemented; srsly!!?!?last: value__S_quoteT,T__quote__S_m,_specific,SYM,quibble,M,phase,invoker,context,eval_args at sprixel.pl line 89.» | ||
..elf 28585: ( no output ) | |||
..rakudo e976f2: OUTPUT«Colons cannot be used as delimiters in quoting constructs at line 2, near ":i/B/) { s"in Main (src/gen_setting.pm:3468)» | |||
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.14/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** '<HANDLE>' trapped by operat… | |||
abbe | perl6: if ("abc" ~~ mi/B/) { say "Matched"; } | ||
p6eval | pugs: OUTPUT«***  Unexpected " {" at /tmp/trXGujAKHS line 1, column 20» | 05:06 | |
..elf 28585: OUTPUT«Undefined subroutine &GLOBAL::mi called at (eval 128) line 3. at ./elf_h line 5881» | |||
..sprixel 28585: OUTPUT«===SORRY!===Unable to parse parenthesized expression; couldn't find final ')' at /tmp/nhrh9dXkjr line 1:------> if ("abc" ~~ mi/B/⏏) { say "Matched"; } expecting any of: noun prefix or noun standard stopper term | |||
..terminator whitespace… | |||
..rakudo e976f2: OUTPUT«Confused at line 2, near "/) { say \""in Main (src/gen_setting.pm:3468)» | |||
abbe | perl6: if ("abc" ~~ m/B/) { say "Matched"; } | ||
perl6: if ("abc" ~~ m/b/) { say "Matched"; } | |||
p6eval | sprixel 28585: OUTPUT«execute(): execute error: quote__S_m not yet implemented; srsly!!?!?last: value__S_quoteT,T__quote__S_m,_specific,SYM,quibble,M,phase,invoker,context,eval_args at sprixel.pl line 89.» | ||
..elf 28585, rakudo e976f2: ( no output ) | |||
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.14/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** '<HANDLE>' trapped by operat… | |||
sprixel 28585: OUTPUT«execute(): execute error: quote__S_m not yet implemented; srsly!!?!?last: value__S_quoteT,T__quote__S_m,_specific,SYM,quibble,M,phase,invoker,context,eval_args at sprixel.pl line 89.» | |||
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.14/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** '<HANDLE>' trapped by operat… | |||
..elf 28585, rakudo e976f2: OUTPUT«Matched» | |||
diakopter | yay for elf, rakudo | 05:07 | |
05:08
justatheory left,
nihiliad left,
zloyrusskiy joined
|
|||
mberends | diakopter++; pmurias++; # srsly, you guys rock! | 05:15 | |
05:19
zloyrusskiy left
|
|||
pugs_svn | r28586 | diakopter++ | [sprixel] implement sub closures [slightly more] properly; implement return keyword | 05:26 | |
diakopter | mberends: it's late for you! :) | ||
I mean, early | |||
mberends | late for you, but cool features! | 05:27 | |
diakopter | sprixel: sub foo($a, $b) { say $a + $b; sub ($a) { say $a + $b } }; my $f = foo(3,4); $f(9) | ||
p6eval | sprixel 28585: OUTPUT«713» | ||
diakopter | currying, ish | ||
mberends | wow. | ||
diakopter | sprixel: sub foo($a, $b) { say $a + $b; sub ($a) { say $a + $b } }; my $f = foo(3,4); $f($f($f(9))); | 05:28 | |
p6eval | sprixel 28585: OUTPUT«71355» | ||
diakopter | heh | ||
sprixel: sub foo($a, $b) { say $a + $b; sub ($a) { say $a + $b; return $a + $b } }; my $f = foo(3,4); $f($f($f(9))); | |||
p6eval | sprixel 28585: OUTPUT«7131721» | 05:29 | |
mberends | :-) | ||
diakopter | sprixel: sub foo($a, $b) { say $a + $b; sub ($a) { say $a + $b; return ++$a + $b } }; my $f = foo(3,4); $f($f($f(9))); | ||
p6eval | sprixel 28585: OUTPUT«7131823» | ||
mberends | heh | ||
diakopter | sprixel: sub foo($a, $b) { say $a + $b; sub ($a) { say $a + $b; return ++$a + $b } }; my $f = foo(3,4); say $f($f($f(9))); | 05:30 | |
p6eval | sprixel 28585: OUTPUT«713182324» | ||
mberends | you got pmurias++ (and ruoso++) all fired up as well :) | ||
(and TimToady++) | 05:31 | ||
diakopter | s/fired up/nagged to death/ (TimToady at least) :) | 05:32 | |
mberends | I have an idea to sneak per-test benchmarking into Test.pm.js and the new harness :) | ||
05:33
jaldhar left,
meppl joined,
jaldhar joined
05:34
szabgab joined
|
|||
diakopter | goodness gracious :) | 05:34 | |
well, sprixel will only get slower, unless it grows an optimization phase or 40 | 05:35 | ||
pugs_svn | r28587 | diakopter++ | [sprixel] make predeclaration of variables actually work :) | 05:39 | |
diakopter | sprixel: my $AA; sub foo($a, $b) { say $a + $b; $AA = sub ($a) { say $a * $b }; sub ($a) { say $a + $b } }; my $f = foo(3,4); $f(9); $AA(33) | 05:40 | |
p6eval | sprixel 28585: OUTPUT«713132» | ||
diakopter | perl6: my $AA; sub foo($a, $b) { say $a + $b; $AA = sub ($a) { say $a * $b }; sub ($a) { say $a + $b } }; my $f = foo(3,4); $f(9); $AA(33) | 05:41 | |
p6eval | elf 28586, pugs, rakudo e976f2, sprixel 28585: OUTPUT«713132» | ||
diakopter | nice | ||
mberends | :-) # the "Big Four" | 05:43 | |
carlin | Is anyone here using FreeBSD? | 05:57 | |
abbe | carlin: not right now. | 06:05 | |
carlin | abbe: when you are, would you mind checking what "say $*OS" outputs on it? | 06:09 | |
abbe | carlin: in rakudo, i hope. | 06:10 | |
carlin | Oh, yes | ||
abbe | carlin: sure i'll do that :) | ||
carlin | abbe: Thanks :-) | ||
abbe | you're welcome, carlin | 06:11 | |
ShaneC | can rakudo read files/directories yet? | 06:29 | |
mberends | sorry, nyi, try $names=qqx{ls $dir} instead | 06:30 | |
Tene | rakudo: my $f = open('/tmp/foo.txt', :w); $f.say('o hai'); $f.close(); $f = open('/tmp/foo.txt', :r); say $f.readline(); | 06:31 | |
p6eval | rakudo e976f2: OUTPUT«operation not permitted in safe modein Main (/home/p6eval//p2/lib/parrot/1.6.0-devel/languages/perl6/lib/Safe.pm:24)» | ||
Tene | Well, that would have worked if it wasn't in safe mode. | ||
I really should get around to setting up an SELinux sandbox for a rakudo bot. | 06:32 | ||
ShaneC | thanks | 06:33 | |
Tene | ShaneC: If you really need opendir() or whatever, I bet you could get someone around here to add that for you pretty quick. | 06:35 | |
ShaneC | does parrot compile with msvc? | 06:38 | |
i could probably add it | |||
06:43
SmokeMachine left
06:44
SmokeMachine joined
06:48
xinming joined
|
|||
spinclad | i believe it does, [particle] and others do that | 06:49 | |
(that: msvc on win) | 06:50 | ||
06:50
abbe left
07:00
xinming_ left
|
|||
Tene | ShaneC: yes, it does. | 07:05 | |
07:14
abbe joined
07:15
szabgab left
07:16
meppl left
07:18
am0c joined
|
|||
ShaneC | sorry for all the questions, i've looked but haven't found many helpful docs yet, if you have any good links let me know | 07:24 | |
does rakudo have a way to get a string's length? | |||
$str.length() isn't working | |||
carlin | rakudo: say "foo".chars; | ||
p6eval | rakudo e976f2: OUTPUT«3» | ||
ShaneC | thanks | ||
carlin | np | 07:25 | |
07:29
jauaor joined
07:35
abbe left
07:45
abra joined
08:05
hanekomu joined
|
|||
Tene | ShaneC: .length has been split into .bytes and .chars to account for unicode, etc. | 08:12 | |
08:14
abbe joined
08:24
iblechbot joined
08:42
TopoMorto joined
08:51
abbe left
08:57
araujo left
09:00
payload left,
pmurias joined
09:01
meppl joined
09:06
jauaor_ joined
09:07
araujo joined,
TopoMorto left
09:13
jauaor left,
jauaor_ is now known as jauaor
09:19
silug left
09:41
am0c left
10:00
Khisanth left,
gbacon left,
mspauldi1g left,
cosimo_ left
10:01
Khisanth joined,
gbacon joined,
mspauldi1g joined,
cosimo_ joined
10:10
masak joined
|
|||
masak | \o/ | 10:10 | |
pmurias | hi | 10:11 | |
carlin | o/ | ||
masak | another glorious day in the future! | 10:12 | |
carlin finally finished spectesting OpenBSD, took 15926 wallclock secs | 10:15 | ||
10:18
iblechbot left
10:27
hanekomu_ joined
|
|||
pugs_svn | r28588 | carlin++ | [t/spec/S02-magicals/config.t] Add openbsd as a known and tested OS. Platform specific spectest failures were: S03-operators/arith #163, S32-num/power #11 (the 1**Inf=NaN problem) and S29-context/sleep #2&4 which I think is the result of system slowness | 10:28 | |
10:37
NorwayGeek joined
10:44
abra left
10:45
hanekomu left
|
|||
masak | I've rambled a little here: use.perl.org/~masak/journal/39709 | 10:47 | |
I have one or two more blog posts I hope to write today. | 10:48 | ||
moritz_: irc logger seems to be down. | 10:49 | ||
10:49
meppl left
|
|||
mberends | masak: moritz is away for the weekend. I' about to leave for a week of work in Groningen, hope to be online after hours. | 10:52 | |
masak | mberends: oki. | ||
mberends: I'm pondering doing some TDD-based temporal sketching somewhere. | |||
probably in a rakudo fork. | |||
mberends | ok :) | 10:53 | |
I'm finishing 'make spectest' for sprixel, then probably return to proto | 10:54 | ||
10:54
abra joined
|
|||
masak | mberends: I had a thought the other day. I changed Duration.day et al to .days, beacuse that feels more logical. but those accessors might also need an adverb, whose name I haven't settled on yet, which expresses the whole Duration in fractional days. | 10:55 | |
example: 3 days, 12 hours. without the adverb: 3. with the adverb: 3.5 | |||
mberends | hmm, depends how easily it reads in a use case | 10:57 | |
10:58
icwiener joined
|
|||
masak | aye. | 10:58 | |
mberends | days :whole | ||
no, it's confusing | |||
masak | .days(:whole) or .days: :whole, but yes. | ||
mberends | rather call an .Int when you need one | 10:59 | |
masak | er, that won't work. | ||
the 12 hours might also be 44 hours. | |||
mberends | too many features is bad for a core spec | ||
masak | also, having the default be integers makes sense. | ||
.days(:only) | 11:00 | ||
carlin | theintersect.org/2009/out-in-the-open/ # my experiences with rakudo on OpenBSD | ||
mberends | masak: works for me, but don't add stuff that is suitable for modules | 11:01 | |
masak | mberends: I know, I shouldn't go overboard. | 11:02 | |
but my use case is actually the same as always: | |||
(DateTime.new('2010-04') - now()).days(:only).floor | |||
11:03
eternaleye joined
|
|||
mberends | fair enough :) | 11:03 | |
masak | without the :only adverb, the use case would be much longer. | ||
colomon | .masak: qq:to ? | ||
masak | colomon: I got that right, no? | 11:04 | |
mberends | must go soon, plan to read www.yaml.org/spec/1.2/spec.html offline | ||
masak | mberends: have the appropriate amount of fun. :) | ||
colomon | masak: dang if I know. | ||
masak | colomon: S02:263 | 11:05 | |
colomon: it has low recognizability, because it's pending some parser refactors, and thus NYI in Rakudo. | |||
11:08
payload joined
|
|||
colomon | masak: should it be qq:to/SPAM/ in your example? | 11:12 | |
masak | colomon: there's a regex form too, but I chose the string form. | 11:13 | |
I could have written it qq:to'SPAM' as well, I guess. | |||
11:14
silug joined
|
|||
colomon | I don't see any first mention of SPAM in your example? | 11:15 | |
(Is it :to<SPAM>, and the brackets are eaten by html?) | 11:16 | ||
masak | oh! | 11:18 | |
masak changes it to :to'SPAM' | |||
colomon++ # for noticing | |||
colomon | I just couldn't figure out how what I was seeing could work... | 11:19 | |
masak | :) | ||
I need to stop writing my blog posts in crippled HTML. it's far too primitive. | 11:20 | ||
I should at least make myself a preprocessor. | |||
colomon | I remember being very excited about the leading whitespace eating in p6 the first time I heard of it, but never leaned the syntax. :) | 11:21 | |
(p6 heredocs, I mean.) | |||
masak | aye | 11:22 | |
mberends | \o for now, will try to get hotel wifi later & | ||
colomon | A pretty significant portion of my $work perl programming is heredocs, and the leading space issue in p5 makes that code ugly and hard to follow. | 11:23 | |
masak | mberends: enjoy Groningen! | 11:24 | |
colomon | so I could see what you were trying to do, but the syntax was baffling. :) | ||
11:25
NorwayGeek left,
NorwayGeek joined
11:26
mberends left
|
|||
pmurias | colomon: the leading space is removed automatically | 11:26 | |
11:27
nErVe joined
|
|||
buu | colomon: Why is a significant portion of your code in heredocs? | 11:29 | |
colomon | my $work perl code is = | ||
whoops | |||
buu | colomon: Hrm? | 11:30 | |
colomon | has alot of automatic generation of C++ code. | ||
buu | ! | ||
Now there's a scary thought | |||
Have you considered.. templates? | 11:31 | ||
colomon | I've started using templates for some of it. | ||
but for things which involve a lot of repetition in a single file, I still like heredocs better. | 11:32 | ||
carlin | Does anyone know how IO::Socket.recv() is supposed to work? It only seems to return once the server disconnects. | 11:33 | |
11:33
NorwayGeek left
|
|||
colomon | I also haven't figured out how to generate good-looking code from a template. | 11:33 | |
11:33
NorwayGeek joined
|
|||
colomon | for my purposes the generated code needs to be human-readable. | 11:34 | |
masak | pmichaud: compilers/pct/src/Regex/P6Regex.pir, line 93: \w [\w+! <?before \w>] -- would that ever match? | ||
and why the []? | 11:35 | ||
11:37
payload left
|
|||
buu | colomon: Er, the same way you generate readable html? | 11:45 | |
pmurias | ruoso: hi | ||
masak | buu: write it by hand? :P | 11:46 | |
buu | masak: Heh, he's the one generating C++! | 11:47 | |
masak | hugme: hug colomon | ||
hugme hugs colomon | |||
masak | the following spectests gave non-zero exit status today: t/spec/S11-modules/nested.t t/spec/S12-introspection/methods.t t/spec/S32-num/complex.rakudo t/spec/S32-num/log.rakudo t/spec/S32-num/rat.t | 11:52 | |
(I'm running bleeding Parrot.) | |||
colomon | ooo, I don't seeing issues with complex, log, and rat. | 11:53 | |
btw, are you running bleeding rakudo? | |||
masak | methods.t ran fine out of the harness. | 11:54 | |
yes, bleeding Rakudo. | |||
colomon | all the new trig tests worked okay? | 11:55 | |
masak | nested.t gave an interesting ambig dispatch. so that actually looks like a regression. | ||
complex.rakudo gives a Parrot failed assertion. | |||
log.rakudo gives "Method 'log10' not found for invocant of class 'Complex'" | 11:56 | ||
rat.t gives "Method 'Rat' not found for invoc..." oh wait. | 11:57 | ||
maybe I'm not running bleeding Rakudo. :/ | |||
colomon | how many tests were there? | 11:58 | |
masak | ah, I'm not. the automatic update failed due to a dirty checkout. sorry about all the fuss. | ||
now I'm getting 'make: *** No rule to make target `src/classes/Complex.pir', needed by `perl6_s1.pbc'. Stop.' | 12:02 | ||
er, need to... of course. | |||
masak doesn't think he has woken up yet today | |||
12:03
abbe joined
|
|||
abbe | carlin: freebsd | 12:04 | |
dalek | kudo: 809ca9b | masak++ | src/classes/Signature.pir: [Signature.pir] fixed typo |
||
carlin | abbe: do you get any failures in the spectest: "t/spec/S02-magicals/config.t"? | 12:05 | |
abbe | carlin: check your PM | 12:08 | |
carlin | abbe: Got it. I'll send you an email now. :-) | 12:10 | |
12:10
iblechbot joined
|
|||
abbe | FreeBSD PR for lang/rakudo: www.freebsd.org/cgi/query-pr.cgi?pr=ports/139012 | 12:11 | |
cosimo_ | masak: about Squerl, i just tried it. this is what I got: gist.github.com/201347 | 12:12 | |
and good day everyone :) | |||
masak looks | |||
cosimo_: worksforme | 12:14 | ||
cosimo_: is your Rakudo very old? | 12:15 | ||
cosimo_: the error seems to be caused by your Rakudo not recognizing the 'use SQLite3:from<parrot>;' properly. | 12:17 | ||
at least the type SQLite3 is undefined for some reason. | |||
colomon: do you have runtime/parrot/library/SQLite3.pir in your Parrot dir? | 12:18 | ||
it should be there since r41150. | |||
colomon | masak: yup | 12:19 | |
masak | huh. | ||
12:19
Whiteknight joined
|
|||
colomon | masak: wait, you meant to direct that at cosimo_ , not me. | 12:19 | |
masak | oops. sorry. :/ | ||
cosimo_: do you have runtime/parrot/library/SQLite3.pir in your Parrot dir? | 12:20 | ||
cosimo_ | masak: i just pulled rakudo and run Configure with --gen-parrot | 12:22 | |
masak | cosimo_: it's possible that that Parrot is too old, then. | ||
I guess you could also copy SQLite3.pir somewhere to make it visible to Parrot. | 12:23 | ||
12:24
masak left,
masak joined
|
|||
masak | oops. wrong button. | 12:24 | |
cosimo_ | masak: i have parrot r41447 | ||
masak | that's new enough. | 12:25 | |
cosimo_ | SQLite3.pir is there | ||
masak | then it's a mystery why it doesn't work. | ||
Tene: ping | |||
12:26
sri_ left,
meppl joined
12:29
sri_ joined
|
|||
masak | hm. is it really possible to serialize something without breaking encapsulation? | 12:34 | |
I'm about to persist a Druid board, and all I can think of is generating a series of statements which, when run from within a Druid::Game object, sets all the attributes to their respective values. | 12:36 | ||
but that feels... wrong. | |||
pmurias | masak: only if you have a serialize method | ||
masak | I don't. | ||
hm, tricky. | 12:37 | ||
pmurias | you have to break encapsulation then | 12:40 | |
masak | yes, I think I do. | ||
pmurias | if you do it in a multi it will still be overidable | ||
masak | aye | ||
if I serialize to an executable Perl 6 string, it feels more extensible. | 12:41 | ||
but there's probably a big security hole in there, too. | 12:42 | ||
12:42
meteorjay left
|
|||
masak | someone with access to the serialization can just inject arbitrary code. | 12:42 | |
12:43
zloyrusskiy joined
12:45
ayrnieu left
12:49
ejs joined,
eternaleye_ joined
12:50
eternaleye left
|
|||
colomon | mask: it seems like serializing to an executable Perl 6 string is the right thing to do? | 12:54 | |
perhaps with security added on top of that... | |||
12:54
NorwayGeek left
|
|||
masak | colomon: yes, such as checking with regexes that the expressions look like I expect them to. | 12:54 | |
rakudo: class A {}; say A === A.clone | 12:55 | ||
p6eval | rakudo 809ca9: OUTPUT«1» | ||
12:55
nErVe left
|
|||
colomon | I was thinking more along the lines of encrypted MD5 checksum or something like that. :) | 12:55 | |
masak | hm. :) | ||
colomon | though I guess that isn't a workable solution with open source code, now that I think about it. | ||
masak | still no easy way to do MD5 in Perl 6, AFAIK. | 12:56 | |
12:56
abbe left
|
|||
masak | Parrot has it, but I've never seen Perl 6 code use it. | 12:56 | |
my freeze/thaw methods are called gelatinize/melt :) | |||
pmurias | masak: checking with regexes seems like a textbook security hole | ||
colomon | sounds like another fine project to work on. ;) | ||
12:56
NorwayGeek joined
|
|||
masak | pmurias: why? If I'm expecting an array of arrays of integers, and I make sure the regex checks that for me, what's the security hole. | 12:57 | |
pmurias: now, I agree generally that the whole design is very brittle. | |||
but right now I'm just trying to make anything work. | |||
this serialization step is essential for a web app to work. | |||
12:58
wknight8111 joined
|
|||
colomon | so, some sort of serialization package is needed for Perl 6. | 12:59 | |
masak | lurkers: hear that? | ||
colomon | I was thinking .perl was sufficient, but I think the security issues are overwhelming. | ||
pmurias | .yaml? | ||
masak | that'd be nice. | ||
pmurias | pugs: say [1,2,3].yaml | ||
p6eval | pugs: OUTPUT«--- - >- 1- >- 2- >- 3» | 13:00 | |
13:00
ihrd joined
|
|||
masak | \o/ | 13:00 | |
ihrd | hi there | ||
pmurias | what does \o/ symbolise? | ||
masak | ihrd! | ||
ihrd | masak: Carl! | ||
masak | pmurias: a happy person with arms outstreched. | ||
ihrd: kak zhizn? | |||
13:01
NorwayGeek left
|
|||
ihrd | masak: хорошо :) | 13:01 | |
masak should transcribe, it's very lazy | |||
ihrd: good to hear. | |||
ihrd | rakudo: IO.^methods>>.name.join(', '); | 13:02 | |
13:02
NorwayGeek joined,
iblechbot left
|
|||
p6eval | rakudo 809ca9: ( no output ) | 13:02 | |
ihrd | rakudo: use IO; IO.^methods>>.name.join(', '); | ||
p6eval | rakudo 809ca9: ( no output ) | ||
ihrd | hm :( | ||
masak: do we have something like IO::Dir::open nowdays? | 13:03 | ||
masak | ihrd: not to my knowledge. | ||
ihrd | masak: readed your last post, very nice! | 13:05 | |
masak | just rambling. :) but thanks. | 13:06 | |
I have two more coming up today, provided I take the time: one about tote and my recent thoughts on it, and one Web.pm weekly post. | |||
bah, Druid has bit-rotted. :/ | 13:08 | ||
ihrd | masak: I like '.' and have tendency to use it a lot | ||
masak | me too! | ||
ihrd | and because of thet I offen see myself remove it because of cycle | 13:09 | |
I mean I wroating something like { .foo; .bar; .baz} | |||
masak | I don't know if I expressed it properly in the post, but thanks to the separation of topic and OO topic, we now have both a kind of 'this' (self) and 'that' ($_) in Perl 6. | ||
ihrd | and then my method growing and | 13:10 | |
{ .foo; .bar; foreach @a{ .baz; # arrgh}} | |||
masak: yes, you are expressed very well | 13:12 | ||
masak | ihrd: well, if you use '->' in the inner for loop, you will conserve the outer $_. | ||
ihrd | realy? (gonna check) | 13:13 | |
masak | and your '# arrgh' should really be '#`[arrgh]', otherwise the comment will gobble up the '}}' :) | ||
13:13
Whiteknight left
|
|||
masak | ya realy. | 13:13 | |
13:16
abra left
|
|||
ihrd | yes, you are totally right | 13:16 | |
#`arrgh` | 13:17 | ||
masak | no, #`[arrgh] | ||
ihrd | #`[arrrgg] | ||
looks ugly | |||
masak | that's the idea. | 13:18 | |
www.youtube.com/watch?v=LJfowXTXOfU | |||
ihrd | made it so ugly... so no one will use it? | 13:19 | |
masak | well, the ` is chosen so as not to interfere with anything else. | ||
TiMBuS | do multiline block comments need multiple braces? because they never work if i don't use them and I'm not sure if its a parser issue or thats how its meant to work | 13:20 | |
ie #`[[ ]] or #`{{ }} | |||
masak | rakudo: #`[ OH HAI ]; say "alive" | 13:22 | |
p6eval | rakudo 809ca9: OUTPUT«alive» | ||
ihrd | TiMbuS: works just fine with #`[] for me | ||
TiMBuS | hm, lemme look for the old one that wasnt working | 13:23 | |
ihrd | rakudo: for 1..3 { #`<foo> .say} | ||
p6eval | rakudo 809ca9: OUTPUT«123» | ||
13:23
PacoLinux left
|
|||
ihrd | rakudo: for 1..3 { #`"comment" .say} | 13:24 | |
p6eval | rakudo 809ca9: OUTPUT«123» | ||
13:25
PacoLinux joined
|
|||
TiMBuS | using a #`[ ] and having a regex with [] within it fails, i guess its just not counting nested tokens | 13:25 | |
masak | TiMBuS: you still haven't given an example of something that fails. :) | 13:26 | |
an example is worth a thousand words. | |||
ihrd | rakudo: for 1..3 { #`[/foo/] .say} | 13:27 | |
p6eval | rakudo 809ca9: OUTPUT«123» | ||
TiMBuS | oh, no i guess its not an error after all, you just cant nest braces | ||
like #`( foo() ) | |||
ihrd | we can use 'for 1..3 { #`!WTF! .say}' | 13:30 | |
or for 1..3 { #`?WTF? .say} | |||
masak | TiMBuS: the braces you nest have to be fewer in number than the outermost ones, that's all. | ||
ihrd | it`s looks much better... just add some emmotion | ||
TiMBuS | its catching me out when i comment out a large chunk of code, is all. | 13:32 | |
ihrd | and #`.narrative comment here. | ||
TiMBuS | wont be much of an issue with a text editor with perl6 highlighting though | ||
ihrd | TiMBuS: yeah | 13:33 | |
masak | TiMBuS: or you can use Pod: '=begin Comment ... =end Comment' | ||
ihrd | I`m gonna sleep | 13:34 | |
bye! | |||
masak | bye! | ||
TiMBuS | ive never used pod to comment out large sections of code.. in fact the idea never crossed my mind =| | 13:35 | |
maybe ill do that | |||
13:36
zloyrusskiy left
13:37
ihrd left
13:45
TiMBuS left
13:47
masak left
13:51
abra joined
|
|||
colomon | You know, commenting out large sections of code is one of those problems I consider solved by using TextMate as my editor. It's got a "comment out selection" command that does "single line" commenting on every line of the current selection, and is smart enough to know how to do it in both C++, Perl, and shell scripts. (Probably dozens of other languages as well, but those are the ones I use.) | 13:52 | |
It's drastically easier than adding #if 0 #endif or something like that. | |||
carlin | I like the vim "j." trick to comment out lines | 13:56 | |
13:58
jaldhar left,
icwiener left
13:59
icwiener joined
|
|||
diakopter | masak: hi | 14:01 | |
oh | 14:02 | ||
14:10
jaldhar joined
14:16
abra left,
jaldhar left
14:21
jaldhar joined
14:22
Patterner left
14:25
jaldhar left
14:26
jan__ left,
jaldhar joined
|
|||
pugs_svn | r28589 | pmichaud++ | [S08]: Some notes where online discussions are at odds with the spec. | 14:26 | |
r28590 | pmichaud++ | [S08]: Update mime-type for .pod document. | 14:27 | ||
14:27
Patterner joined,
dakkar joined
|
|||
pugs_svn | r28591 | pmichaud++ | [S08]: Update svn:eol-style property. | 14:28 | |
14:30
jaldhar left
14:31
jferrero joined
14:33
cognominal joined
14:35
cognominal left
14:36
cognominal joined
14:46
pmurias left
14:50
jaldhar joined
14:54
jaldhar left
15:03
justatheory joined
15:06
Maddingue joined
15:08
zloyrusskiy joined
15:12
Gratz474 joined
|
|||
Gratz474 | how is that parrot vm coming along, i saw it after not hearing much about it for like 3 years | 15:12 | |
15:14
justatheory left
|
|||
zloyrusskiy | ask later to developers | 15:15 | |
15:20
tolkad joined
|
|||
tolkad | When is perl 7 comming out? | 15:20 | |
diakopter | um | ||
carlin | The idea is that a Perl6 implementation will become sentient and write Perl 7 itself | 15:21 | |
hanekomu_ | tolkad: New Year | ||
Maddingue | Gratz474: Parrot 1.0 is out since a few months : www.parrot.org/ | ||
tolkad: first public release of Perl 6 next spring | |||
diakopter | well | 15:22 | |
tolkad | not perl 6, perl 7 | 15:23 | |
diakopter | tolkad: where did you hear about perl 7 | ||
tolkad | well you guys are almost done with perl 6 so I thought you would be starting on perl 7 soon | ||
diakopter | hugme: stretch your hug muscles | ||
tolkad: almost done with perl 6? | 15:24 | ||
tolkad | yeah you have this irc bot that can execute it and everything | ||
diakopter | it can execute small subset of the Perl 6 specification on several implementations | 15:25 | |
some larger than others | |||
Gratz474 | Maddingue, how will the performance of perl 6 be at that point ? | 15:26 | |
tolkad | well it should be pretty fast, especially since it can compile to assembly | ||
diakopter | Gratz474: on what use scenario? micro-benchmarks? terrible. developer productivity? high, hopefully all the way along the learning curve. | 15:27 | |
it can compile to assembly? | |||
tolkad | really? cool | ||
diakopter | no, that's what I'm asking | 15:28 | |
you said it can compile to assembly | |||
which implementation? | |||
tolkad | well I just assumed that would be the next step | ||
I mean why wouldn't it be able to compile to assembly? | 15:29 | ||
diakopter | I don't know if Gratz474 was looking for someone's assumption as the answer to "how will the performance be... " | ||
optimizing compilers don't appear out of nowhere | |||
Gratz474: for news about Parrot, you can take a look at www.parrot.org | 15:31 | ||
15:31
jan___ joined
|
|||
diakopter | also, there are usually folks on the irc channel #parrot on the magnet irc network | 15:31 | |
Gratz474 | i mean by performance not like it will be super fast but atleat something not suuuuper slow ;) | 15:32 | |
diakopter | ok. here are a couple of microbenchmarks, for the morbidly curious | 15:35 | |
15:36
jaldhar joined
|
|||
diakopter waits for each to finish | 15:37 | ||
15:39
xinming_ joined
15:40
gabiruh joined
15:41
zaphar_ps joined
15:45
iblechbot joined
15:46
synth joined
15:50
zloyrusskiy left
|
|||
diakopter | diakopter@d5dev01:~$ time perl -e 'my $a=0; 1 while ++$a < 500_000_000' | 15:53 | |
real 0m27.460s | |||
diakopter@d5dev01:~$ time rakudo -e 'my $a=0; 1 while ++$a < 1_000_000' | |||
real 0m26.768s | |||
diakopter@d5dev01:~$ time pugs -e 'my $a=0; 1 while ++$a < 100_000' | |||
real 0m25.662s | |||
diakopter@d5dev01:~$ time perl sprixel.pl -e 'my $a=0; 1 while ++$a < 25_000' | |||
real 0m28.661s | |||
I ran them with different counts until they were roughly close in duration | 15:54 | ||
colomon | That's 500x difference I expect to see between Perl 5 and current Rakudo. | ||
diakopter | for this microbenchmark, yes. :) | 15:55 | |
it doesn't say all that much about other programs | |||
colomon | yeah, but I've seen similar numbers with other programs that have large loops. | ||
Or was that other test of mine 5000x slower? | 15:57 | ||
15:57
xinming left
|
|||
diakopter | oops; I pasted the wrong run for sprixel: | 16:02 | |
diakopter@d5dev01:~/src/pugs/src/perl6$ time perl sprixel.pl -e 'my $a=0; 1 while ++$a < 50_000' | |||
real 0m31.087s | |||
16:06
[particle] joined
|
|||
diakopter | [particle]: howdy | 16:06 | |
16:08
zaphar_ps left
|
|||
diakopter | block setup/return: | 16:19 | |
time perl -e '{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}' | |||
real 0m0.008s | |||
time perl sprixel.pl -e '{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}' | |||
real 0m2.263s | |||
time rakudo -e '{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}' | |||
real 0m2.991s | 16:20 | ||
time pugs -e '{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}' | |||
real 0m1.071s | |||
for sprixel, only 0.05s of that is the run-time (rest is parsing/emission to JS) | 16:23 | ||
16:23
ejs left
|
|||
diakopter | I imagine that's similar for rakudo | 16:24 | |
16:25
ayrnieu joined
16:26
snearch joined
16:32
envi^home left
16:48
FOAD joined
|
|||
tolkad | rakudo: say 3; | 16:49 | |
p6eval | rakudo 809ca9: OUTPUT«3» | ||
tolkad | rakudo: say `ls`; | ||
p6eval | rakudo 809ca9: OUTPUT«say requires an argument at line 2, near " `ls`;"in Main (src/gen_setting.pm:2562)» | ||
tolkad | rakudo: say system('ls'); | 16:50 | |
p6eval | rakudo 809ca9: OUTPUT«Could not find non-existent sub system» | ||
tolkad | rakudo: say exec('ls'); | ||
p6eval | rakudo 809ca9: OUTPUT«Could not find non-existent sub exec» | ||
tolkad | how do you execute system commands in perl6? | ||
FOAD | rakudo: say `ls .`; | ||
p6eval | rakudo 809ca9: OUTPUT«say requires an argument at line 2, near " `ls .`;"in Main (src/gen_setting.pm:2562)» | 16:51 | |
tolkad | rakudo: while(1){echo 1;} | 16:52 | |
p6eval | rakudo 809ca9: OUTPUT«Confused at line 2, near "{echo 1;}"in Main (src/gen_setting.pm:3468)» | 16:53 | |
tolkad | wat | ||
rakudo: while(1) {echo 1;} | |||
p6eval | rakudo 809ca9: OUTPUT«Confused at line 2, near "{echo 1;}"in Main (src/gen_setting.pm:3468)» | ||
ayrnieu | It doesn't know what 'echo' means. | ||
tolkad | rakudo: while(1) {say 1;} | ||
oh I forgot | |||
p6eval | rakudo 809ca9: OUTPUT«Confused at line 2, near "{say 1;}"in Main (src/gen_setting.pm:3468)» | ||
tolkad | rakudo: while(1) say 1; | 16:54 | |
p6eval | rakudo 809ca9: OUTPUT«Confused at line 2, near "say 1;"in Main (src/gen_setting.pm:3468)» | ||
16:55
tolkad left
17:03
szabgab joined
17:05
Su-Shee joined
|
|||
Su-Shee | hi. :) | 17:05 | |
FOAD | rakudo: say "a"; say "b"; | 17:06 | |
p6eval | rakudo 809ca9: OUTPUT«ab» | ||
FOAD | rakudo: my $a = "test"; $a = $a.reverse; say $a; | 17:07 | |
p6eval | rakudo 809ca9: ( no output ) | ||
FOAD | Mmm. | ||
17:09
nErVe joined,
nihiliad joined
|
|||
FOAD | rakudo: my $a = "test"; $a = $a.flip; say $a; | 17:09 | |
p6eval | rakudo 809ca9: OUTPUT«tset» | 17:10 | |
FOAD | Ah. | ||
moritz_ | good localtime() futurebutterflies | 17:11 | |
17:11
masak joined
|
|||
colomon | moritz_: You're back! | 17:12 | |
dalek | kudo: a796cf1 | moritz++ | src/setting/Operators.pm: add another &infix:<...> multi to handle the case 3 ... $+2, $max |
17:13 | |
kudo: db7c668 | moritz++ | src/setting/Complex.pm: Complex.ACCEPTS |
|||
masak | and he's committing! | ||
moritz_ | sure I am ;-) | ||
pugs_svn | r28592 | moritz++ | [perl.org] refactored style sheet (less duplication) | ||
masak | moritz_: what's 'the case 3 ... $+2, $max' | ||
colomon | I was just wondering if ... (as described dev.pugscode.org/changeset/28344) worked yet. | 17:14 | |
(That change must have happened while I was on vacation.) | |||
moritz_ | masak: it's the '&infix<...>($somthing, [Code, $limit)' form | ||
pugs_svn | r28593 | moritz++ | [perl6.org] borders for subpage columns | 17:15 | |
r28594 | moritz++ | [S03] markup | |||
r28595 | moritz++ | [S03] thinko | |||
r28596 | moritz++ | [S03] be more consequent in removing :by | |||
FOAD | ] | ||
pugs_svn | r28597 | moritz++ | [S32/Numeric] major overhaul | 17:16 | |
r28597 | | |||
r28597 | * Most methods that were in Num are now Numeric | |||
r28597 | * sign() and the rounding methods are now in Real | |||
r28597 | * document (at least partially) Rat, Num and Int | |||
masak | FOAD: thanks. :) | ||
colomon | moritz_: Are you using git-svn to do that? | 17:17 | |
masak | moritz_: so '$+2' should really be '* + 2' or something? | ||
moritz_ | masak: uhm, yes, *+2 | ||
colomon: yes | |||
colomon | rakudo: for 1..10 { say $_; } | ||
p6eval | rakudo 809ca9: OUTPUT«12345678910» | ||
colomon | rakudo: for 1...10 { say $_; } | 17:18 | |
p6eval | rakudo 809ca9: OUTPUT«12345678910» | ||
FOAD | You're welcome. :P | ||
masak | moritz_++ # features | ||
17:23
absurddoctor left
17:25
kcwu left
|
|||
colomon | rakudo: for 1, 3 ... 10 { say $_; } | 17:25 | |
p6eval | rakudo 809ca9: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'in sub infix:... (src/gen_setting.pm:2488)called from Main (/tmp/HEuSDm02Jt:0)» | ||
pugs_svn | r28598 | moritz++ | [t/spec] correct and unfudge ~~ Complex tests | 17:28 | |
r28599 | moritz++ | [t/spec/TODO] more updating tasks | |||
r28600 | moritz++ | [t/spec] remove range-by.t, :by is deprecated | |||
r28601 | moritz++ | [t/spec] more tests for series | |||
r28602 | moritz++ | [t/spec] clean up lazy-lists.t | |||
r28602 | | |||
r28602 | tests that rely on the exact form of .perl output are wrong. | |||
r28603 | moritz++ | [t/spec] more :by removal | 17:29 | ||
r28604 | moritz++ | [t/spec] test series operator with scalar on the left | |||
r28605 | moritz++ | [t/spec] :let and :temp in regexen | |||
r28606 | moritz++ | [t/var] remove two test files which seem rather outdated | |||
17:32
meppl left,
ilbot2 joined
|
|||
moritz_ bemoans a lack of IRC logs over the weekend | 17:33 | ||
colomon | it was pretty quiet over the weekend. | ||
though lanny wrote a nice function to convert a Num to a Rat. | 17:34 | ||
diakopter did a bunch of cool stuff, as per normal lately. | |||
moritz_ runs his 'update-stuff' script that updates about 15 repositories ;-) | 17:35 | ||
I see that perl-5.11.0 wwas released - obra++ | |||
masak | obra++ | ||
moritz_ | masak++ the dot sigil | 17:36 | |
diakopter | moritz_: can ilbot2 import from irssi logs? | 17:37 | |
moritz_ | diakopter: no | ||
diakopter | sad | ||
moritz_ | I've written a script, but sadly some of the display logic depends on monotonic primary keys | ||
and importing older stuff would break that | |||
17:38
zloyrusskiy joined,
absurddoctor joined
17:45
kcwu joined
17:46
absurddo1tor joined
17:53
tak11 joined
17:56
absurddoctor left
17:58
Chillance joined
|
|||
moritz_ | mildew-js: say 3, 4 | 17:59 | |
p6eval | mildew-js: OUTPUT«execute(): execute error: ReferenceError: P6Int is not defined at mildew line 336.» | ||
moritz_ | mildew-js: say '3' | ||
p6eval | mildew-js: OUTPUT«3» | ||
18:05
hanekomu_ left
18:06
FOAD_ joined
18:11
snearch left
|
|||
colomon | moritz_: so when do we start implementing Numeric? ;) | 18:11 | |
moritz_ | colomon: ;-) | 18:12 | |
colomon: let's wait some more until the bikeshedding has settled | 18:13 | ||
masak | so Numeric is the big all-encompassing role, yes? | 18:14 | |
moritz_ | yes | 18:15 | |
do we still have an 'Ordered' role? | 18:16 | ||
the only mentin is in S02:1073: Range A pair of Ordered endpoints | |||
which might just as well be a typo | |||
colomon | moritz_: I suppose I should learn how to use Roles first anyway. :) | 18:18 | |
moritz_ | colomon: in this case roles aren't scary - if you know Java's interfaces, you have a very good idea of what happens | 18:19 | |
except that roles can contain implementation too | |||
masak | there's an Order enum. | 18:20 | |
colomon | moritz_: I have never programmed in Java, but I've read the C# specs for interfaces. And I've used C++ multiple inheritance in more or less the way roles are supposed to work, I think. | 18:21 | |
but it's still a long step from that to using them in practice, I bet. | |||
moritz_ | ah, and there's an Ordering too | ||
18:22
FOAD left,
FOAD_ is now known as FOAD,
bionoid left,
bionoid joined
|
|||
moritz_ | oh | 18:22 | |
18:23
bionoid is now known as Guest83709
|
|||
moritz_ | std: subset Ordering where Signature | KeyExtractor | Comparator | OrderingPair | Whatever; | 18:23 | |
p6eval | std 28606: OUTPUT«ok 00:01 100m» | ||
moritz_ | uhm, subset of what? | ||
masak | I have a question about Array.delete. S32/Containers describes it with 'Sets elements specified by C<@indices> in the invocant to a non-existent state, as if they never had a value.' does this mean something different from 'Sets elements specified by C<@indices> in the invocant to C<undef>'? | ||
moritz_ | (take straigt from S29) | ||
masak | moritz_: appears it parses, at least. | 18:24 | |
maybe there's an implicit 'of Object' | |||
moritz_ | masak: for typed arrays there's a difference, yes | ||
masak | ah, hence the strange wording. | ||
I see. thanks. | |||
moritz_ | yw | 18:25 | |
18:25
baest_ joined
|
|||
masak | the 'as if it never had a value' currently has a ghastly interpretation in Rakudo. it gives a Null PMC access. | 18:25 | |
well, Parrot does. | |||
moritz_ | lol | ||
18:26
baest_ is now known as baest
|
|||
masak | I'm reading the PIR of that routine now. it basically says 'make these indices contain the Null PMC'. | 18:26 | |
so no wonder. | |||
moritz_ | assigning an undef would be much better, even if not quite accurate | ||
masak | maybe I should just port it to the Setting and get it over with. | 18:27 | |
masak tries | |||
moritz_ | colomon: did you apply the Num -> Rat patch? | 18:30 | |
colomon | moritz_: I did not, thought I have a copy locally. | 18:31 | |
Did he send it to perl 6 compiler? I don't always follow that... | |||
moritz_ | it's in RT (and thus p6c, I think) | 18:32 | |
18:32
absurddo1tor left
|
|||
colomon | (copy locally == cut and paste from lanny's nopaste) | 18:32 | |
If you'd like, I'd be happy to track it down and do it. Be good practice... | 18:33 | ||
(track down the proper patch, I mean, so he gets credited properly) | |||
moritz_ | sure, would be great | 18:34 | |
moritz_ looks at the patch | 18:35 | ||
I'm a bit worried that sub _modf might be visible to Perl 6 programs | 18:36 | ||
18:38
cahek joined
|
|||
Tene | masak: pong | 18:39 | |
masak | Tene: at the place in time where I pinged you, did you notice cosimo_'s troubles with SQLite3? | ||
Tene | masak: I haven't read any scrollback. I could if you'd like. | 18:40 | |
18:40
payload joined
|
|||
colomon | moritz_: interesting... he didn't have _modf in the version I saw. | 18:41 | |
moritz_ | colomon: probably duplication removal | ||
colomon | should it be "my sub" or something like that? | ||
masak | Tene: short summary: SQLite3 evaluates to 'Undef' on line 50 in SQLite.pm. it worksforme, but not for cosimo_. we don't know why. | 18:42 | |
moritz_ | colomon: that would be great. Last time I checked it 'my' functions didn't work in the setting - but maybe they do now | ||
colomon | let me see what happens... | ||
moritz_ | I didn't quite understood how the patch works - but it gives 335/113 for pi, which is a very nice approximation ;-) | 18:43 | |
18:43
RoomsUser_ joined
|
|||
moritz_ | and 1/10 for 0.1, -1.5 for -0.2 etc | 18:43 | |
in short, I like it ;-) | 18:44 | ||
Tene | masak: if you can find anyone who can reproduce the problem, I can troubleshoot it. | ||
masak | cosimo_: ping | ||
Tene | masak: the first step I'd try is running it under strace. if you can get me an strace log, it should help a lot. | ||
colomon | moritz_: "patch does not apply" | ||
masak | aye. my intuition told me that too, but I'm still too inexperienced to know what to _do_ with such an intuition. :P | 18:45 | |
moritz_ | colomon: it said that for me too, but in fact it did apply | ||
I changed a small detail, then did git-add src/setting/Num.pm | |||
and then git-am --continue | |||
Tene | masak: you'd grep the log for SQLite to see what paths it looked for the library in. | ||
masak | ah. | 18:46 | |
colomon | moritz_: didn't apply at all for me. | ||
lisppaste3 | moritz_ pasted "version of lanny++'s patch that applies right now" at paste.lisp.org/display/88169 | 18:47 | |
moritz_ | colomon: try this one | ||
(with git-am $filename) | |||
colomon | moritz_: that's just the diffs between his patch and yours, isn't it? | 18:48 | |
moritz_ | uhm, sorry | ||
right | 18:49 | ||
let me get you the right one | |||
lisppaste3 | moritz_ annotated #88169 "next try (actualy patch for colomon++)" at paste.lisp.org/display/88169#1 | 18:50 | |
18:50
s1n1 joined
|
|||
colomon | moritz_++ | 18:51 | |
working on testing it now. | 18:53 | ||
18:53
RoomsUser_ left
18:58
perl_7_0_0 joined,
zloyrusskiy left
|
|||
colomon | yeah, the 355/113 test is very nice. and you can actually get a lot better rational pi by upping the tolerance.... | 18:58 | |
Trying it as "my sub" now. (Or should I check it in first and then do that?) | 18:59 | ||
moritz_ | first try | 19:00 | |
colomon | I meant check in lanny's patch and then mess with it -- not sure if I said that clearly the first time. | ||
moritz_ | I do it this way usually: | ||
1) apply the original patch | |||
2) experiment with it | |||
3) commit my changes | 19:01 | ||
4) run git-rebase -i HEAD^3 | |||
squash my changes in the original patch | |||
5) push | |||
6) profit | |||
colomon | I used "git apply patch", that doesn't seem to have staged the patch or committed it or anything. I don't seem to have git-am? | 19:02 | |
masak | a blog post about the non-ubiquity of TDD: lastofthecarelessmen.blogspot.com/2...sting.html | ||
19:02
meppl joined
|
|||
moritz_ | colomon: git-am also addes the author information automatically | 19:03 | |
colomon: so if you apply with 'git-apply' you need to commit with 'git commit --author="..."' | 19:04 | ||
colomon | so I probably should do that before making my own change on top of his, yes? | ||
moritz_ | yes | ||
colomon | Okay. btw, my sub seems to have worked, at least with my first crude test of it. | 19:05 | |
19:06
NorwayGeek left,
NorwayGeek joined
|
|||
colomon | should I include his e-mail in the author string, do you think? | 19:07 | |
moritz_ | well, if (1.1).Rat lives and Num::$subname doesn't work, it's fine | ||
yes, include email address | |||
colomon | danke. | ||
19:07
NorwayGeek left
19:08
NorwayGeek joined,
NorwayGeek left
19:09
NorwayGeek joined
19:10
nErVe left
19:15
nErVe joined
|
|||
colomon | running tests now. | 19:16 | |
19:16
Su-Shee left
19:18
perl_7_0_0 left
19:26
crythias joined
19:27
dakkar left
19:33
NorwayGeek left
|
|||
moritz_ | with this patch (with non-'my' sub) I get this error in t/spec/S11-modules/nested.t | 19:43 | |
ok 5 - can use multiple "Role $name" statements (in multiple files) RT 67976 | |||
Ambiguous dispatch to multi '_block1697'. Ambiguous candidates had signatures: | |||
:() | |||
in Main (src/gen_setting.pm:3468) | |||
looks like a code generation bug to me | 19:44 | ||
(or maybe it's a newer parrot version that triggers it, not sure | |||
19:47
s1n joined
|
|||
colomon | You're ahead of me on the spectest, I'm still in S06. :) | 19:47 | |
moritz_ | I let both of my cores work on it ;-) | ||
ok, that failure seems to be related to parrot | 19:48 | ||
colomon | I think firefox is stealing all my cycles anyway... | ||
19:49
s1n1 left
|
|||
colomon | oh hey, I get that failure too. | 19:50 | |
Hmm... I didn't run perl Configure before this spectest, maybe that would help? | 19:51 | ||
moritz_ | I'm currently trying an older parrot revision | 19:54 | |
19:56
s1n left
|
|||
masak | I got that error too earlier today. | 19:57 | |
moritz_ | can parrot's parallel build being broken doesn't help with bisecting, really | 19:58 | |
19:59
nErVe left
|
|||
masak | sorry, what? | 20:00 | |
moritz_ | s/can / | 20:02 | |
sorry :) | |||
20:02
pmurias joined
|
|||
masak | ah. :) | 20:03 | |
colomon | Is -j2 the "use two cores" flag for make? | ||
masak | it is. | 20:04 | |
20:06
szabgab left
|
|||
moritz_ is baffled by that parrot error | 20:06 | ||
i can got back to a parrot version as old as Wednesday and still reproduce it | |||
masak | the plot thickens! | 20:08 | |
20:09
s1n joined,
jauaor left
|
|||
colomon | not a parrot error? I'm pretty sure I ran the full spectest before committing all the trig stuff on Friday, and it all passed. My parrot hasn't updated since them, as far as I know. | 20:11 | |
(definitely not.) | 20:12 | ||
moritz_ | I'm trying older versions of parrot now, step by step | 20:14 | |
can sombody confirm or deny the sanity of smolder.plusthree.com/app/public_graphs/start/18 please? | 20:15 | ||
20:16
Kodi joined
|
|||
colomon | moritz_: I added a few trig tests on friday, if that's what you're asking. ;) | 20:16 | |
moritz_ | "a few" | ||
;-) | 20:17 | ||
masak | whoa. | 20:18 | |
Kodi | rakudo: my @foo; my $x = 1; push @foo, $x; ++$x; say $x; say @foo[0]; | 20:19 | |
p6eval | rakudo a796cf: OUTPUT«22» | ||
colomon | I wondered when someone would noticel | ||
moritz_ | ;-) | ||
masak | spectest finished. duration: 110 minutes. failures in t/spec/S03-operators/series.rakudo t/spec/S03-operators/smartmatch.rakudo t/spec/S11-modules/nested.t t/spec/S32-num/rat.t | ||
moritz_ | masak: are you on latest rakudo? | 20:20 | |
masak | I'll check. | ||
moritz_ | that looks suspiciously like tests I touched today | ||
(except nested.t) | |||
Kodi | rakudo: my @foo; my $x = 1; @foo[0] = $x; ++$x; say $x; say @foo[0]; | 20:21 | |
p6eval | rakudo a796cf: OUTPUT«21» | ||
moritz_ | oh wait, it's much easier | ||
TimToady++ touched the test recently. | |||
masak | I seem to be on bleeding, yes. | ||
moritz_ | masak: could you nopaste the bit more verbose summary please? | 20:22 | |
masak | aye, no prob. | ||
Kodi | I do think that's a bug— push ought to add the value, not an alias. Does anybody know if it's already been reported? | ||
masak | moritz_: gist.github.com/201612 | ||
Kodi: it has. | 20:23 | ||
Kodi | masak: Oh, good, thanks. | ||
masak | Kodi: rt.perl.org/rt3/Ticket/Display.html?id=69548 | 20:24 | |
Kodi | Yeah, it's pretty freaky all right. | ||
pugs_svn | r28607 | moritz++ | [t/spec] fudge test for rakudo that fails after adding a stubbed role | ||
moritz_ worksaround that bug by @a.push: do { my $y = $x } | 20:25 | ||
masak | that but report is recent, but I think the bug itself has been known longer. it feels familiar. | ||
moritz_ | same as the gather/take bug | ||
masak 's workaround is @a.push($x+0) | |||
moritz_ | masak: that only works for numbers | ||
masak | oh, for sure. | ||
my programs only handle numbers. :P | |||
Kodi | I ended up doing @a[@a.end + 1] = $x. | 20:26 | |
masak | ouch. :) | ||
peraps we should rewrite push that way. :P | |||
Kodi | Indeed. | ||
moritz_ | certainly @a[*+1] = $x read nicer, though ;-) | ||
masak | yes, but it's wrong. | 20:28 | |
it should be 'minus 1'. :P | |||
oh wait. | |||
no, I'm wrong. | |||
moritz_ | shouldn't it be *+0 or so? | ||
masak | it should. | ||
moritz_ | rakudo: my @a = 1, 2; @a[*+0] = 3; say @a.perl | ||
p6eval | rakudo a796cf: OUTPUT«[1, 2, 3]» | 20:29 | |
masak | Kodi: check if your code is doing what you intend. | ||
moritz_ | rakudo: my @a = 1, 2; @a[*] = 3; say @a.perl | ||
p6eval | rakudo a796cf: OUTPUT«[3, undef]» | ||
Kodi | moritz_: It's fine now. | ||
masak | that's correct. | ||
moritz_ | aye | ||
masak | but perhaps hard to explain to newbies. | ||
20:29
jaldhar left
|
|||
moritz_ | whatever ;-) | 20:29 | |
masak | 哈哈 | 20:30 | |
20:31
Ctrl-ZZZ left
|
|||
colomon | why is the @a[*] is some sort of whatever slice? | 20:34 | |
try that again. | 20:35 | ||
is the @a[*] some sort of whatever slice? | |||
20:36
s1n left
|
|||
masak | it's the slice of all elements. | 20:36 | |
at least along the zeroth dimension. | |||
20:38
s1n joined
|
|||
masak | moritz_++ # nice sprixel post | 20:39 | |
moritz_ | thanks | 20:40 | |
diakopter++ # he reviewed it and improved it here and there | |||
colomon | hey, sweet, spectest runs in 15 minutes on my quad core linux box | ||
if I use -j4 | |||
moritz_ | I think the test harness doesn't honour the -j option (that only affects the build), but you can also use 'TEST_JOBS=4 make -j 4 spectest' | 20:41 | |
(it defaults to 3) | 20:42 | ||
colomon | hmmm... so that was just the effect of having 4 cores available to handle 3 jobs? (And lots of ram.) | 20:43 | |
20:43
nbrown left
|
|||
masak | rakudo: class MyHash is Hash {}; my MyHash $h | 20:43 | |
p6eval | rakudo a796cf: OUTPUT«Could not build C3 linearization: ambiguous hierarchyin sub trait_mod:of (src/gen_setting.pm:136)called from Main (/tmp/2nZgZpKlVy:0)» | ||
masak | workaround: wrap/delegate, I guess. | ||
still, sad. | |||
20:45
nbrown joined
|
|||
moritz_ | colomon: I'd think so | 20:45 | |
20:47
nErVe joined,
nErVe left
|
|||
pmurias | masak: url? for the blog pos | 20:49 | |
t | |||
masak | perlgeek.de/blog-en/perl-6/announci...rixel.html | ||
20:52
Guest83709 is now known as bionoid,
lanny joined,
meppl left
|
|||
lanny | Hi, all. In response to backlog _modf should go away when perl6 has a POSIX library. | 20:52 | |
moritz_ | lanny: I think that colomon has a fix right now which makes _modf purely internal... | 20:53 | |
colomon | at least in theory... | ||
moritz_ | which means it's no problem at all | ||
colomon | should I verify that my spectest failures are the same as the general run of spectest failures and then check in lanny's patch? | 20:54 | |
lanny | Excellent. | ||
moritz_ | colomon: yes | ||
lanny | Where is the proper place to bikeshed on Numeric btw? I'm not looking to retread covered ground. | 20:55 | |
masak | ah, so Jon Lang, a p6l regular, isn't on IRC at all? I like that subset of the Perl 6 community, they come off as tortoises simply by not being on IRC. :) | ||
nothing wrong with that, of course. | |||
lanny: bikeshedding usually takes place on p6l. but here is fine, too. | 20:56 | ||
lanny | Well in that case... :) | ||
I notice that sign() is in Real. Shouldn't it be higher up in the structure. I would think 7.Int.sign might be of interest. | |||
I could have used it in Num.Rat in fact. | |||
moritz_ | Int is a Real | ||
and so is Num | 20:57 | ||
masak | how do I tell an Array to be one element shorter than it is? | ||
lanny | Ok. How about Rat? | ||
moritz_ | Rat is Real too | ||
lanny | Don't make me come over there. :) | ||
pugs_svn | r28608 | Kodi++ | [t/spec/S32-array/push.t] Added a test for RT #69548 | ||
moritz_ | masak: shift? pop? | ||
masak | moritz_: oh, right. thanks. | ||
lanny | Ok. Real in perl6 must mean something different then in mathematics | ||
moritz_ | lanny: Real means "not complex" in Perl 6 | 20:58 | |
and as far as I understand mathematics, that's roughly the same | |||
and Rat is a subset of Real, of course | |||
lanny | No. Rats can't represent all Reals so Rats can't be Reals (in math) | ||
moritz_ | well, that's why we don't use inheritance for that | 20:59 | |
lanny | Understood. I'm just thinking of the confusion such terminology will cause. | ||
moritz_ | but rather role composition | ||
20:59
jaldhar joined
|
|||
lanny | Yeah. Been playing with that in Scala. My heads about half wrapped around role composition | 20:59 | |
moritz_ | if you can do $op with Real, then you can do $op with Rat | 21:00 | |
21:00
Kodi left
|
|||
moritz_ | which is why Rat implements the Real interface/role | 21:00 | |
lanny | decades of study are yelling at you in my head right now. :) | ||
moritz_ | there's some kind of impedance mismatch between the Perl 6 type system and mathemtical subsets... | 21:01 | |
lanny | But I don't have a quick counterexample. | ||
Yes. I'm just thinking of the pain that's caused in Haskell. | |||
moritz_ | lanny: note that I don't say that $op on Rat produces a $at again | ||
lanny | Although wanting to go off the deep in for the prelude isn't something I'd want to see in p6 either. | ||
21:01
jferrero left
|
|||
moritz_ | it might very well produce a Real | 21:02 | |
lanny | Noted. | ||
moritz_ | like sqrt(Rat) -> Real | ||
lanny | Bumped into that trying to produce a multiply-with-carry RNG and not having uint... | ||
Would you like a sqrt(Rat)->Rat? I've got one squirreled away somewhere. | 21:07 | ||
colomon | lanny: I think that way lies madness. | ||
lanny | :P | ||
colomon: was more of a poke than something I think was really needed | 21:08 | ||
colomon | well seriously, all of the trig functions could be implemented to return Rats if called with Rats | ||
lanny | I am still concerned about the terminology though. | ||
moritz_ | I don't think it's a good idea | 21:09 | |
conceptually all these functions return reals, not rationals | |||
(and yes, I'm away that the computer only knows about rationals...) | 21:10 | ||
pugs_svn | r28609 | diakopter++ | [sprixel] a few medium-ish refactorings; reduced durations of while/preincrement microbenchmark by 50% | 21:11 | |
21:11
nErVe joined
|
|||
masak | tests++ # you are my joy and my greatest enemy | 21:12 | |
s/enemy/adversary/ | |||
moritz_ was about to suggest rm if they were really enemies ;-) | |||
lanny | Surely they are more antagonist? If they are *your* adversary I'll start saying your name a lot while writing them such that I am overlooked. | 21:13 | |
moritz_ just needed 2 minutes to find the xterm where he started a largish mv | 21:14 | ||
time to clean up my windows, it seems ;-) | 21:15 | ||
masak | beating the tests is fun, though. | ||
the end guy is hard. | |||
lanny | Is there thought that p6 will have a POSIX for things like modf() or will such be rolled into p6 and the posix implementations provide the lifting at the machine level for posix machines? | 21:16 | |
Motivating thought is Real.modf() | 21:17 | ||
moritz_ doesn't know | 21:18 | ||
pugs_svn | r28610 | pmurias++ | [mildew-js] moved runtime.js into re-mildew | 21:21 | |
r28611 | pmurias++ | [mildew-js] some progress on the runtime | |||
pmurias | lanny: the second option is preferable when possible | ||
21:25
nbrown left
|
|||
lanny | Ok. So it wouldn't be taken amiss if I document a modf() in role Real for S32? | 21:25 | |
21:26
xinming joined
|
|||
lanny | and (looking at POSIX) fmod | 21:27 | |
21:27
payload left
|
|||
lanny | alternately I can throw these ideas at perl6-language and see if they stick there. | 21:27 | |
diakopter | oh. my microbenchmark comparisons were way off, earlier... due to very large differences in 'startup/parse' time | 21:28 | |
hrmph | |||
moritz_ | lanny: we currently try to avoid POSIX names, except when they are very good | ||
lanny: and I don't think modf is a good name ;-) | |||
s/try/trying/ # time for me to go to bed ;-) | |||
lanny | I agree. It's just what I had for my perl5 impl | 21:29 | |
diakopter | pmurias: I did a bunch of refactoring... improved sprixel's runloop/traversal by around 1-2 decimal orders... substituted a smart-ish JS exception handling system for tons and tons of checks | 21:30 | |
also (for some reason), rakudo on my VPS runs 10-20x slower than on my notebook in a vmware linux vm | 21:32 | ||
but sprixel runs about the same. | |||
v8 & perl are 64-bit on both. | |||
moritz_ | is it the same architecture? (32bit vs. 64bit)? | ||
hm, ok | 21:33 | ||
diakopter | anyway, here are some updated microbenchmark numbers: (just for entertainment purposes only; do not base any claims on these non-numbers) | 21:34 | |
rakudo -e 'loop (my $x=0;++$x < 100000;) {}; say $x' #real 0m4.392s | 21:36 | ||
rakudo -e 'loop (my $x=0;++$x < 1;) {}; say $x' #real 0m0.999s | |||
perl sprixel.pl -e 'loop (my $x=0;++$x < 100000;) {}; say $x' #real 0m20.058s | |||
perl sprixel.pl -e 'loop (my $x=0;++$x < 1;) {}; say $x' #real 0m1.787s | |||
pugs_svn | r28612 | Darren_Duncan++ | Spec S03 : add Range methods .excl_min, .excl_max | 21:37 | |
diakopter | keep in mind, in sprxiel those are bigints, so they're like quadruple boxed | ||
spirxel, even | |||
I mean. | |||
sprixel. | |||
21:39
xinming_ left
|
|||
pmurias | diakopter: in perl5 it's 0.024 | 21:40 | |
21:40
nbrown joined
21:42
zaphar_ps joined
21:43
iblechbot left
21:44
slavik2 joined
|
|||
diakopter | pmurias: no it's not. :) it's 0.014 | 21:44 | |
slavik2 | perl6: say "Hello" | ||
p6eval | elf 28612, pugs, rakudo a796cf, sprixel 28609: OUTPUT«Hello» | 21:45 | |
slavik2 | perl6: say "Hello"; | ||
bah | |||
p6eval | elf 28612, pugs, rakudo a796cf, sprixel 28609: OUTPUT«Hello» | ||
slavik2 | perl6: say (0==1); | ||
p6eval | rakudo a796cf, sprixel 28609: OUTPUT«0» | ||
..elf 28612, pugs: OUTPUT«» | |||
slavik2 | perl6: say (1==1); | ||
p6eval | elf 28612, pugs, rakudo a796cf, sprixel 28609: OUTPUT«1» | 21:46 | |
slavik2 | perl6: say ?{1==1}; | ||
p6eval | elf 28612, pugs, rakudo a796cf: OUTPUT«1» | ||
..sprixel 28609: OUTPUT«execute(): execute error: Symbolic_unary prefix__S_Question not yet implemented; srsly!!?!?? at sprixel.pl line 89.» | |||
slavik2 | perl6: say ?{1==0}; | ||
p6eval | pugs, rakudo a796cf: OUTPUT«1» | ||
..sprixel 28609: OUTPUT«execute(): execute error: Symbolic_unary prefix__S_Question not yet implemented; srsly!!?!?? at sprixel.pl line 89.» | |||
..elf 28612: OUTPUT«» | |||
21:48
PacoLinux left
21:53
nErVe left
|
|||
slavik2 | do assertions work yet? | 21:54 | |
diakopter | phenny: tell mberends I'm redoing the entirety of sprixel's builtins in Perl 6 (with embedded JS for some things) after I redo the interpreter engine to treat everything as an .invoke(), with proper captures and signatures and the like. | 21:57 | |
phenny | diakopter: I'll pass that on when mberends is around. | ||
masak | slavik2: you mean in regexes? | ||
slavik2 | yes | ||
rules/tokens/grammars | |||
masak | slavik2: only the kind where you use double curlies and write the assertion in PIR. | ||
slavik2 | masak: {{ pir code }} ? | 21:58 | |
wait ... we can embed pir code in perl? | |||
masak | <? {{ pir code }}> | ||
slavik2 | interesting | ||
masak | slavik2: at least for now, we can. | ||
until we have the real thing. | |||
slavik2 | how do I refer to $0? | 21:59 | |
I want to do this: <?{ 0 <= $0 <= 255 }> | |||
my $string = "1234"; token tok { (\d+) <?{ 0 <= $0 <= 255 }> }; if ($string ~~ /<tok>/) { say $/ } ; | |||
roughly | |||
pugs_svn | r28613 | Kodi++ | [perl6.org] Added a mention of Sprixel to the compilers page. | 22:02 | |
22:04
icwiener left
|
|||
colomon | moritz_: errrr.... spectest done, and I only had two failures: push.t and sinh.t?! | 22:06 | |
masak | yay! all tests pass, including two TODO ones! | 22:12 | |
but it's too late to run the spectests now, so the commit'll have to come tomorrow. | 22:13 | ||
22:13
Lichtkind joined
|
|||
quietfanatic | slavik2: According to spec, that case would be something like token tok { [\d+] ~~ {0 <255} }, I think... | 22:13 | |
Excuse me | |||
s/{0 <255}/{0 <= $_ <= 255}/ | 22:14 | ||
slavik2 | interesting | ||
quietfanatic | But Rakudo's not quite that sophisticated. | ||
masak | I have a fix for RT #67446 locally. gist.github.com/201663 | ||
quietfanatic | the ~~ doing a submatch | 22:15 | |
masak | I have a feeling Rakudo might get that sophisticated soon. | ||
slavik2 | masak: how soon? | 22:16 | |
I've been waiting since parrot was like 0.6-devel | |||
masak | slavik2: I'm not the one to decide how soon. :) but soon. | ||
slavik2 | christmas? | 22:17 | |
masak | before that. | ||
I'm following the pct-rx development with interest. | |||
it's really progressing nicely. | |||
slavik2 | sweet! | 22:18 | |
colomon | lanny: I've applied your patch to rakudo. Thanks! | ||
lanny | My pleasure and thanks back. | 22:19 | |
22:19
pmurias left
|
|||
quietfanatic | Until then, you'll have to use this :) /<!after \d> [ 25<[0..5]> | 2<[0..4]>\d | 1?\d\d ] <!before \d>/ | 22:19 | |
masak | or PIR. | ||
diakopter | moritz_ (or anyone): any ideas/tips on how to run mangle.pl in reverse... I need to unmangle .... or perhaps I don't. | 22:20 | |
dalek | kudo: 42ed85a | (Lanny Ripple)++ | src/setting/Num.pm: add a cast for Num to Rat with optional error |
||
kudo: 1ca164a | (Solomon Foster)++ | src/setting/Num.pm: Change Num._modf to "my" to make it private. |
|||
quietfanatic | s/1?\d\d/1?\d?\d/ | ||
masak | g'night. | 22:23 | |
diakopter | quietfanatic: /<!after \d> [ 25<[0..5]> | 2<[0..4]>\d | 1\d\d? | <[2..9]>\d? ] <!before \d>/ # don't allow leading zeroes | ||
22:23
masak left
|
|||
quietfanatic | diakopter: /<!after \d> 0* [ 25<[0..5]> | 2<[0..4]>\d | 1?\d?\d ] <!before \d>/ # allow leading zeros | 22:24 | |
diakopter | oh... | ||
quietfanatic | diakopter: note that 1?\d?\d allows 1\d\d, \d\d, or \d | 22:25 | |
diakopter | right, I didn't realize the person wanted to match 0<[0..9]> | 22:26 | |
(also I left out the "0" case) | |||
quietfanatic | Even the old one would have matched 00 or 0 | 22:27 | |
but not 000 :) | |||
22:28
nbrown_ joined
|
|||
Lichtkind | pmichaud: ping | 22:30 | |
22:32
nbrown left,
nbrown joined
22:39
nbrown_ left,
nErVe joined
22:42
nErVe left
22:43
cahek left
23:06
zaphar_p1 joined
23:16
zaphar_ps left
23:20
justatheory joined
23:22
payload joined
23:35
eternaleye_ left
|
|||
diakopter | should I de-[mangle.pl] the node names from STD (see mangle.pl in src/perl6) or mangle them from my JS source (anyone please feel free to comment) | 23:35 | |
23:35
eternaleye joined
|
|||
diakopter | e.g. infix:sym<-> comes across as infix__S_Minus | 23:37 | |
23:37
ihrd joined,
ihrd left
|
|||
diakopter | in other words, should the dispath of 'infix__S_Minus' appear internally as 'infix__S_Minus' or 'infix:sym<->' | 23:38 | |
dispatch | |||
I see pmurias' mildew-js uses the latter | |||
I suspect it should use the mangled edition. | 23:42 | ||
23:42
NorwayGeek joined
23:43
ayrnieu left
23:45
payload left
23:58
rhr joined
23:59
zostay left
|