»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | YAPC::NA talk submissions due end of Month. Have you submitted your talk?
Set by toddr_ on 18 March 2013.
00:00 cognominal left
diakopter r: say q:to('\'');␤'␤ 00:02
p6eval rakudo 897636: OUTPUT«␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀␤␀␀␀C␀␀␀o␀␀␀u␀␀␀l␀␀␀d␀␀␀n␀␀␀'␀␀␀t␀␀␀ ␀␀␀f􏿽xE2􏿽x90
00:03 cognominal joined
japhb_ .u ALIAS 00:03
yoleaux No characters found
japhb_ .u SAME
yoleaux U+05E1 HEBREW LETTER SAMEKH [Lo] (ס)
U+FB41 HEBREW LETTER SAMEKH WITH DAGESH [Lo] (􏿽xEF􏿽xAD􏿽x81)
U+1084E IMPERIAL ARAMAIC LETTER SAMEKH [Lo] (𐡎)
diakopter .u BIND
yoleaux U+0A01 GURMUKHI SIGN ADAK BINDI [Mn] (◌ਁ) 00:04
U+0A02 GURMUKHI SIGN BINDI [Mn] (◌ਂ)
U+1BFC BATAK SYMBOL BINDU NA METEK [Po] (᯼)
00:05 pecastro joined
FROGGS gnight all (will read backscroll) 00:06
00:08 cognominal left 00:10 BenGoldberg joined 00:15 cognominal joined
BenGoldberg pugs: say $?OS 00:17
p6eval pugs: OUTPUT«darwin␤»
BenGoldberg p6: say $?OS
p6eval niecza v24-35-g5c06e28: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤ at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] in <file…
..rakudo 897636: OUTPUT«===SORRY!===␤Variable '$?OS' is not declared␤at /tmp/ZZETwDElq3:1␤------> say $?OS⏏<EOL>␤ expecting any of:␤ postfix␤»
japhb_ p6: say $*OS 00:18
p6eval niecza v24-35-g5c06e28: OUTPUT«Unix␤»
..rakudo 897636: OUTPUT«linux␤»
japhb_ BenGoldberg, ^^ 00:19
BenGoldberg Ahh, I see :)
00:21 cognominal left
BenGoldberg Well, regardless, why does niecza throw a System.NullReferenceException, whereas rakudo complains about $?OS being undeclared? 00:21
Surely only of those one behaviors is correct, no? 00:22
adu_ ok so apparently <keyword:sym<break>> is equivalent to <keyword> which I don't like
diakopter BenGoldberg: it appears niecza is dieing during its parsing phase 00:23
(ungracefully)
colomon std: say $?OS
p6eval std 86b102f: OUTPUT«ok 00:00 42m␤»
BenGoldberg std: say $*OS 00:24
p6eval std 86b102f: OUTPUT«ok 00:00 42m␤»
japhb_ BenGoldberg, an NRE, like a Java NPE or Parrot NPMCA, is a bug anytime you see it. A low-level error like that should not be allowed to bubble up to the user.
(Well, not in raw form, at least.)
BenGoldberg So how do I report the bug? 00:27
diakopter niecza's not fixing bugs like that right now
00:28 cognominal joined
diakopter niecza's not being currently developed 00:28
00:29 ChanServ sets mode: +o diakopter, diakopter sets mode: -o diakopter
diakopter urp 00:29
00:30 benabik joined 00:32 fildon joined
japhb_ r: sub r1($s) { my %*C; %*C{$s} = %*C.elems + 1; r2($s); }; sub r2($s) { return r1($s) unless %*C; r1("c"), r1("d"); say %*C; }; r2("a"); r2("b"); 00:32
p6eval rakudo 897636: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 108115 (src/gen/CORE.setting.pir:48762) (src/gen/CORE.setting:9521)␤called from Sub 'defined' pc 157863 (src/gen/CORE.setting.pir:68905) (src/gen/CORE.setting:720)␤called from Sub '' pc 11528 (sr…
japhb_ r: sub r1($s) { my %*C; %*C{$s} = %*C.elems + 1; r2(); }; sub r2($s?) { return r1($s) unless %*C; unless $s { r1("c"); r1("d"); }; say %*C; }; r2("a"); r2("b"); 00:34
p6eval rakudo 897636: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 108115 (src/gen/CORE.setting.pir:48762) (src/gen/CORE.setting:9521)␤called from Sub 'at_key' pc 296880 (src/gen/CORE.setting.pir:130376) (src/gen/CORE.setting:6689)␤called from Sub 'at_key' pc 18…
00:34 cognominal left 00:35 cognominal__ joined
BenGoldberg r: srand( 10 ); say sort { rand }, 1..20 00:42
p6eval rakudo 897636: OUTPUT«17 14 5 3 11 4 16 12 8 19 9 7 20 13 2 1 6 10 15 18␤»
BenGoldberg std: srand( 10 ); say sort { rand }, 1..20
p6eval std 86b102f: OUTPUT«ok 00:00 44m␤»
00:42 cognominal__ left
BenGoldberg std: say 1 00:43
p6eval std 86b102f: OUTPUT«ok 00:00 41m␤»
japhb_ Gah. The 'my %*CACHE' thing doesn't work right for mutual recursion to more levels:
r: sub r1($i) { my %*C; %*C{$i} = %*C.elems + 1; r2($i - 1); }; sub r2($i?) { return r1($i) unless %*C; say %*C; r1($i - 1) if $i > 0 }; r2(4); r2(3);
p6eval rakudo 897636: OUTPUT«("4" => 1).hash␤("2" => 1).hash␤("0" => 1).hash␤("3" => 1).hash␤("1" => 1).hash␤»
japhb_ Changing to state doesn't help, of course:
r: sub r1($i) {state %*C; %*C{$i} = %*C.elems + 1; r2($i - 1); }; sub r2($i?) { return r1($i) unless %*C; say %*C; r1($i - 1) if $i > 0 }; r2(4); r2(3); 00:44
p6eval rakudo 897636: OUTPUT«("4" => 1).hash␤("4" => 1, "2" => 2).hash␤("4" => 1, "2" => 2, "0" => 3).hash␤("4" => 1, "2" => 2, "0" => 3, "3" => 4).hash␤("4" => 1, "2" => 2, "0" => 3, "3" => 4, "1" => 5).hash␤»
japhb_ temp gives a strange error:
r: sub r1($i) { temp %*C; %*C{$i} = %*C.elems + 1; r2($i - 1); }; sub r2($i?) { return r1($i) unless %*C; say %*C; r1($i - 1) if $i > 0 }; r2(4); r2(3);
p6eval rakudo 897636: OUTPUT«Can only use 'temp' on a container␤ in sub prefix:<temp> at src/gen/CORE.setting:12871␤ in sub r1 at /tmp/2OlMhchjQ1:1␤ in sub r2 at /tmp/2OlMhchjQ1:1␤ in block at /tmp/2OlMhchjQ1:1␤␤»
japhb_ I'm assuming it means a scalar container there. 00:45
Time to go ruminate on it over dinner, I think. 00:46
00:46 japhb_ left
BenGoldberg r: temp $*C = 1; say $*C 00:46
p6eval rakudo 897636: ( no output )
00:47 cognominal__ joined 00:48 adu_ left
raiph lue: thoughts on slang syntax (in response to gist.github.com/lue/5241230 ): 00:59
just 1 thought really. might it work well to view an action as a phaser? 01:01
01:04 adu_ joined
adu_ ok, so it thinks 'main' in 'int main();' is a typedef, and so it never backtracks, so the parse fails 01:04
diakopter rn: temp $_[0]; say "alive" # rakudo exits ungracefully
p6eval rakudo 897636: ( no output )
..niecza v24-35-g5c06e28: OUTPUT«alive␤»
diakopter rn: temp $_; say "alive" 01:05
p6eval rakudo 897636: ( no output )
..niecza v24-35-g5c06e28: OUTPUT«alive␤»
01:08 cognominal__ left
BenGoldberg p6: exit 0 01:08
p6eval rakudo 897636, niecza v24-35-g5c06e28: ( no output )
BenGoldberg p6: exit 1
p6eval rakudo 897636, niecza v24-35-g5c06e28: ( no output )
01:08 cognominal joined
adu_ so basically, I'm trying to match "aa" with /a+a/ 01:09
BenGoldberg p6: print 'aa' ~~ /a+a/
p6eval rakudo 897636: OUTPUT«aa»
..niecza v24-35-g5c06e28: ( no output )
BenGoldberg Twould be nice if p6eval outputed the exit code of whichever perl6 program it's using 01:12
adu_ BenGoldberg: how do you do that with complicated a's
BenGoldberg p6: print 'abcabd' ~~ /(ab.)\1/ 01:13
p6eval niecza v24-35-g5c06e28: OUTPUT«===SORRY!===␤␤Unsupported use of the 1-based special form '\1' as a backreference; in Perl 6 please use the 0-based variable '$0' instead at /tmp/qaN2BPoJYB line 1:␤------> print 'abcabd' ~~ /(ab.)\1⏏/␤␤Action method ba…
..rakudo 897636: OUTPUT«===SORRY!===␤Unrecognized backslash sequence: '\1'␤at /tmp/YoZdB0vQeV:1␤------> print 'abcabd' ~~ /(ab.)\⏏1/␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ prefix or term␤ …
BenGoldberg p6: print 'abcabd' ~~ /(ab.)$0/ 01:14
p6eval rakudo 897636, niecza v24-35-g5c06e28: ( no output )
BenGoldberg r: say rx/a+a/ 01:20
p6eval rakudo 897636: OUTPUT«␤»
BenGoldberg n: say rx/a+a/
p6eval niecza v24-35-g5c06e28: OUTPUT«regex ANON(Any \self) { ... }␤»
adu_ woot 01:26
gist.github.com/andydude/5274854
BenGoldberg r: print 'abcabd' ~~ m:p5/(ab.)\1/ 01:32
01:32 drbean left
p6eval rakudo 897636: OUTPUT«===SORRY!===␤Unrecognized backslash sequence: '\1'␤at /tmp/9vlxQHUtLQ:1␤------> print 'abcabd' ~~ m:p5/(ab.)\⏏1/␤ expecting any of:␤ colon pair (restricted)␤ infix stopper␤» 01:32
BenGoldberg Hmm... both rakudo and niecza die ungracefully when I use $0, and neither supports the :p5 modifier to ask for perl5 regexes. 01:34
01:34 drbean joined 01:35 cognominal left
adu_ hmm 01:36
geekosaur seems to work here in rakudo 01:37
BenGoldberg Which one? 01:38
p6: print 'abcabd' ~~ m:p5/(ab.)\1/
p6eval rakudo 897636: OUTPUT«===SORRY!===␤Unrecognized backslash sequence: '\1'␤at /tmp/DFB64HTUue:1␤------> print 'abcabd' ~~ m:p5/(ab.)\⏏1/␤ expecting any of:␤ colon pair (restricted)␤ infix stopper␤»
..niecza v24-35-g5c06e28: OUTPUT«===SORRY!===␤␤Unrecognized adverb :p5(1) at /tmp/yCMpej6mpm line 1:␤------> print 'abcabd' ~~ m⏏:p5/(ab.)\1/␤␤Unsupported use of the 1-based special form '\1' as a backreference; in Perl 6 please use the 0-based variabl…
geekosaur I didn't try the p5 one 01:39
BenGoldberg p: print 'abcabd' ~~ /(ab.)$0/
p6eval pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120717/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
BenGoldberg p6: print 'abcabd' ~~ /(ab.)$0/
p6eval rakudo 897636, niecza v24-35-g5c06e28: ( no output )
geekosaur the p6 one worked as it did here. (note that it does not repeat the regex, but the matched string)
p6: print 'abcabd' ~~ /(ab.)**2/
p6eval rakudo 897636: OUTPUT«abcabd»
..niecza v24-35-g5c06e28: OUTPUT«abc abd»
BenGoldberg Ahh 01:40
p: print 'abcabcabd' ~~ /(ab.)$0+/
p6eval pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120717/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
BenGoldberg p6: print 'abcabcabd' ~~ /(ab.)$0+/
p6eval niecza v24-35-g5c06e28: OUTPUT«abc»
..rakudo 897636: OUTPUT«abcabc»
geekosaur pugs doesn;t do any of this, it's ancient
BenGoldberg I just keep typing p instead of p6 by accident ;) 01:41
01:41 cognominal joined
geekosaur maybe someday I will have enough haskell chops to not get utterly lost in its source... 01:41
BenGoldberg p6: print 'abcabdabd' ~~ /(ab.)$0+/ 01:43
p6eval niecza v24-35-g5c06e28: OUTPUT«abd»
..rakudo 897636: OUTPUT«abdabd»
01:50 cognominal left 01:54 cognominal joined 02:01 cognominal left
lue raiph: action as phaser seems interesting, although it might be a stretch to call it a phaser at that point. (But something phaser-like is an interesting idea) 02:07
unless you meant "actions under one phaser" instead of "each action method its own phaser"
02:09 cognominal joined 02:14 BenGoldberg left
lue (then again, it seems actions are phaser-like by nature, but it might still help to think of actions as them) 02:21
02:29 tgt left 02:32 FROGGS_ joined 02:33 rindolf joined
adu_ how do I do [1:-1] 02:35
lue r: my @a = 1,2,3; say @a[0..*-1]; 02:36
p6eval rakudo 897636: OUTPUT«1 2 3␤»
02:36 FROGGS left
adu_ what's *-1 mean? 02:36
02:36 cognominal left
lue r: say *.WHAT; 02:36
p6eval rakudo 897636: OUTPUT«(Whatever)␤»
adu_ r: * 02:37
p6eval rakudo 897636: ( no output )
adu_ r: 3; *
p6eval rakudo 897636: OUTPUT«WARNINGS:␤Useless use of constant integer 3 in sink context (line 1)␤»
02:37 census left
lue it's a Whatever object; in this case, *-1 refers to the last element in the array 02:37
adu_ r: my $x = 3; say *
p6eval rakudo 897636: OUTPUT«*␤»
adu_ I don't get it
lue (*-2 second-to-last, etc.)
adu_ how is that different from [0..-1]
sorear adu_: * is a placeholder symbol of type Whatever 02:38
lue The array subscripts substitute the * for the size of the array
adu_ in this case it stands for the array?
ok
thanks
lue r: my @a = 1,2,3; say @a.elems; # the number from @a.elems is what gets put in place of * when you do @a[*-1]; 02:39
p6eval rakudo 897636: OUTPUT«3␤»
labster r: my $a = 'gfoo'; $a ~~ s@gf@f@; 02:40
p6eval rakudo 897636: OUTPUT«===SORRY!===␤Variable '@f' is not declared␤at /tmp/hTstr3dCxL:1␤------> my $a = 'gfoo'; $a ~~ s@gf@f⏏@;␤»
labster r: my $a = 'gfoo'; $a ~~ s@gf@ f@; 02:43
p6eval rakudo 897636: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name␤at /tmp/HoxY52AaTi:1␤------> my $a = 'gfoo'; $a ~~ s@gf@⏏ f@;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ prefix or term␤…
02:43 PacoAir left
labster does s/// require slashes now, or is that some sort of LTA error? 02:44
adu_ r: my %h = {a => 'b'}; say %h:exists{'a'}
p6eval rakudo 897636: OUTPUT«("a" => "b").hash␤»
adu_ r: my %h = {a => 'b'}; say %h:exists{'c'}
p6eval rakudo 897636: OUTPUT«("a" => "b").hash␤»
adu_ r: my %h = {a => 'b'}; say %h{'a'}:exists
p6eval rakudo 897636: OUTPUT«True␤»
adu_ r: my %h = {a => 'b'}; say %h{'c'}:exists 02:45
p6eval rakudo 897636: OUTPUT«False␤»
lue r: my $a = 'gfoo'; $a ~~ s¢gf¢f¢; say $a; 02:46
p6eval rakudo 897636: OUTPUT«foo␤»
02:46 shachaf_ joined, cognominal joined, shachaf_ left, shachaf_ joined
lue labster: No, but I wouldn't recommend any single characters that have special meaning in regexes :) 02:46
02:47 shachaf left, shachaf_ is now known as shachaf
labster r: my $a = 'gfoo'; $a ~~ s★gf★g★; 02:47
p6eval rakudo 897636: ( no output )
sorear n: s@gf@f@
p6eval niecza v24-35-g5c06e28: OUTPUT«Unhandled exception: Unable to resolve method subst in type Any␤ at /tmp/jhKfCZijEV line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4300 (module-CORE @ 583) ␤ at /home/…
labster well, that does work better, sure.
sorear n: ($_ = "helogf") ~~ s@gf@f@; say $_ 02:48
p6eval niecza v24-35-g5c06e28: OUTPUT«helof␤»
sorear rakudobug
labster niezca++
niecza++ (my spelling)--
lue A very quick glance shows it's not reported, so if no-one else is doing it, I'll submit it. 02:50
02:50 telex left 02:51 telex joined, cognominal left, xinming joined
adu_ uh oh 02:53
"Dynamic variable $*TYPEDEF_CONTEXT not found"
02:55 xinming_ left, huf left, apejens left, renormalist left 02:59 apejens joined 03:00 huf joined 03:01 orafu left 03:02 orafu joined 03:06 daudibaldr joined 03:13 preflex left 03:14 preflex_ joined, preflex_ is now known as preflex
labster thanks lue 03:19
lue you're welcome :)
labster rn: "foo" ~~ m#f#;
p6eval rakudo 897636: OUTPUT«===SORRY!===␤Null regex not allowed␤at /tmp/555Qc6LXz4:1␤------> "foo" ~~ m#f#;⏏<EOL>␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ prefix or term␤ prefix or meta-prefix␤»…
..niecza v24-35-g5c06e28: OUTPUT«===SORRY!===␤␤No delimiter found at /tmp/BcbpfRkv7o line 1 (EOF):␤------> "foo" ~~ m#f#;⏏<EOL>␤␤Parse failed␤␤»
lue # now always starts a comment, unless it's inside a string 03:20
labster that makes lots of sense, really. There's just a lot of old perl5 code which is... well, I don't envy FROGGS trying to figure out the regex situation for use v5;. 03:21
lue It makes the job on syntax highlighters easier too (and anything needing to parse Perl(6), really). 03:22
diakopter .u CLAPPING 03:26
yoleaux U+1F44F CLAPPING HANDS SIGN [So] (👏)
diakopter .u 270b 03:27
yoleaux U+270B RAISED HAND [So] (✋)
lue [otoh, it's an effective way to keep those awful Perl 6-ers from trying to run your beautiful Perl 5 code through their interpreters ]
03:29 rindolf left
labster yes. that exactly. 03:29
03:36 armitage81 joined 03:44 dmol joined 03:47 fildon left 03:49 adu_ left
labster r: sub foo ($bar :D) { 1; } 03:51
p6eval rakudo 897636: OUTPUT«===SORRY!===␤invoke() not implemented in class 'QAST::Op'␤»
labster I guess I want Mu:D there. But definitely LTA error message. 03:54
sorear rakudobug. internal error. 03:55
labster r: sub x ($y :qwerty) { 3; } 03:57
p6eval rakudo 897636: OUTPUT«===SORRY!===␤invoke() not implemented in class 'QAST::Op'␤»
labster r: sub x ($y qwerty) { 3; } 03:58
p6eval rakudo 897636: OUTPUT«===SORRY!===␤Missing block␤at /tmp/gHtxH4GsMT:1␤------> sub x ($y ⏏qwerty) { 3; }␤ expecting any of:␤ statement list␤ prefix or term␤ prefix or meta-prefix␤ new name to be defined␤ formal pa…
labster looks like the colon triggers it.
labster submits rakudobug 04:00
04:01 daudibaldr left
diakopter r: sub foo ($bar:) { }; foo(3) 04:02
p6eval rakudo 897636: OUTPUT«Lexical 'self' not found␤ in sub foo at /tmp/F7HfOSNhH2:1␤ in block at /tmp/F7HfOSNhH2:1␤␤»
diakopter probably already submitted... 04:03
labster Didn't see anything. That error message at least tells you what not to do. 04:04
diakopter r: sub foo ($bar:D{ eat a trout }) { }; foo(3) 04:05
p6eval rakudo 897636: OUTPUT«===SORRY!===␤invoke() not implemented in class 'QAST::Op'␤»
diakopter WAT. 04:10
r: sub foo (\self:){ say $_ }; foo(55)
p6eval rakudo 897636: OUTPUT«(Any)␤»
diakopter r: sub foo ($_:){ say $_ }; foo(55)
p6eval rakudo 897636: OUTPUT«Lexical 'self' not found␤ in sub foo at /tmp/Ci48x8gUyb:1␤ in block at /tmp/Ci48x8gUyb:1␤␤»
diakopter r: sub foo (\self:){ say self }; foo(55)
p6eval rakudo 897636: OUTPUT«===SORRY!===␤'self' used where no object is available␤at /tmp/pYzAechRtH:1␤------> sub foo (\self:){ say ⏏self }; foo(55)␤ expecting any of:␤ argument list␤ prefix or term␤ prefix or meta-prefix␤»…
diakopter r: sub foo (\self:){ say eval('self') }; foo(55)
p6eval rakudo 897636: OUTPUT«55␤»
diakopter O_O_O
04:11 arlinius left
labster What just happened there!? 04:14
diakopter I grew a third eye, and it opened wide
04:15 armitage81 left
lue r: sub foo(\bar:) { say eval('bar') }; foo(42); 04:15
p6eval rakudo 897636: OUTPUT«Lexical 'self' not found␤ in sub foo at /tmp/YPYvtEk7WO:1␤ in block at /tmp/YPYvtEk7WO:1␤␤»
lue r: sub foo(\bar:) { say eval('self') }; foo(42); 04:16
diakopter see? :)
p6eval rakudo 897636: OUTPUT«Lexical 'self' not found␤ in sub foo at /tmp/nO55rgen2v:1␤ in block at /tmp/nO55rgen2v:1␤␤»
lue std: sub foo ($bar:) { }; foo(3)
p6eval std 86b102f: OUTPUT«Potential difficulties:␤ $bar is declared but not used at /tmp/UcJok_jRiU line 1:␤------> sub foo (⏏$bar:) { }; foo(3)␤ok 00:00 44m␤»
labster Oh, once I open my third eye it's completely obvious.
std: sub foo ($bar:) { $bar }; foo(3) 04:17
p6eval std 86b102f: OUTPUT«ok 00:00 45m␤»
lue n: sub foo ($bar:) { $bar }; say foo(3) 04:18
p6eval niecza v24-35-g5c06e28: OUTPUT«3␤»
04:27 thou joined 04:37 araujo left 04:45 am0c joined
dalek rl6-roast-data: cc74847 | coke++ | / (4 files):
today (automated commit)
04:50
04:54 Chillance left 04:55 bluescreen10 left
dalek gs.hs: 522c5c8 | coke++ | t/spectest.data:
run passing testfile
05:08
kudo/nom: ba5e04f | coke++ | t/spectest.data:
run test we already pass
05:12
05:22 ikrs joined 05:54 crab2313 joined 06:03 dmol left 06:04 dmol joined 06:05 xinming left 06:07 xinming joined 06:22 thou_ joined, thou left 06:24 crab2313 left 06:29 thou_ left, thou joined 06:30 Targen left 06:43 thou left, thou_ joined 06:45 thou joined, thou_ left 07:05 thou_ joined, thou left 07:15 thou joined, thou_ left 07:18 thou_ joined, thou left 07:22 thou joined, thou_ left 07:29 thou left, thou joined
ikrs does perl6 have a while loop or do you have to use a loop with a last statement? 07:30
07:32 ikrs left, ikrs joined 07:33 thou_ joined, thou left
sorear ikrs: perl 6 has a lot of while loops 07:35
ikrs: i get the impression you may have tried it and run into a problem? 07:36
r: my $i = 10; while $i { say $i-- }
p6eval rakudo ba5e04: OUTPUT«10␤9␤8␤7␤6␤5␤4␤3␤2␤1␤»
sorear ^ correct syntax
r: my $i = 10; while ($i) { say $i-- } # also correct 07:37
p6eval rakudo ba5e04: OUTPUT«10␤9␤8␤7␤6␤5␤4␤3␤2␤1␤»
sorear r: my $i = 10; while($i) { say $i-- } # this is wrong
p6eval rakudo ba5e04: OUTPUT«===SORRY!===␤Word 'while' interpreted as 'while()' function call; please use whitespace instead of parens␤at /tmp/c3T2CNvVYz:1␤------> my $i = 10; while⏏($i) { say $i-- } # this is wrong␤Unexpected block in infix position (two t…
sorear r: my $i = 10; while ($i){ say $i-- } # so is this
p6eval rakudo ba5e04: OUTPUT«===SORRY!===␤Missing block␤at /tmp/I6iR0QiI3Q:1␤------> 10; while ($i){ say $i-- } # so is this⏏<EOL>␤ expecting any of:␤ postfix␤ statement end␤ statement modifier␤ statement modifier loop␤ …
sorear r: my $i = 10; while ($i) say $i--; # so is this
p6eval rakudo ba5e04: OUTPUT«===SORRY!===␤Missing block␤at /tmp/5PLEyCl5Xk:1␤------> my $i = 10; while ($i) ⏏say $i--; # so is this␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ parameterized block␤»…
ikrs sorear: thanks, don't know what i was doing wrong but that helped 07:38
07:38 thou_ left 07:39 thou joined
sorear this is one of the places where perl 6 relies on whitespace, new people often trip over it 07:39
while( # when you glue the ( to a word, it forces the word to be taken as a function, not a keyword 07:40
while $i{ # when you glue the { to the variable, it forces interpretation as a postfix operator. perl is now trying to parse a hash index!
07:41 thou_ joined, thou left
ikrs ah, that makes sense now. i had a similar issue with if statements 07:42
sorear welcome to #perl6, if appropriate 07:44
07:47 anant_ joined, thou_ left 07:49 thou joined 07:55 thou left, thou joined 08:08 xinming left 08:10 xinming joined 08:11 thou left 08:13 thou joined 08:15 thou_ joined, thou left 08:20 SamuraiJack joined, thou_ left, thou joined 08:21 ikrs left
labster yes, we have a while loop 08:22
erm... I was a page up, nvm 08:23
08:23 thou_ joined, thou left 08:24 thou joined, thou_ left
labster aw lame, 'is cached' doesn't work on methods. Oh well, a state variable will do the trick. TIMTOWTDI. 08:36
dalek : fbfa1ac | (Tobias Leich)++ | lib/Perl6/P5 (2 files):
prepare to handle __DATA__ and __END__ blocks

Currently we only capture the content, but this way scripts having this term are parseable.
09:11
09:13 sftp left, sftp joined
anant_ I was reading S02, and under "Type Objects", found this statement "Any type name used as a value is an undefined instance of that type's prototype object". Should it not have been written "Any type name used as a value *refers to the singular instance* of that type's prototype object"? 09:16
FROGGS_ r: say Int.defined 09:18
p6eval rakudo ba5e04: OUTPUT«False␤»
moritz yes, that would be better
anant_: if you want to fix it, tell me your github ID, and I can give you commit access
anant_ anant-sogani 09:20
moritz anant_: welcome to the club. Have the appropriate amount of fun! 09:22
anant_ moritz: Thanks! I'm still confused about the type object though. Why does type object.defined return a FALSE? 09:29
moritz anant_: definedness is just the property that distinguishes types from instances 09:30
named like that for historical reasons, basically 09:31
think of .defined as .is-instance instead, and the confusion goes away (I hope)
anant_ moritz: oh ok. So, my re-write "... refers to the singular instance of that type's prototype object" is then incorrect 09:33
moritz uhm, why? 09:34
it removes the "undefined", which wasn't wrong 09:35
but IMHO it still makes it clearer that the type object is a singleton
anant_ moritz: I think removing the "instance" word makes it clearer. Something like "... refers to the type's prototype object" .. which I hope conveys the singleton idea as well 09:38
sorear either way it's wrong because it implies that the thing returned is something other than the prototype
modern p6think is that the type *is* the prototype object
Int used as a term returns the undefined prototype object named "Int" 09:39
09:42 woolfy left 09:45 rindolf joined, woolfy joined 09:59 _nyuszika7h_ joined 10:01 _nyuszika7h_ left
dalek : 197949f | (Tobias Leich)++ | lib/Perl6/P5 (2 files):
added __LINE__ and __FILE__
10:01
sorear sleep& 10:02
FROGGS_ gnight sorear
say $?PACKAGE 10:04
r: say $?PACKAGE
p6eval rakudo ba5e04: OUTPUT«(GLOBAL)␤»
FROGGS_ $ perl6 -e 'print $?PACKAGE' 10:05
use of uninitialized variable $v of type GLOBAL in string context in block at -e:1
dalek ecs: ea0af47 | moritz++ | S02-bits.pod:
[S02] unconfuse wording about type objects

since a type object is the opposite of an instance, it is confusing to call it an instance of soemthing. anant++, sorear++
10:06
moritz anant_: I hope this commit makes it less confusing 10:07
10:07 renormalist joined
anant_ moritz: yes! 10:10
moritz: thanks for doing the correction so fast! 10:11
masak good forenoon, #perl6
FROGGS_ hi masak 10:14
10:28 araujo joined
dalek : 206cb36 | (Tobias Leich)++ | lib/Perl6/P5 (2 files):
add __PACKAGE__, not perfect yet though
10:28
moritz \o masak, FROGGS_ 10:35
masak: how's the t2 review coming along? 10:36
dalek : 082a2a3 | (Tobias Leich)++ | lib/Perl6/P5 (2 files):
implement length()
10:46
10:51 kaare__ joined 10:58 spider-mario joined
masak moritz: I'm reviewing now. 10:58
11:22 PacoAir joined 11:28 SamuraiJack_ joined 11:30 SamuraiJack left 11:31 tgt joined, census joined 11:33 pmurias joined
pmurias FROGGS_: hi 11:33
FROGGS_ hi pmurias 11:34
pmurias FROGGS_: what should I type in v5 to run the tests? 11:40
make spectest?
FROGGS_ right 11:41
this should always pass
pmurias: it passes 6 test files so far 11:44
dalek : 8e169cc | (Pawel Murias)++ | README.md:
Update README.md
pmurias FROGGS_: we don't run perlito tests? 11:46
FROGGS_ not by default, no 11:48
but we could add them to spectest.data as well 11:49
11:52 PacoAir left 11:54 PacoAir joined 11:58 PacoAir left, PacoAir joined 12:15 gfldex joined, felher joined
lizmat FROGGS: with regards to 082a2a3433, I'm not sure we can get away with not implementing "use bytes" 12:16
within a scope where use bytes is active, "length" is actually number of bytes 12:17
not number of chars
so maybe add a #TODO there ? 12:18
(even though I know "use bytes" is going to be deprecated / removed in Perl 5.18+, we would still need to support it from older versions) 12:19
anant_ moritz: I rewrote the contents of the 'Type Objects' section to look like this: gist.github.com/anant-sogani/5276483 12:20
masak tadzik: I submitted two talks to plpw. 12:21
pmurias FROGGS_: spectests pass here 12:23
12:27 colomon left, SamuraiJack_ left
lizmat masak: giving any talks at YAPC::NA ? 12:29
tadzik masak: awesome :) 12:32
lizmat tadzik: I have one lightning talk for PLPW, do I need to submit that now already ? 12:33
(already given at GPW and SPW by the way) 12:34
tadzik lizmat: not neceserilly, but would be great :)
also, registering would be great as well :)
12:35 SamuraiJack joined
pmurias FROGGS_: should I add perlito tests to roast5? 12:36
lizmat tadzik: done both 12:38
tadzik \o/ lizmat++ 12:39
12:39 SamuraiJack left
lizmat Ah, I see masak and jnthn are also coming, cool! 12:40
tadzik yep :)
pmurias tadzik: what's the deadline for submitting talks to PLPW? 12:41
12:41 SamuraiJack joined
tadzik pmurias: 14th of april 12:42
as noted in act.yapc.eu/plpw2013/news/1006 12:43
lizmat afk& 12:51
FROGGS: have you seen the ""Perl 5 specification" test suite" target for the QA Hackathon? (2013.qa-hackathon.org/qa2013/wiki?n...on-Targets ) 12:56
13:08 thou left 13:13 kivutar joined, leprevost joined
pmurias FROGGS_: why do we use a Perl6::P5World naming convention instead of Perl5::World? 13:22
lizmat perhaps because it's inheriting from Perl6::World ? 13:27
which would make the naming more logical ?
FROGGS_ pmurias: what lizmat said, there id one method we are overriding... and I guess there will be more in future 13:38
lizmat: about 'use bytes': good point, I can add the feature right away...
lizmat can you? 13:39
FROGGS_ lizmat: I think so, yes
lizmat wouldn't that require implementing the hints hash %^H ?
and something akin to local() ? 13:40
FROGGS_ I've seen right now that .chars is wrong when we have umlauts in the code and ' use utf8' is missing...
so, we need good tests for that
lizmat so you mean perl 6's .chars is wrong ?
FROGGS_ lets say it doesn't do the same like perl 5 does 13:41
perl -e 'print length "äbc"'
4
13:41 crab2313 joined
FROGGS_ perl -e 'use utf8; print length "äbc"' 13:41
3
in perl6 we have utf8 by default
but what I wanted to do right now is to call .bytes instead of .chars if 'use bytes' is in use 13:42
but we have to make a Buf first to do that
lizmat and how would you know that "use bytes" is in use? 13:43
13:43 dwoldrich joined
lizmat (as that is lexical) 13:43
moritz same as any other lexical information, really
lizmat fwiw, I can live with using .chars and a #TODO 13:44
FROGGS_ set a dynamic variable?
$*USE_BYTES
moritz for example
lizmat and parsing "use bytes" or "no bytes" would set /unset that var at compile time ?
that would work in the short term 13:45
moritz why only in the short term?
it's how we do most lexically changed behavior
FROGGS_ lizmat: it is the same for Use/no strict
moritz a dynamic variable in the compiler has the same scope a lexical pragma in the code
FROGGS_ so you can proper build the ast 13:46
lizmat wonders whether implementing the hints hash wouldn't be more flexible then
as otherwise making caller() work will become very difficult indeed with regards to (caller(N))[10] 13:47
(aka the hints hash from somewhere down the stack) 13:48
FROGGS_ pmurias: if you put them in a subdir, yes
13:53 fhelmberger joined
lizmat FROGGS: but please, please don't let me interrupt the flow of your work… a #TODO is al I really wanted :-) 13:53
FROGGS_ lizmat: that's what I did so far 13:54
the rest is a bit too complicated atm to do that properly for me
pmurias FROGGS_, lizmat: if a ruby compiler was inheriting from Perl6::World would Perl6::RubyWorld be a good name ? ;) 14:01
FROGGS_ pmurias: yesh! 14:02
lizmat FROGGS: maybe setting up the %^H hash would be a nice project to sink my teeth into 14:03
FROGGS_ lizmat: go ahead :)
moritz the hints hash has the advantage of being accessible at run time
lizmat indeed, and I know that some of TheDamian's modules use that 14:04
(as shown recently at the SPW)
tricky bit with $^H is that each call level has its own version 14:05
s/call level/subroutine/
FROGGS_ lizmat: btw, you fiddle something in the grammar, please rerun 'make spectest' before committing 14:06
lizmat ack
I wouldn't want to mess up things for other people :-)
moritz lizmat: though you know atatically at which point it's used, so you can generated it on demand 14:07
*actually
erm
*statically
is what I wanted to wrote ;-)
*write
moritz should just give up typing
FROGGS_ it is just that little changes to the grammar can make a single test work, but break everything else (precedence of the tokens and such)
pmurias lizmat: wouldn't treating %^H as compile time contextual an setting it every time we start a new scope give as Perl5 semantics? like %*LANG? 14:09
lizmat I guess the current sub has an ID that I could use as a key in a hash
14:09 colomon joined
lizmat pmurias: I would want to prevent setting it at every new scope 14:10
but I guess I should say: current scope, rather than current sub
so does the current scope have an ID?
14:12 grondilu joined
dalek : 3a7bddc | (Tobias Leich)++ | lib/ (3 files):
make simple (really simple) match work
14:12
: b9439f2 | (Tobias Leich)++ | lib/Perl6/P5Actions.pm:
add TODO about "use bytes" for length()
pmurias lizmat: look how %*LANG is implemented
lizmat ack, I will 14:13
grondilu yet an other Rosalind problem where Perl6 is too slow: gist.github.com/anonymous/5276828 I suspect 'X-' is to blame.
it's too bad because it is a nice use-case for perl6: lots of P6 idioms 14:14
moritz also gather/take tends to be slowish 14:16
14:17 lichtkind joined
grondilu I'm pretty sure the main issue is X-, though. I tried with only one protein and it took ages. 14:17
for those who don't know, the rosalind problem is: rosalind.info/problems/prsm/ 14:18
pmurias lizmat: also %^H seems to be a BEGIN time thing: pastie.org/7178779 14:23
14:23 Psyche^ joined 14:24 pjcj left, pjcj joined
lizmat pmurias: yes, but also a runtime thing through (caller(N))[10 14:25
]
14:26 pjcj left, pjcj joined, Patterner left, Psyche^ is now known as Patterner
lizmat errands& 14:35
14:36 colomon left 14:53 grondilu_ joined 14:54 grondilu_ left 14:56 grondilu left
arnsholt Whoa, Rakudo parsed itself \o/ 15:00
tadzik woot 15:01
arnsholt Now I get to dig around in the optimizer =D 15:02
15:08 am0c left
arnsholt Oooh, all the way to codegen now =D 15:12
moritz
.oO( all the way to reno )
15:14
arnsholt ^_^
15:21 pmurias left
moritz arnsholt: I want to see commits :-) 15:21
dalek p/vmarray-list: 17e5ba6 | (Arne Skjærholt)++ | src/ (3 files):
Add splice to REPROps_Positional and add VTABLE for it to sixmodelobject.pmc.

