»ö« | 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 1␤hi 2␤hi 3␤hi 4␤hi 5␤»
diakopter sprixel: my $x = 0; sub foo { say "hi " ~ ++$x }; while $x < 6 { foo }; 02:52
p6eval sprixel 28583: OUTPUT«hi 1␤hi 2␤hi 3␤hi 4␤hi 5␤hi 6␤»
diakopter sprixel: my $x = 0; sub foo { say "hi " ~ ++$x }; { foo } while $x < 6; 02:53
p6eval sprixel 28583: OUTPUT«hi 1␤hi 2␤hi 3␤hi 4␤hi 5␤hi 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 1␤hi 2␤hi 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: 1␤Came across: 2␤Came across: 3␤Forcing 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 5881␤Came 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_args␤T,T__noun__S_statement_prefix,_specific,SYM,statement_prefix,M,phase,invoker,context,eval_args at sprixel.pl line 89.␤»
..pugs: OUTPUT«Came across: 1␤Came across: 2␤Came 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: 1␤Came across: 2␤Came across: 3␤Feed operators are not yet implemented in Rakudo, sorry␤in sub infix:<== (src/gen_setting.pm:1977)␤called from Main (/tmp/VmEAJaBLoq:0)␤» 04:15
..pugs: OUTPUT«Came across: 1␤Came across: 2␤Came across: 3␤Forcing evaluation of the list.␤␤»
..elf 28584: OUTPUT«Parse error in: /tmp/lqnqQLAaya␤panic at line 1 column 6 (pos 6): Can't understand next input--giving up␤WHERE: my @a <== [1,2,3].map({ say "Came ac␤WHERE: /\<-- 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: 1␤Came across: 2␤Came across: 3␤Forcing 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: 1␤Came across: 2␤Came across: 3␤Forcing 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: 1␤Came across: 2␤Came across: 3␤Forcing 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␤ terminator␤FAILED
..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_quote␤T,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/kxo9SVez2q␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: if "abc" ~~ mi/B/ { say "Match␤WHERE:/\<-- 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_quote␤T,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_quote␤T,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_quote␤T,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«7␤13␤»
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«7␤13␤5␤5␤»
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«7␤13␤17␤21␤» 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«7␤13␤18␤23␤»
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«7␤13␤18␤23␤24␤»
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«7␤13␤132␤»
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«7␤13␤132␤»
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 mode␤in 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«1␤2␤3␤»
13:23 PacoLinux left
ihrd rakudo: for 1..3 { #`"comment" .say} 13:24
p6eval rakudo 809ca9: OUTPUT«1␤2␤3␤»
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«1␤2␤3␤»
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«a␤b␤»
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«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
colomon rakudo: for 1...10 { say $_; } 17:18
p6eval rakudo 809ca9: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
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«2␤2␤»
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«2␤1␤»
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 hierarchy␤in 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