Also implements splice in VMArray.c.
15:24
kudo/vmarray-list: 38178b5 | (Arne Skjærholt)++ | src/Perl6/Optimizer.pm:
A few tweaks to the optimizer to make it work with the changed NQP.
arnsholt Happy now? =p 15:25
15:26 toddr__ joined
moritz yes. 15:27
arnsholt MAnaged to avoid killing dalek this time, as well ^_^
moritz push early! Mind the dalek! 15:30
15:38 leprevost left, mtk left
dalek p/vmarray-list: fbe94c9 | (Arne Skjærholt)++ | src/QAST/Operations.nqp:
Make a list into list_s in QAST/Compiler.nqp.
15:41
toddr__ So I'm curious. Is there a Perl6 bot yet? Is that what dalek is?
arnsholt moritz++ is working on a logging bot in Perl 6 (ilbot6) 15:42
moritz speaking of which, where has it gone? 15:45
arnsholt You tell us =)
moritz Malformed UTF-8 string
in method get at src/gen/CORE.setting:8365
15:45 mtk joined
moritz died tonight at 00:51H CET 15:46
15:46 ilbot6 joined
arnsholt Sounds unfun 15:50
15:52 leprevost joined 16:02 thou joined
dalek : 4041e53 | (Tobias Leich)++ | t/spectest.data:
add moore passing tests
16:02
16:03 thou_ joined, thou left 16:06 thou_ left 16:07 thou joined 16:11 thou_ joined, thou left 16:12 kivutar left 16:14 crab2313 left 16:17 thou joined, thou_ left 16:20 dmol left 16:29 dmol joined 16:31 thou left 16:32 thou joined, kivutar joined
[Coke] yawns and drinks some uninspiring coffee. 16:36
16:36 thou left, thou joined
moritz trolls perlmonks with a Perl 6 answer: www.perlmonks.org/?node_id=1026278 16:37
[Coke] r: say eval("0", :lang<perl5>) 16:38
p6eval rakudo ba5e04: OUTPUT«No compiler available for language 'perl5'␤ in sub eval at src/gen/CORE.setting:598␤ in sub eval at src/gen/CORE.setting:593␤ in block at /tmp/zGyjPv7O66:1␤␤»
16:39 dmol left, n0den1te joined, dmol joined 16:40 thou left 16:41 thou joined 16:43 dmol left
[Coke] ponders a new class of todo/skip tests that count as skips when any in a block fail, but count as passing todo if they all pass. 16:49
16:52 dmol joined 16:57 dmol left 17:01 thou_ joined, thou left 17:06 aindilis joined, dmol joined 17:12 dmol left, leprevost left
moritz "todip" or "skido" 17:13
17:15 thou_ left 17:16 dmol joined 17:20 thou joined 17:21 thou_ joined, thou left, pib1990 left, n0den1te left, n0den1te joined
raiph re anant's "real objects" suggestion ( gist.github.com/anant-sogani/5276483 ): 17:22
I don't like "real objects"
I'm guessing s/he considered "instances" but felt an undefined prototype object was an instance. I'd be sorely tempted to go with "instance" regardless.
Fwiw I think both the following are LTA (less than awesome): 17:23
o "defined" vs "DEFINITE"
o "prototype" vs "proto" (vs p5 "prototype")
what about abstract/concrete?
"Every type has an abstract object associated with it. It is responsible for creating concrete objects of that type, among other things"
diakopter nqp-jvm: say(nqp::isconcrete(raiph)) 17:24
p6eval nqp-jvm: OUTPUT«0␤»
raiph heh. i'm curious what isconcrete tests 17:25
diakopter jnthn's preferred term is concrete
for "instances"
"type object" for non-concrete 17:26
17:26 adu_ joined
adu_ .u 1F4A9 17:26
yoleaux U+1F4A9 PILE OF POO [So] (💩)
moritz is yoleaux the new phenny? 17:27
adu_ who is phenny?
diakopter yoleaux: tell diakopter do it 17:28
n0den1te official secretary
moritz our previous bot who delivered messages and listed Unicode characters
diakopter you only live eaux
n0den1te err, adu_: ^^ 17:29
adu_ that's not how you spell once
diakopter but it's an acronum 17:31
acronym
adu_ oh I get it eaux is pronounced o
diakopter wonders who named it
adu_ where is it running? 17:32
n0den1te o.O( you only live "unix" ? )
diakopter heh, see its whois
dalek osystem: 3fbb334 | mrhdias++ | META.list:
Was added the perl6-IUP module.
osystem: a992925 | (Henrique Dias)++ | META.list:
Merge pull request #24 from mrhdias/master

Add the perl6-IUP module.
adu_ Real Name: "Yoleaux L. Only-Once"
n0den1te YOLO?
moritz yolo ono 17:33
diakopter dpk: ?
adu_ hmm, it's a UK address
diakopter seems dpk 17:34
adu_ who is dpk?
diakopter /whois dpk
dpk ohai
adu_ David Kendal?
dpk sbp is not running phenny any more
that is me
moritz dpk: thanks for sending in a replacement 17:35
dpk yoleaux is the pseudo-official successor
adu_ dpk: did you name yoleaux?
diakopter 'tis a cute name
moritz yoleaux: tell diakopter foo
17:35 adu_ is now known as adu
dpk I may have had some hand in its naming 17:35
moritz dpk: is there a chance to get messenging feature back?
dpk .tell diakopter foo
yoleaux dpk: I'll pass your message to diakopter.
dpk reforms
moritz ok, thanks
diakopter cool
yoleaux 17:35Z <dpk> diakopter: foo
moritz .help 17:36
yoleaux moritz: I'm yoleaux. Type .commands to see what I can do, or see dpk.io/yoleaux for a quick guide.
adu .tell dpk nice name
yoleaux adu: I'll pass your message to dpk.
dpk thx
yoleaux 17:36Z <adu> dpk: nice name
moritz dpk++
17:36 fhelmberger left
n0den1te .mangle You only live once 17:37
yoleaux You only live once
n0den1te .mangle yolo
yoleaux Iolo
dpk hehe
n0den1te dpk: nice work. :)
.mangle perl
yoleaux pèrl
dpk thanks
diakopter dpk: what language(s)/environment is yoleaux 17:38
moritz .tr :de :sv Zimtschnecke
diakopter oh nm
yoleaux Zimtschnecke (de → sv)
diakopter sees on github
moritz .rfc 1918
dpk rubby
yoleaux RFC 1918 - Address Allocation for Private Internets: tools.ietf.org/html/rfc1918
dpk though I kind of wish I'd used Pythong now 17:39
n0den1te dpk: you too? I spell python as pythong way too many times to count (muscle memory stuck)
geekosaur seems to prefer "pythin" for some reason
dpk Rubby and Pythong
n0den1te .tr en de "beer" 17:40
yoleaux and the " bear " (nl → en)
n0den1te heh
.tr :en :de "beer"
yoleaux "Bier" (en → de)
moritz .ping
yoleaux There is no ping command; nor can this be construed as a response.
moritz :-)
n0den1te yoleaux!
yoleaux n0den1te!
n0den1te that's ping enough for me. :) 17:41
diakopter .command-help . .
yoleaux diakopter: Sorry, that command doesn't seem to exist!
diakopter .command-help ' .
yoleaux diakopter: Sorry, that command doesn't seem to exist!
adu .tr :ja :en 頑張る
yoleaux Go (ja → en) 17:42
17:42 thou_ left
n0den1te .wa sine curve 17:42
17:42 dmol left, thou joined
yoleaux sine curve (English phrase): Definition: noun: the curve of y=sin x; Synonym: sinusoid; Broader terms: undulation: wave 17:42
n0den1te .botsnack
yoleaux :D
n0den1te you should not rest now. right...
.botsnack 17:43
yoleaux :D
adu yoleaux!
yoleaux adu!
adu :D
17:43 dmol joined
n0den1te .decode <a href="perl6.org">perl6</a> 17:44
yoleaux <a href="perl6.org">perl6</a>
n0den1te .ety mango
yoleaux "1580s, from Portuguese manga, from Malay mangga, from Tamil mankay, from man "mango tree" + kay "fruit." Mango trees were brought from Timor to British gardens in Jamaica and St. Vincent 1793 by Capt. Bligh on his second voyage." — etymonline.com/index.php?search=mango
n0den1te .pick 1, 25, 42 17:45
yoleaux 25
n0den1te .pick 1, 42, 25 17:46
yoleaux 25
moritz ♪ underneath the mango tree me honey and me ♫
diakopter .head perl6.com 17:47
yoleaux diakopter: Sorry, that command (.head) crashed.
diakopter o_O
dpk aww man
n0den1te .head perl6.org
yoleaux 200, text/html; charset=UTF-8, 4507 bytes
diakopter so the hdd is ruined cuz the head crashed? 17:48
n0den1te moritz: yep, that's part of how I remembered it. but kay isn't fruit. it's "raw" fruit or a vegetable. :)
"raw" as in unripe. 17:49
adu yoleaux should also accept .. for character ranges
www.unicode.org/faq/blocks_ranges.html
diakopter .head i.i
yoleaux diakopter: Sorry, that command (.head) crashed.
dpk hmm. yeah, .head needs better error handling 17:50
adu .chars 2200-2210
yoleaux ∀ ∁ ∂ ∃ ∄ ∅ ∆ ∇ ∈ ∉ ∊ ∋ ∌ ∍ ∎ ∏ ∐
diakopter .head github.com/dpkendal/yoleaux
yoleaux 200, text/html; charset=utf-8, 41673 bytes
adu .chars 2200..2210
yoleaux . 0 1 2
dpk hehe
yeah, wil add that
*will 17:51
diakopter .u CLAPPING
yoleaux U+1F44F CLAPPING HANDS SIGN [So] (👏)
adu .u POO
yoleaux U+1434 CANADIAN SYLLABICS POO [Lo] (ᐴ)
U+1435 CANADIAN SYLLABICS Y-CREE POO [Lo] (ᐵ)
U+A576 VAI SYLLABLE POO [Lo] (ꕶ)
diakopter .u ASPLODE 17:52
yoleaux No characters found
adu .u PILE
diakopter .u No characters found
yoleaux No characters found
adu .u PILE 17:53
n0den1te .u goo
yoleaux U+1F4A9 PILE OF POO [So] (💩)
U+A591 VAI SYLLABLE GOO [Lo] (ꖑ)
U+1F645 FACE WITH NO GOOD GESTURE [So] (🙅)
dpk haha, nice character name
diakopter .u olo 17:54
yoleaux No characters found
adu .u st 17:55
yoleaux U+FB06 LATIN SMALL LIGATURE ST [Ll] (st)
FROGGS_ .u POO 17:56
yoleaux U+1434 CANADIAN SYLLABICS POO [Lo] (ᐴ)
U+1435 CANADIAN SYLLABICS Y-CREE POO [Lo] (ᐵ)
U+A576 VAI SYLLABLE POO [Lo] (ꕶ)
n0den1te .mangle poo 17:57
yoleaux bloom
n0den1te :D
[Coke] .tw cokefloats 17:59
yoleaux I'm going to #replacereader with #Feedly www.replacereader.com/ been using it since the announcement, love it. (@cokefloats)
[Coke] .tw chromatic-x
yoleaux [Coke]: Sorry, that command (.tw) crashed.
diakopter ha
.tw quietfanatic 18:00
yoleaux @anocelot Can it do translation too? (@quietfanatic)
diakopter .tw dpkendal
yoleaux @splorp Happy birthday, Mr. Hutchinson! Enjoy thy celebrations! (@dpkendal)
diakopter it doesn't get retweets 18:01
dpk should it?
diakopter .tw bobobobobobobobo 18:02
yoleaux diakopter: Sorry, that command (.tw) crashed.
18:02 thou left
diakopter .tw .tw 18:02
yoleaux diakopter: Sorry, that command (.tw) crashed.
18:02 thou_ joined
dpk i thought if you wanted a retweet you should use the id of the tweet, or the name of the account of the person who tweetefd 18:02
18:02 pib1979 joined
diakopter sgtm 18:02
_sri wonders if perl6 has any features that make it a better language for templates than perl5
dpk the .tw command is going to break soon anyway. it still uses Twitter API 1.0 18:03
_sri Template::Mojo seems to still be missing all the interesting features
dpk it should have broken when they said they'd turn it off, earlier this month. but obviously they haven't actually done that yet
diakopter is yoleaux live-patchable?
does it remember messages across restarts?
dpk .reload will pick up the latest changes to the command sources 18:04
yoleaux dpk: Reload done (took 1.989s).
moritz _sri: perl 5 propagates context inwards, which means you have to decide whether to put stuff in scalar or list context.
dpk yes, it does
moritz that's not the case with perl 6.
flussence _sri: as someone heavily OCD about neat-looking output, heredocs and .indent are probably killer features for me
diakopter dpk: cool :)
_sri masak: true, that will be really nice
umm, moritz
moritz despite popular confusion, masak and me still aren't quite the same person :-) 18:05
_sri i was thinking more about blocks, <% do_stuff begin %>lalala<% end %>
18:05 cooper_ joined
_sri in the perl5 version that gets compiled to "do_stuff sub { 'lalala' };" 18:06
18:06 cooper_ left
_sri a bit magical, ruby and lua are a lot better at it than perl atm 18:07
timotimo r: sub flub(*&a) { a(1) }; flub { say $^a }; 18:10
18:10 toddr__ left
p6eval rakudo ba5e04: OUTPUT«1␤» 18:10
[Coke] r: say StrPos.WHAT
p6eval rakudo ba5e04: OUTPUT«===SORRY!===␤Undeclared name:␤ StrPos used at line 1␤␤»
18:10 n0den1te left
_sri guess in the end all languages with curlies are not very good for templates ;p 18:11
timotimo that's what slangs are for~ 18:12
18:12 cooper_ joined 18:14 cooper_ left 18:16 kivutar left
_sri google doesn't have much information on slangs 18:17
arnsholt Well, it's a very fuzzy part of the spec
18:17 thou_ left 18:18 thou joined
arnsholt Mostly hypothetical I think 18:18
_sri could it be used to have a version of perl6 with do/end blocks instead of curlies?
arnsholt Possibly. I think so
_sri wow, that could be amazing for templates indeed 18:19
arnsholt Why do you need to change the curlies to begin/end for templates though?
_sri <% do_stuff sub { %>lalala<% } %>
not cool 18:20
while in ruby you have <% do_stuff do %>lalala<% end %>
arnsholt In the simple case there, it'd be pretty simple to do the munging in the templating engine, so I assume you can have arbitrarily complex stuff inside the <%%>? 18:21
_sri yes, Mojo::Template in perl5 does it that way
moritz well, in Perl 6 you could write <% do-stuff { %> lalala <% } %> # without the 'sub'
_sri to my knowledge there has been only one successful template engine using curlies, and that is pretty much impossible to highlight outside of visual studio 18:23
(it's Razor btw.)
arnsholt I can't help but feel that Wadler's law of language design is relevant here, though 18:24
18:26 thou left 18:27 cooper_ joined, thou joined 18:28 cooper_ left, cooper_ joined
_sri just trying to get an overview of the capabilities of perl6 to plan the mojolicious port 18:29
18:29 adu left
_sri cargo culting workarounds for perl5 limitations that aren't necessary anymore would be silly 18:30
lue hello world o/
you *might* be able to make the do/end thing happen with macros, but I don't know macros in any way, so I can't help. 18:43
anant_ raiph: Yes, "real object" was bad. Replaced it with "concrete object" (gist.github.com/anant-sogani/5276483). 18:46
18:47 thou left, thou joined 19:07 thou left, thou joined
timotimo that IUP thing interests me 19:14
lue: when "is parsed" hits rakudo, you can totally do that. until then it'll be quite tricky i imagine 19:15
lue yeah (I tried a quick experiment with macros a little while ago to do what I suggested, to no avail) 19:16
timotimo is mrhdias on this channel? 19:19
lue not currently, it seems
timotimo seen mrhdias 19:20
19:20 thou left
timotimo is there some bot here that has some kind of syntax for that action? 19:20
!seen mrhdias
19:20 thou_ joined
benabik There was. Aloha is homeless right now though. 19:20
19:22 nobu95 joined
lue you could search perlgeek.de's logs by username. IIRC, last occurrences come first. 19:23
nwc10 dear Perl 6, can I have a klorthobot?
19:24 awwaiid left
timotimo what is that? 19:24
19:25 nobu95 left
nwc10 well, I'd like to be able to give it a word of phrase, and it tells me all the advice from Klortho that matches 19:25
yes, I know that it *could* be done in Perl 5
but, well, if the first one is written in Perl 6, no-one else will need to bother
and I think it would be popular
timotimo oh, it's that thing 19:27
today i'll develop a system utility that will make my life a little bit easier, using perl6
and it'll be only one line :P
(it disables the touch and gesture inputs on my wacom tablet, because they turn wonky after a couple of minutes of use and interfere with normal usage) 19:31
19:35 awwaiid joined
arnsholt timotimo: I don't think he's ever been here, unfortunately 19:37
Maybe I should suggest it in one of the bug threads
timotimo sure why not :) 19:38
19:40 thou joined, thou_ left 19:41 p5eval joined 19:45 pecastro left 19:51 thou left 19:55 rindolf left, rindolf joined 19:56 rindolf left 19:59 adu joined
arnsholt Rakudo setting compiled! \o/ 19:59
FROGGS_ \o/
arnsholt Onwards to the restricted one =)
lue
.oO(CORE.setting takes far longer than any other part of the process by far)
20:00
arnsholt Tru dat
I'm hunting compile errors, though =)
timotimo oh, this is vmarray work again! 20:01
cool beans
20:02 gcole left 20:03 gcole joined
FROGGS_ my tonight's goal: proper support for p5's eval! 20:04
lizmat block or string ? 20:05
FROGGS_ both
lizmat cool! 20:07
FROGGS_ too many tests use it, so I'm kinda forced to do that next 20:08
20:08 anant_ left
timotimo sounds like a good decision 20:10
lizmat meanwhile wrt to use bytes and hints hash 20:11
I was mixing up $^H and %^H
anything that uses $^H, can be replaced by an ad-hoc solution, such as $*USE_BYTES (for use bytes) 20:12
raiph idea: an AST phaser. runs every block exit. modify or generate ast for block. crazy? 20:17
[Coke] perl.org infrastructure required for planetsix is going away; looks like planeteria is a reasonable alternative if we still want a sixplanet.
raiph (planetsix) i can imagine this being an opportunity to move back towards perl5 20:20
lue raiph: you could accomplish that with existing phasers and macros, methinks
adu raiph: are you the guy who made libart? 20:21
raiph adu: no
adu just checking
so what am I doing wrong: "Dynamic variable $*TYPEDEF_CONTEXT not found" 20:22
raiph adu: did you create $*TYPEDEF_CONTEXT? i'm guessing not so that's a bug in a compiler 20:25
adu r: grammar G { my $*CTX = False; token ident { <.alpha> <.alnum>* { $*CTX = True; } }; }; say G.parse('test');
p6eval rakudo ba5e04: OUTPUT«No such method 'TOP' for invocant of type 'G'␤ in method parse at src/gen/CORE.setting:10953␤ in block at /tmp/7r61ZidWm3:1␤␤»
adu r: grammar G { my $*CTX = False; token TOP { <.alpha> <.alnum>* { $*CTX = True; } }; }; say G.parse('test');
p6eval rakudo ba5e04: OUTPUT«Dynamic variable $*CTX not found␤ in method <anon> at src/gen/CORE.setting:10627␤ in at src/gen/Metamodel.pm:2501␤ in any find_method_fallback at src/gen/Metamodel.pm:2489␤ in any find_method at src/gen/Metamodel.pm:937␤ in regex TOP at /tmp/4jmZPCstes:1␤ in…
FROGGS_ r: grammar G { :my $*CTX = False; token TOP { <.alpha> <.alnum>* { $*CTX = True; } }; }; say G.parse('test'); 20:27
p6eval rakudo ba5e04: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/02kND6AtbZ:1␤------> grammar G { :my ⏏$*CTX = False; token TOP { <.alpha> <.al␤ expecting any of:␤ pair value␤ postfix␤ infix stopper␤ infix or meta-infix␤ …
FROGGS_ hmm, looks like I'm mixing up nqp and perl6 20:28
adu FROGGS_: heh
FROGGS_ r: grammar G { token TOP { :my $*CTX = False; <.alpha> <.alnum>* { $*CTX = True; } }; }; say G.parse('test');
p6eval rakudo ba5e04: OUTPUT«「test」␤␤»
FROGGS_ see
I'm not mixing up
just was the wrong position :o)
adu so how do I make it available to other regex's
20:29 ikrs joined
FROGGS_ adu: it will be available in every token that is "after" TOP 20:29
adu ah
FROGGS_ like alpha and alnum you used there
adu ok
timotimo rather "further down the 'call stack'"
FROGGS_ yeah
timotimo (down or up, depending on the direction your stack grows in)
adu FROGGS_: I'm confused because STD.pm6 puts them above everything 20:30
why does it work for STD.pm6 but not for me
r: grammar G { my $*CTX = False; token TOP { <ident> { $*CTX = True; } }; token ident { <.alpha> <.alnum>* <?{ ($*CTX) }> }; }; say G.parse('test'); 20:33
p6eval rakudo ba5e04: OUTPUT«#<failed match>␤»
adu r: grammar G { token TOP { { my $*CTX = True; } <ident> }; token ident { <.alpha> <.alnum>* <?{ ($*CTX) }> }; }; say G.parse('test'); 20:34
p6eval rakudo ba5e04: OUTPUT«#<failed match>␤»
lizmat was wondering: is there going to be a rakudo star 2013.03 release ? 20:35
adu that should have succeeded
FROGGS_ r: grammar G { token TOP { :my $*CTX = True; <ident> }; token ident { <.alpha> <.alnum>* <?{ $*CTX }> }; }; say G.parse('test'); 20:37
p6eval rakudo ba5e04: OUTPUT«「test」␤ ident => 「test」␤␤»
FROGGS_ AFAIK {} stops LTM, but since there is just one token... dunno why it doesnt like that 20:38
adu r: grammar G { token TOP { :my $*CTX = True; <ident> }; token ident { <.alpha> <.alnum>* <?{ ($*CTX) }> }; }; say G.parse('test');
p6eval rakudo ba5e04: OUTPUT«「test」␤ ident => 「test」␤␤»
adu YEY
LTM?
FROGGS_ longest token matching 20:39
adu hmm
FROGGS_ hold on
maybe $*CTX is just valid within the block?
makes sense to me
and since <ident> is not within that block it wont be there 20:40
adu so I have to use :my
FROGGS_ r: grammar G { token TOP { { :my $*CTX = True; } <ident> }; token ident { <.alpha> <.alnum>* <!{ ($*CTX) }> }; }; say G.parse('test');
p6eval rakudo ba5e04: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/SVauG6ogio:1␤------> grammar G { token TOP { { :my ⏏$*CTX = True; } <ident> }; token ident {␤ expecting any of:␤ pair value␤ postfix␤ infix stopper␤ infix or…
FROGGS_ r: grammar G { token TOP { { my $*CTX = True; } <ident> }; token ident { <.alpha> <.alnum>* <!{ ($*CTX) }> }; }; say G.parse('test');
p6eval rakudo ba5e04: OUTPUT«「test」␤ ident => 「test」␤␤»
FROGGS_ yes, so that it is seen from the tokens within that token 20:41
r: { my $x = 7; say $x }
p6eval rakudo ba5e04: OUTPUT«7␤»
FROGGS_ r: { { my $x = 7; }; say $x }
p6eval rakudo ba5e04: OUTPUT«===SORRY!===␤Variable '$x' is not declared␤at /tmp/Obw9BBrsCV:1␤------> { { my $x = 7; }; say $x⏏ }␤ expecting any of:␤ postfix␤»
FROGGS_ see
it's not php :o)
adu ok
timotimo lizmat: well, we did have a compiler release already, someone probably was going to make a star release, too 20:44
FROGGS_ pmichaud: said that
timotimo can't tell who was going to be the release manager for 03 20:46
FROGGS_ I believe there was none so masak did it 20:47
r: try { say 1/0 }; say $!.Str.substr(0,10); say "alive" 20:49
p6eval rakudo ba5e04: OUTPUT«Divide by ␤alive␤»
FROGGS_ I think I'll use that for eval BLOCK
timotimo divide by alive, eh? 20:50
FROGGS_ :o)
it's more like: devide by newline
timotimo :)
can't test my wacom script thingie because apparently i displaced all of my damn microusb cables yet again :( 20:55
diakopter r: my $x .=Int; 20:56
p6eval rakudo ba5e04: OUTPUT«No such method 'Int' for invocant of type 'Any'␤ in method dispatch:<.=> at src/gen/CORE.setting:1014␤ in block at /tmp/f4UbDCkwYX:1␤␤»
diakopter r: my $x .=WHAT;
p6eval rakudo ba5e04: OUTPUT«No such method '' for invocant of type 'Any'␤ in method dispatch:<.=> at src/gen/CORE.setting:1014␤ in block at /tmp/5544WelhAv:1␤␤»
diakopter o)o 20:57
ha 20:59
r: say my $x .=max;
p6eval rakudo ba5e04: OUTPUT«-Inf␤»
diakopter r: say my $x .=min; 21:00
p6eval rakudo ba5e04: OUTPUT«Inf␤»
diakopter hm.
timotimo oh, that's cute 21:01
21:01 kaare__ left 21:02 SamuraiJack left, thou joined 21:04 dmol left, dmol joined, dmol left 21:07 dmol joined
dalek : d3afde4 | (Tobias Leich)++ | lib/Perl6/P5Actions.pm:
make "eval BLOCK" work, this sets $@
21:07
FROGGS_ does somebody know how to get the value of an environment var within nqp? 21:08
21:09 dmol left, dmol joined 21:10 kivutar joined
lizmat FROGGS: wrt to + make QAST::Var.new( :name('$!'), :scope('lexical') ) 21:11
s/\$!/\$@/ ?
FROGGS_ this $! is Perl 6's variable, $@ later dispatches to $! 21:12
lizmat aha, ok...
FROGGS_ IMO it is good to keep $!, because:
{ use v5; eval { 1/0 }; } use v6; say $! 21:13
something like that
lizmat but { use v5; eval { 1/0 }; say $@ } would also work, then, right? 21:14
FROGGS_ it does already
sorear
.oO( use 5.010 )
lizmat ack, gotcha
is there a reason you want to emulate 5.10.0 rather than e.g. 5.14.0
?
FROGGS_ no 21:15
I just typed in something
lizmat ok
FROGGS_ sorear: ?
lizmat also: I think we can get away with not supporting smart match in p5
FROGGS_ why? will it be removed? 21:16
lizmat the way I read p5p, is that indeed it will be deprecated and removed at some point
FROGGS_ sad 21:17
since we could do it right *g*
labster It doesn't mean there won't be code with smart match out there. I've used it in P5 code. 21:18
FROGGS_ me too
21:19 thou left
FROGGS_ but just in one project 21:19
lizmat yes, I did as well
timotimo having almost no clue about P5, what is it that makes smartmatch so bad for p5? is it the lack of object system in stock perl5?
lizmat but because p5 can't get it right because of lack of a type system
labster rn: my \m = 'foo'; say m.defined; 21:21
p6eval niecza v24-35-g5c06e28: OUTPUT«===SORRY!===␤␤Regex missing terminator (or semicolon must be quoted?) at /tmp/RoILhePQLs line 1 (EOF):␤------> my \m = 'foo'; say m.defined;⏏<EOL>␤␤Parse failed␤␤»
..rakudo ba5e04: OUTPUT«␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀␤␀␀␀U␀␀␀n␀␀␀r␀␀␀e␀␀␀c␀␀␀o␀␀␀g␀␀␀n␀␀␀i␀␀␀z
lizmat wrt to smartmatch in p5: rt.perl.org/rt3//Public/Bug/Displa...?id=116913 21:22
timotimo whoooops :D
labster really needs to stop using regex starters as variable names
that makes me sad. I've used given/when in P5 code quite a bit. 21:26
FROGGS_ yeah, given/when is quiet nice 21:27
I mean, I just put regexes and string in when clauses, this should work right, no? 21:28
lue
.oO(It does in Perl 6, *cough* *cough*)
21:31
FROGGS_ :o)
lue: ya, if we could get XS right, rakudo/perl5 with the sixmodelobjects could release the 5.24 :P 21:33
labster quick, let's ask p5p to all stop what they're doing and start working on rakudo
lizmat labster: there, you got the right idea 21:34
lue Introducing our latest release of Rakudo Star, named "version 5.24". This is because it now has P5 support, and then goes above and beyond existing versions of the standard Perl 5 compiler.
lizmat much better then arguing for *weeks* about how to implement subroutine signatures *sugar*
sorear FROGGS_: in perl 5, "say" is only a keyword if an explicit "use v5.10" or greater is in scope (or "use feature 'say'", but nobody does that) 21:35
FROGGS_ sorear: I do that 21:36
labster I do that
FROGGS_ hehe
sorear timotimo: p5 copied the old perl 6 smartmatch that nobody here likes anymore, not the new smartmatch
FROGGS_ sorear: at some point I'll read the feature lists and will activate these keywords only then
timotimo oh, i'm not perl6-old enough to know what the old smartmatch was like 21:37
lue is almost tempted to respond with "look at Perl 5" :)
sorear timotimo: There was this crazy idea that smartmatch should be symmetrical. /oo/ ~~ "foobar"
when ("foobar") { # matches "foobar", also matches rx/oo/ 21:38
21:38 dwoldrich left
lue gah. No wonder they want to get rid of it from P5. 21:38
timotimo oh, that's weird 21:39
lizmat what is?
21:39 mathw_ is now known as mathw
FROGGS_ mathw: \o/ 21:40
mathw hi
:)
adu what does this mean: "Cannot call 'Real'; none of these signatures match: :(Mu:U \v: Mu *%_)"
lichtkind FROGGS_: thanks again for help @ gpw
FROGGS_ lichtkind: thanks for your talk :o) 21:41
lizmat yeah, it was really good!
lichtkind thank you
FROGGS_ mathw: have you seen? there is already some perl5<->perl6 work going on 21:42
lichtkind i hope th eversion in kiev will be better
adu oops, it means I was using [] instead of {}
lizmat lichtkind: practice makes perfect!
mathw FROGGS_: such as?
FROGGS_: I'm a little out of touch at the moment, been busy.
FROGGS_ mathw: github.com/rakudo-p5/v5
perl 5 blocks (and pure perl 5 modules) within perl 6 code 21:43
mathw oh
ooh
ooooooh
FROGGS_ I'm not working at blizkost though
lizmat indeed: rakudo-p5 does not require a standard perl 5 lib 21:44
mathw perl 6 grammar mutability ftw
FROGGS_ ohh yeah, it is pretty awesome
(hard for code highlighters though)
mathw Perl never was easy for highlighting 21:45
lizmat those on the bleeding edge always suffer :-)
mathw even when there was only one language in each file
adu mathw: lol
lichtkind mathw: as author of an editor you got my proof perl has the hardest highlighting of all :)
mathw Well I read some things a few years back about how you can't parse Perl 5 properly without at least partially executing it 21:46
timotimo at this point, it would be swell if one could pepper the sourcecode with hints for the highlighter
mathw Which is a bit tricky in an editor
timotimo "i know you think this is inside the quote, but the quote has long ended. you are now inside a block. please highlight my code again?"
mathw I was writing a load of Lisp a couple of months back, highlighting that's fairly easy :)
timotimo mathw: yeah, but there isn't terribly much info to be gleaned from the highlighting IMO 21:47
adu mathw: unless you have to include racket
mathw: or scribble
mathw timotimo: true... not much info in Lisp syntax at all
timotimo one can say that's a good or bad thing. a matter of taste, clearly
mathw although my biggest issue with Lisp is the dynamic typing, the syntax is quite easy to deal with really 21:48
21:50 pmurias joined
adu ok, I think the only thing I have left to do is escape-sequence, then I can upload my C11 grammar 21:50
FROGGS_ cool
mathw need to do some more Perl 6 again soon
timotimo C11? is that like C++11, but without the ++? 21:51
pmurias if I have token version { $<vstr>=[<vnum>+ % '.' '+'?] } parse '5.16' how do I extract the '5'?
adu timotimo: no, C11 is the latest C standard, C++11 is the latest C++ standard, completely different beasts
timotimo mhm
adu it was easier when the latest was C99 and C++03 21:52
timotimo r: token version { $<vstr>=[<vnum>+ % '.' '+'?] }; "5.16" ~~ &version; say $<vstr>;
p6eval rakudo ba5e04: OUTPUT«Useless declaration of a has-scoped method in mainline␤===SORRY!===␤Undeclared name:␤ &version used at line 1. Did you mean 'Version'?␤␤»
FROGGS_ pmurias: should be $<vnum>[0].ast
timotimo oh, hmm. 21:53
adu I wonder if I should use gnu's cpp instead of trying to do it myself...
arnsholt adu: If you wanna do stuff with C, I think the LLVM libs are your best bet 21:58
adu arnsholt: I've looked into it, their XML format sucks 21:59
and if I'm going to have to write my own thing, then I'd rather do it in Perl6 instead of C++ 22:00
mathw mmm 22:01
Spirit is good, but Perl 6 grammars are better
adu mathw: indeed
spirit is boost/C++ which I hate
arnsholt adu: I haven't tried the XML stuff, but libclang looked reasonable from what little I looked at it
adu the ONLY runner up I've found anywhere to Perl6 grammars is ANTLR
arnsholt It's C, not Perl 6 though. Upside is, you don't have to parse at all, just munge the AST 22:02
adu libclang isn't C it's C++
arnsholt: again, I've looked into it, and I've done more in a couple days with Perl6 than I could have in a couple months with libclang, because that's how long I tried to use libclang 22:03
arnsholt The guts are C++, AFAIK, but there's a perfectly serviceable C API
Fair 'nuff. Just figured I mention it
adu all I'm trying to do is get an XML dump of C/C++ code 22:04
I've also tried GCCXML, which does just that, but the XML format sucks 22:08
FROGGS_ XML always sucks 22:09
adu true
but it's quite powerful, being able to transform structures without knowing what they're made of
arnsholt What do you want the XML for, OOC? 22:15
adu a long project 22:20
I've been working on it for the past 20 years, and probably for the next 70 years
arnsholt Fair 'nuff =)
I wanted to extract typedefs and stuff from header files 22:21
adu to document the equivalencies of different things
arnsholt But ATM I'm sidetracked on (yet another) yak shave =)
adu yak? 22:23
22:24 colomon joined
arnsholt www.catb.org/jargon/html/Y/yak-shaving.html 22:25
pmurias if a module emulates an old api how can it determine which api version it is imported as?
arnsholt I've got a couple of yaks pushed on my stack, to be honest =) 22:26
mathw FROGGS_: my new job have got me lined up to write two giant XSLTs soon. One targetting HTML, the other XSL-FO (which I don't know yet). That'll be fun!
adu arnsholt: for example, andmap: docs.racket-lang.org/reference/pair...dmap%29%29 and predicate_on_list: www.openmath.org/cd/fns2.xhtml#predicate_on_list are not equivalent, but can both be used to implement nary comparison 22:27
FROGGS_ :o)
adu arnsholt: are you calling my project a yak shave? 22:28
arnsholt And you want to compare code for equivalence?
adu arnsholt: eventually 22:29
arnsholt adu: No, no! I'm calling -my- project a yak shave
22:29 colomon left
arnsholt In fact I'm shaving a yak, to better shave another yak to do what I started out doing 22:29
Although, that top-level task may be best considered atrophied and I've just changed primary focus
For comparing code for equivalence, I assume you're familiar with Rice's theorem? 22:30
adu arnsholt: and to be precise, sub predicate_on_list(&proc, @list) { return and_map(&proc, most(@list), rest(@list)); }
[Coke] planeteria.org/perl6/ is starting to get perl 6 content. 22:32
adu arnsholt: nope 22:34
arnsholt: I just read the wikipedia article on Rice's theorem, and it's about classification, not equivalences 22:37
arnsholt Well, one of the things that follow from it is that you can't (in the general case, anyways) prove equivalence of two arbitrary pieces of code 22:38
Which is why things like static analysis and optimisation are so hard: there are only special cases 22:39
adu arnsholt: I've heard that before
arnsholt: I didn't know what it was called
arnsholt: but I don't care, I'm doing it
that's like saying oh, parsing languages won't work, because we might get syntax errors
so we might as well not build a compiler... 22:40
lizmat is calling it an early night to accommodate for DST starting this night (in Europe) 22:43
[Coke] I'm going to take this opportunity to cull some of the feeds in the sixplanet. 22:46
22:48 spider-mario left
dalek : a351fdc | (Tobias Leich)++ | lib/Perl6/P5 (2 files):
make "eval EXPR" und "eval" work
22:48
timotimo very cool :)
masak lizmat: yes, I'm giving talks at YAPC::NA. \o/ (I hope) 22:49
lizmat masak: do you know of any perl 6 related talks that should be given at YAPC::NA, but are not currently submitted ? 22:50
s/should be given/you think should be given/ 22:51
FROGGS_ wishes to see a talk about perl6 on android 22:52
lizmat that would be cool 22:53
timotimo is that a thing already?
22:53 ikrs left
masak lizmat: I know diakopter++ has been coordinating a lot, and from what I've seen of the program, it looks very promising. 22:55
timotimo masak: for my ADT module, do you think with a macro i can cause the classes to be available "at compile time" for things like multiple dispatch? i couldn't do it with a BEGIN block. (or perhaps it would have had to be something else than BEGIN? to be "at compile time"?) 22:57
22:59 cognominal joined
arnsholt BEGIN is compile-time 23:00
23:00 kivutar left
arnsholt INIT is the one that's similar to Perl 5 BEGIN, IIRC 23:00
timotimo i need to try that out again.
isn't there also CHECK time?
arnsholt And CHECK, yeah
masak timotimo: macros are conceptually at BEGIN time, yes. 23:04
dalek ecs: 59052ef | chansen++ | S32-setting-library/Temporal.pod:
Renamed weekday-of-month to day-of-week-in-month

Weekday usually means any day of the week other than a day that occurs in the weekend unless the API is constrained by struct tm. Which uses wday.
23:05
ecs: d01495e | (Carl Mäsak)++ | S32-setting-library/Temporal.pod:
Merge pull request #34 from chansen/master

Renamed weekday-of-month to day-of-week-in-month
23:05 dmol left 23:06 dmol joined
masak [Coke]: re rt.perl.org/rt3/Ticket/Display.html?id=67122 and "is this the right behavior" -- I don't know. I wouldn't mind some discussion here. 23:06
timotimo how do i properly set the Branch type up at compile time when i have my %result = create_adt(...) and i have %result<Branch>? 23:07
my \Branch := %result<Branch> doesn't seem to help
masak the two possible behaviors I see are (a) the one exhibited now, "invalid UTF-8 character for UTF-8 encoding", or (b) shouldn't be able to .succ into an invalid character range, and just skip above it. 23:08
timotimo i get "invalid typename in parameter declaration" in that case
23:17 cognominal left 23:21 pmurias left 23:28 cognominal joined 23:34 pmurias joined, cognominal left
adu gist.github.com/andydude/5278826 23:36
I'm getting "Type 'ExternalDeclaration' is not declared"
23:37 cognominal joined
adu am I doing something wrong? 23:37
masak adu: yes -- referencing a type before declaring it. 23:38
23:38 Chillance joined
masak std: class A { has B $.b }; class B {} 23:38
p6eval std 86b102f: OUTPUT«===SORRY!===␤In has declaration, typename 'B' must be predeclared (or marked as declarative with :: prefix) at /tmp/Sli17QBHl9 line 1:␤------> class A { has B⏏ $.b }; class B {}␤Malformed has at /tmp/Sli17QBHl9 line 1:␤------> [3…
diakopter rn: class A { has ::B $.b }; class B {} 23:45
p6eval rakudo ba5e04: ( no output )
..niecza v24-35-g5c06e28: OUTPUT«===SORRY!===␤␤GLOBAL::B does not name any package at /tmp/Mkh51QV3OF line 1:␤------> class A { has ::B⏏ $.b }; class B {}␤␤A type must be provided at /tmp/Mkh51QV3OF line 1:␤------> class A { has ::B⏏ $.b…
diakopter r: class A { has ::B $.b }; class B {}; print B.new; print A.new.b.new 23:47
p6eval rakudo ba5e04: OUTPUT«B<-905822265>No such method 'new' for invocant of type 'B'␤ in block at /tmp/TluLYMLqwz:1␤␤»
diakopter masak: ^^ hmm
masak :/
that looks wrong.
looks like it's retaining the stub, and not replacing it with the real B. 23:48
masak submits rakudobug
diakopter r: class B {}; class A { has B $.b }; print B.new; print A.new.b.new
p6eval rakudo ba5e04: OUTPUT«B<1785303324>B<1791592750>»
diakopter r: class B {}; class A { has ::B $.b }; print B.new; print A.new.b.new
p6eval rakudo ba5e04: OUTPUT«B<-931868390>No such method 'new' for invocant of type 'B'␤ in block at /tmp/ovh8hRY1hT:1␤␤»
masak interesting. 23:49
so it has nothing to do with forward references. only with ::
diakopter I suppose so, yes
r: my ::A $b; print $b.new 23:53
p6eval rakudo ba5e04: OUTPUT«No such method 'new' for invocant of type 'A'␤ in block at /tmp/uGlnpdofBU:1␤␤»
diakopter r: my ::A $b; print $b.^methods
p6eval rakudo ba5e04: OUTPUT«No such method 'dispatch:<.^>' for invocant of type 'A'␤ in block at /tmp/A5Yaky5mSc:1␤␤»
diakopter r: my ::A $b; print $b.WHAT 23:54
p6eval rakudo ba5e04: OUTPUT«Cannot type check against type variable A␤ in any type_check at src/gen/Metamodel.pm:303␤ in method print at src/gen/CORE.setting:7824␤ in sub print at src/gen/CORE.setting:7640␤ in block at /tmp/XXubY15ovw:1␤␤»
23:57 adu left