Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-03-14

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:06 tadzik I don't know of any
00:14 lichtkind joined #perl6
00:29 japhb grondilu: OpenGL bindings were already in the most-wanted bindings list at https://github.com/perl6/perl6-most-wanted/blob/master/most-wanted/bindings.md ; what did you update?
00:30 japhb timotimo_, not_gerd: I wrote the initial versions of the Parrot OpenGL bindings.  There was such a vast API to wrap that I ended up writing a regex-based C header snarfer to gather everything I needed and generate the bindings (code, data, constants, etc.)
00:31 japhb There's just a bloody lot there.
00:33 diakopter r: class F { also is F; }
00:33 p6eval rakudo 1c9939: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 97799 (src/gen/CORE.setting.pir:46529) (src/gen/CORE.setting:9487)␤called from Sub 'parents' pc 6770 (src/gen/perl6-metamodel.pir:3346) (src/gen/Metamodel.pm:647)␤called from Sub 'compute_mro' pc…
00:33 diakopter mrohaha
00:36 diakopter r: class ::F { ... }; class F is ::F {  }
00:36 p6eval rakudo 1c9939: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 97799 (src/gen/CORE.setting.pir:46529) (src/gen/CORE.setting:9487)␤called from Sub 'parents' pc 6770 (src/gen/perl6-metamodel.pir:3346) (src/gen/Metamodel.pm:647)␤called from Sub 'compute_mro' pc…
00:36 diakopter hoohoohaha
00:38 diakopter r: role F { ... }; class F does F {  }
00:38 p6eval rakudo 1c9939: OUTPUT«===SORRY!===␤Method 'is_composed' not found for invocant of class 'Perl6::Metamodel::ParametricRoleGroupHOW'␤»
00:38 diakopter heehee
00:38 diakopter I sense a fuzzing attack coming on
00:39 diakopter r: role F { ... }; class G does F {  }
00:39 p6eval rakudo 1c9939: OUTPUT«===SORRY!===␤None of the parametric role variants for 'F' matched the arguments supplied.␤Cannot call ''; none of these signatures match:␤␤»
00:39 diakopter tralala
00:41 diakopter 4 MLTA errors
00:41 fgomez joined #perl6
00:42 telex joined #perl6
00:44 diakopter r: role F { ... }; class G { ... }; class F { }; class G { }
00:44 p6eval rakudo 1c9939: OUTPUT«===SORRY!===␤Method 'is_composed' not found for invocant of class 'Perl6::Metamodel::ParametricRoleGroupHOW'␤»
00:45 kurahaupo joined #perl6
00:57 anuby joined #perl6
01:01 hypolin joined #perl6
01:03 diakopter r: class :: { }; ::(::)
01:03 p6eval rakudo 1c9939: OUTPUT«No such symbol 'GLOBALish 7::EXPORT       11::$?PACKAGE   15::::?PACKAGE  19::$_  23::$/  27::$!  39::$=pod       47::!UNIT_MARKER        51'␤current instr.: 'throw' pc 334686 (src/gen/CORE.setting.pir:150131) (src/gen/CORE.setting:9331)␤called from Sub 'sink' pc 366805
01:03 p6eval ..(src/gen/CORE.setti…
01:03 diakopter the whole symbol is 'GLOBALish 7::EXPORT       11::$?PACKAGE   15::::?PACKAGE  19::$_ 23::$/  27::$!  39::$=pod       47::!UNIT_MARKER        51'
01:03 diakopter ?
01:03 diakopter cool symbol
01:04 diakopter r: ::(::)
01:04 p6eval rakudo 1c9939: OUTPUT«No such symbol 'GLOBALish 7::EXPORT       11::$?PACKAGE   15::::?PACKAGE  19::$_  23::$/  27::$!  39::$=pod       43::!UNIT_MARKER        51'␤current instr.: 'throw' pc 334686 (src/gen/CORE.setting.pir:150131) (src/gen/CORE.setting:9331)␤called from Sub 'sink' pc 366805
01:04 p6eval ..(src/gen/CORE.setti…
01:05 diakopter oh; it's the stringification of the pseudostash
01:07 diakopter r: $::
01:07 p6eval rakudo 1c9939: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
01:07 diakopter ftw.
01:10 diakopter r: $/.$/
01:10 p6eval rakudo 1c9939: OUTPUT«No such method 'Any' for invocant of type 'Any'␤  in  at src/gen/BOOTSTRAP.pm:882␤  in any  at src/gen/BOOTSTRAP.pm:879␤  in block  at /tmp/JZG1LEmYnK:1␤␤»
01:11 diakopter die in bootstrap? o_O
01:15 fgomez joined #perl6
01:15 sorear some of the methods on basic types are defined in BOOTSTRAP.pm
01:15 sorear presumably this is a die in the lexical scope of bootstrap, but not its dynamic scope
01:16 * [Coke] is bummed about google reader.
01:25 diakopter r: ()...() # heehee
01:26 p6eval rakudo 1c9939: OUTPUT«(timeout)»
01:26 diakopter n: ()...()
01:26 p6eval niecza v24-33-gfc6d5fd: OUTPUT«Unhandled exception: Need something on the RHS␤  at /home/p6eval/niecza/lib/CORE.setting line 1490 (die @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3333 (ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3338 (series-listop @ 18) ␤  at /ho…
01:30 fgomez joined #perl6
01:32 grondilu japhb: I updated https://github.com/perl6/ecosystem/wiki/Most-Wanted-Modules
01:32 census joined #perl6
01:33 japhb grondilu, did you notice the 'NOTE' at the top?  ;-)
01:37 diakopter r: say .HOW.new[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]
01:37 p6eval rakudo 1c9939: OUTPUT«Perl6::Metamodel::ClassHOW.new()␤»
01:38 diakopter (wtf)
01:39 PerlJam r: my $item = 42; say $item[0][0][0][0][0];  # same thing
01:39 p6eval rakudo 1c9939: OUTPUT«42␤»
01:39 diakopter yeah ok
01:40 diakopter r: say .HOW.new.Capture
01:40 p6eval rakudo 1c9939: OUTPUT«No such method 'has-accessor' for invocant of type 'NQPAttribute'␤  in method Capture at src/gen/CORE.setting:971␤  in block  at /tmp/XuVde4Ezhf:1␤␤»
01:41 grondilu japhb: no, I did not.  My bad.
01:42 japhb grondilu, no worries.  Just teasing.  :-)
01:44 araujo joined #perl6
01:44 araujo joined #perl6
01:45 Liz joined #perl6
02:03 sqirrel_ joined #perl6
02:19 swarley| joined #perl6
02:24 am0c joined #perl6
02:54 diakopter r: say $1111111111111111111111111111111111.WHAT
02:54 p6eval rakudo 1c9939: OUTPUT«(Failure)␤»
03:07 orafu joined #perl6
03:19 dalek joined #perl6
03:22 anuby joined #perl6
03:35 gdey joined #perl6
04:00 rking joined #perl6
04:04 fgomez joined #perl6
04:11 Cynede joined #perl6
04:15 Cynede So far I desired to use blocking packages and alternative deps for packaging panda and it's deps.
04:19 xorp joined #perl6
04:25 SamuraiJack joined #perl6
04:36 diakopter r: say $1111111111111111111111111111111111
04:36 p6eval rakudo 1c9939: OUTPUT«Cannot use negative index -2147483648 on Any␤  in method gist at src/gen/CORE.setting:10555␤  in sub say at src/gen/CORE.setting:7614␤  in block  at /tmp/XLGRKR3F0c:1␤␤»
04:37 TimToady n: say $1111111111111111111111111111111111
04:37 p6eval niecza v24-33-gfc6d5fd: OUTPUT«Unhandled exception: weird object in sub_finish Int␤  at /home/p6eval/niecza/src/NieczaBackendDotnet.pm6 line 242 (StaticSub.finish @ 11) ␤  at /home/p6eval/niecza/src/NieczaActions.pm6 line 4257 (NieczaActions.comp_unit @ 15) ␤  at /home/p6eval/niecza/src…
04:37 diakopter p: say $1111111111111111111111111111111111
04:37 p6eval pugs: OUTPUT«␤»
04:38 TimToady n: say $111
04:38 p6eval niecza v24-33-gfc6d5fd: OUTPUT«(Any)␤»
04:38 diakopter r: say $2147483647
04:38 p6eval rakudo 1c9939: OUTPUT«(Any)␤»
04:38 diakopter r: say $2147483648
04:38 p6eval rakudo 1c9939: OUTPUT«Cannot use negative index -2147483648 on Any␤  in method gist at src/gen/CORE.setting:10555␤  in sub say at src/gen/CORE.setting:7614␤  in block  at /tmp/sr5kYPTbMk:1␤␤»
04:38 quietfanatic joined #perl6
04:39 TimToady r: say $(2147483648*2)
04:39 p6eval rakudo 1c9939: OUTPUT«4294967296␤»
04:39 TimToady r: say $4294967296
04:39 p6eval rakudo 1c9939: OUTPUT«Cannot use negative index -2147483648 on Any␤  in method gist at src/gen/CORE.setting:10555␤  in sub say at src/gen/CORE.setting:7614␤  in block  at /tmp/NHR3_z0_xR:1␤␤»
04:41 TimToady r: say $::(2147483648*2)
04:41 p6eval rakudo 1c9939: OUTPUT«No such symbol '$::4294967296'␤  in method gist at src/gen/CORE.setting:10555␤  in sub say at src/gen/CORE.setting:7614␤  in block  at /tmp/1kD7Ji57O_:1␤␤»
04:41 quietfanatic r: say $::(2)
04:41 p6eval rakudo 1c9939: OUTPUT«No such symbol '$::2'␤  in method gist at src/gen/CORE.setting:10555␤  in sub say at src/gen/CORE.setting:7614␤  in block  at /tmp/BzJzYTPa7g:1␤␤»
04:41 quietfanatic r: say ::<$2>
04:41 p6eval rakudo 1c9939: OUTPUT«(Any)␤»
04:41 quietfanatic r: say ::<$111111111111111>
04:41 p6eval rakudo 1c9939: OUTPUT«(Any)␤»
04:42 TimToady r: 'foo' ~~ /(.)(.)(.)/; say ::<$2>
04:42 p6eval rakudo 1c9939: OUTPUT«(Any)␤»
04:42 TimToady r: 'foo' ~~ /(.)(.)(.)/; say $::<$2>
04:42 p6eval rakudo 1c9939: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
04:42 TimToady r: 'foo' ~~ /(.)(.)(.)/; say $::<2>
04:42 p6eval rakudo 1c9939: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
04:43 TimToady r: 'foo' ~~ /(.)(.)(.)/; say $::(2)
04:43 p6eval rakudo 1c9939: OUTPUT«No such symbol '$::2'␤  in method gist at src/gen/CORE.setting:10555␤  in sub say at src/gen/CORE.setting:7614␤  in block  at /tmp/ga9todl4Dp:1␤␤»
04:43 TimToady r: 'foo' ~~ /(.)(.)(.)/; say $/[2]
04:43 p6eval rakudo 1c9939: OUTPUT«「o」␤␤»
04:43 TimToady r: 'foo' ~~ /(.)(.)(.)/; say $()
04:43 p6eval rakudo 1c9939: OUTPUT«foo␤»
04:44 quietfanatic r: 'foo' ~~ /(.)(.)(.)/; say $1111111111111111
04:44 p6eval rakudo 1c9939: OUTPUT«Cannot use negative index -2147483648 on Match␤  in method gist at src/gen/CORE.setting:10555␤  in sub say at src/gen/CORE.setting:7614␤  in block  at /tmp/xeFs4guoFl:1␤␤»
04:44 * Cynede perl6 channel feels so perl
04:44 TimToady well, the same idiot designed both of them  :)
04:45 quietfanatic Cannot use noun perl as adjective at 21:44
04:45 Cynede TimToady does Allison work on perl now?
04:45 TimToady not much
04:46 diakopter r: my $m=Match.new; nqp::bind_pos($m, $_*1000, 5) for 1..214748;
04:46 p6eval rakudo 1c9939: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling block : Error while compiling op bind_pos: No registered operation handler for 'bind_pos'␤»
04:46 Cynede TimToady Is there some reason why all modules must be reinstalled with rakudo update?
04:47 TimToady we don't guarantee binary compatibility yet
04:47 preflex_ joined #perl6
04:48 TimToady that's one of the reasons p5 development slowed to a crawl
04:48 quietfanatic do modules generally have a compiled component?
04:48 Cynede I've got same quesiton
04:48 TimToady beats me :)
04:48 Cynede why do I need reinstall the text
04:48 quietfanatic And if so, I'd think they could be automatically recompiled in the same way they were initially compiled
04:49 TimToady I don't think any of the module system experts are awake at the moment
04:49 Cynede TimToady who are module system experts? :)
04:49 TimToady "Not I!" said the pig.
04:49 Cynede -_-'
04:50 Cynede TimToady may I join Perl6? :D
04:50 diakopter r: my $m=Match.new; say $m[11111111111111111111111111111111111111111111111111111]
04:50 p6eval rakudo 1c9939: OUTPUT«(Any)␤»
04:50 TimToady the question is, can we stop you?  :)
04:51 diakopter Cynede: yes, just type /join #perl6
04:51 Cynede TimToady github organization? :P
04:51 TimToady you should use "organization" in the same utterance as "TimToady"
04:51 TimToady *shouldn't
04:52 TimToady my n't key is broken again...
04:52 Cynede :S
04:53 Cynede TimToady same utterance?
04:53 diakopter moritz: tell phenny tell moritz can you add me to admin the perl6 org plz
04:54 diakopter moritz: tell phenny ask moritz so we can add folks while you're asleep
04:57 kivutar joined #perl6
04:57 diakopter p6eval: use Inline::JavaScript; { setInterval(function(){ 'phenny: are you alive' }, 5000050) }
04:57 Cynede I know -_-' we need recompile text modules because it's -Ofun :D
04:58 diakopter Cynede: moritz will be glad to add you in a couple hours when he awakens
04:58 Cynede diakopter really? That could be awesome !!! because I just use perl for about week or 2 weeks
04:59 diakopter rakudo is in a separate org; it requires a signed CLA
05:00 Cynede diakopter Contributor License Agreement ?
05:00 diakopter yep something like that
05:01 Cynede diakopter I see but I need to learn some parrot first .
05:01 diakopter nah
05:01 diakopter you mentioned you wanted to help with speed
05:01 Cynede diakopter yes )
05:01 diakopter long term, the best way to do that is to work on the optimizer, which is written in NQP
05:02 diakopter (a micro subset of Perl 6)
05:02 quietfanatic Is it still too early for me to say Parrot is dying?
05:02 _jaldhar joined #perl6
05:02 * Cynede can't remember how to get nickname back from temprary unavailable
05:03 * TimToady thinks it's too late to say that... :)
05:03 Cynede quietfanatic that sounds sad?
05:03 quietfanatic I...dunno.  Never mind.
05:03 diakopter Cyenede: /msg nickserv ghost $nick $password
05:04 Cynede diakopter doesn't help )
05:05 diakopter try recover instead of ghost
05:05 Heather diakopter there is release
05:05 Heather diakopter quote NickServ release $nick $password
05:06 raiph joined #perl6
05:07 Heather How can I create simple code wrapper
05:08 Heather alike surroundX { .... } which will do something at start of block and in the end
05:08 diakopter Heather: see http://perl6advent.wordpress.com/2011/12/04/traits-meta-data-with-character/
05:08 diakopter for an example
05:09 diakopter .wrap and callwith
05:09 mikemol joined #perl6
05:09 Heather diakopter I want something alike C# "using" for disposible objects, like I don't want to care about closing file
05:10 diakopter ok; maybe do something like that example except the trait name is 'disposable'
05:10 TimToady why not just a function that takes a closure?
05:11 TimToady sub surroundX(&foo) { say "Before"; foo; say "After" }; surroundX { say "Middle" }
05:11 TimToady nr: sub surroundX(&foo) { say "Before"; foo; say "After" }; surroundX { say "Middle" }
05:12 p6eval rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«Before␤Middle␤After␤»
05:12 Heather yes, thanks.
05:12 diakopter so you could make a combinator that generates those things for particular classes
05:12 Heather TimToady though it must also work with try finally if I want to follow C# using )
05:13 TimToady nr: sub surroundX(&foo) { say "Before"; foo; say "After"; CATCH { when * { say "FINALLY!"} } }; surroundX { say "Middle"; die "oops" }
05:13 p6eval rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«Before␤Middle␤FINALLY!␤»
05:14 diakopter so you could say my $filecloser = disposable(sub ($f) { $f.close }); $filecloser((my $a=Blah.new), { $a.do_stuff })
05:14 TimToady or something like that
05:14 TimToady nr: sub surroundX(&foo) { say "Before"; foo; say "After"; LEAVE { say "FINALLY!"} }; surroundX { say "Middle"; die "oops" }
05:14 p6eval niecza v24-33-gfc6d5fd: OUTPUT«Before␤Middle␤FINALLY!␤Unhandled exception: oops␤  at /tmp/bkYMPe3hDR line 1 (ANON @ 4) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/bkYMPe3hDR line 1 (surroundX @ 6) ␤  at /tmp/bkYMPe3hDR line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.set…
05:14 p6eval ..rakudo 1c9939: OUTPUT«Before␤Middle␤oops␤  in block  at /tmp/zQS0EnbSo6:1␤␤»
05:15 TimToady rakudo doesn't properly unwind the stack yet on globally handled die
05:16 TimToady the spec has "my $handle will leave { .close } = open ...."
05:16 TimToady but it's not yet implemented
05:17 diakopter r: my $blah = &(/foo/).wrap(sub (*@a, *%b) { say 'hi'; callwith(|@a, |%b); say 'bye' });  $blah('foo')
05:17 p6eval rakudo 1c9939: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'WrapHandle'␤  in  at src/gen/BOOTSTRAP.pm:895␤  in any  at src/gen/BOOTSTRAP.pm:879␤  in block  at /tmp/gkif3_nEV0:1␤␤»
05:17 _jaldhar joined #perl6
05:18 quietfanatic iirc wrap modifies its invocant
05:18 quietfanatic and returns a thingie with an unwrap method
05:18 quietfanatic or something like that
05:18 diakopter r: my $blah = &(/foo/).wrap(sub (*@a, *%b) { say 'hi'; callwith(|@a, |%b); say 'bye' });  try .say for $blah.^methods
05:18 p6eval rakudo 1c9939: OUTPUT«restore␤»
05:19 Heather oh...
05:19 diakopter r: my $blah = &(/foo/); $blah.wrap(sub (*@a, *%b) { say 'hi'; callwith(|@a, |%b); say 'bye' });  $blah('foo')
05:19 p6eval rakudo 1c9939: OUTPUT«hi␤No such method '!cursor_start_all' for invocant of type 'Str'␤  in regex  at /tmp/8nH9EMEHIJ:1␤  in any call_with_args at src/gen/Metamodel.pm:2877␤  in block  at src/gen/CORE.setting:541␤  in sub  at /tmp/8nH9EMEHIJ:1␤  in any enter at src/gen/Metamodel.pm:2974…
05:20 diakopter r: my $blah = &(/foo/); $blah.wrap(sub (*@a, *%b) { say 'hi'; callwith(|@a, |%b); say 'bye' });  $blah(Cursor.new)
05:20 p6eval rakudo 1c9939: OUTPUT«hi␤Cannot look up attributes in a type object␤  in any !cursor_start_all at src/stage2/QRegex.nqp:617␤  in regex  at /tmp/cAD1PWsjf7:1␤  in any call_with_args at src/gen/Metamodel.pm:2877␤  in block  at src/gen/CORE.setting:541␤  in sub  at /tmp/cAD1PWsjf7:1␤  in a…
05:21 diakopter r: my $blah = &(/foo/); $blah.wrap(sub (*@a, *%b) { say 'hi'; callwith(|@a, |%b); say 'bye' });  say 'foo' ~~ $blah
05:21 p6eval rakudo 1c9939: OUTPUT«hi␤bye␤No such method 'MATCH_SAVE' for invocant of type 'Bool'␤  in method ACCEPTS at src/gen/CORE.setting:10899␤  in block  at /tmp/QEr9jS3hzo:1␤␤»
05:23 quietfanatic r: my $blah = *.say; $blah.wrap(sub (|$args) {say 'hi'; callwith(|$x); say 'bye' }); $blah('foo')
05:23 p6eval rakudo 1c9939: OUTPUT«Obsolete use of | or \ with sigil on param $args�[31m===[0mSORRY![31m===[0m�Variable '$x' is not declared�at /tmp/UdgdeEsIHA:1�------> [32mrap(sub (|$args) {say 'hi'; callwith(|$x[33m�[31m); say 'bye' }); $blah('foo')[0m�    expecting any of:�        postfi…
05:23 mj41 joined #perl6
05:23 quietfanatic r: my $blah = *.say; $blah.wrap(sub (|args) {say 'hi'; callwith(|args); say 'bye' }); $blah('foo')
05:23 p6eval rakudo 1c9939: OUTPUT«No such method 'wrap' for invocant of type 'WhateverCode'␤  in block  at /tmp/2V5_SWAY8c:1␤␤»
05:23 quietfanatic r: my $blah = { .say }; $blah.wrap(sub (|args) {say 'hi'; callwith(|args); say 'bye' }); $blah('foo')
05:23 p6eval rakudo 1c9939: OUTPUT«No such method 'wrap' for invocant of type 'Block'␤  in block  at /tmp/4hRzhO2Rvk:1␤␤»
05:23 quietfanatic r: my $blah = &({ .say }); $blah.wrap(sub (|args) {say 'hi'; callwith(|args); say 'bye' }); $blah('foo')
05:23 p6eval rakudo 1c9939: OUTPUT«No such method 'wrap' for invocant of type 'Block'␤  in block  at /tmp/w0XLLqHsZc:1␤␤»
05:23 quietfanatic r: my $blah = sub { .say }; $blah.wrap(sub (|args) {say 'hi'; callwith(|args); say 'bye' }); $blah('foo')
05:23 p6eval rakudo 1c9939: OUTPUT«hi␤Too many positional parameters passed; got 1 but expected 0␤  in sub  at /tmp/7Zi3cgPH5G:1␤  in any call_with_args at src/gen/Metamodel.pm:2877␤  in block  at src/gen/CORE.setting:541␤  in sub  at /tmp/7Zi3cgPH5G:1␤  in any enter at src/gen/Metamodel.pm:2974␤  i…
05:24 quietfanatic r: my $blah = sub ($_) { .say }; $blah.wrap(sub (|args) {say 'hi'; callwith(|args); say 'bye' }); $blah('foo')
05:24 p6eval rakudo 1c9939: OUTPUT«hi␤foo␤bye␤»
05:25 Heather TimToady I need to use variable from surroundX in closure
05:25 TimToady well, then you probably want a macro instead
05:25 Heather yes
05:26 jerome joined #perl6
05:26 quietfanatic Then it'd have to pass it as an argument to the closure
05:26 quietfanatic or
05:26 Heather does perl6 support macros?
05:26 quietfanatic it could be a contextual variable, like $*foo
05:26 TimToady but it would be unhygienic for your argument block to refer to a normal lexical that had not been declared, so yeah, maybe a dynvar as qf suggests
05:27 TimToady or a parameter would be cleanest
05:27 Heather r: $*foo
05:27 p6eval rakudo 1c9939: OUTPUT«Dynamic variable $*foo not found␤current instr.: 'throw' pc 334686 (src/gen/CORE.setting.pir:150131) (src/gen/CORE.setting:9331)␤called from Sub 'sink' pc 366805 (src/gen/CORE.setting.pir:162984) (src/gen/CORE.setting:10563)␤called from Sub 'MAIN' pc 381 (src/gen/p…
05:27 TimToady warping the language into one that suddenly has extra magical variables is not really a good design...
05:28 TimToady at least the * in a dynamcic variable tells you what kind of magic you're expecting to happen
05:29 TimToady nr: sub surroundX(&foo) { my $*var = "I'm a dynvar!"; say "Before"; foo; say "After"; LEAVE { say "FINALLY!"} }; surroundX { say "Middle $*var"; die "oops" }
05:29 p6eval niecza v24-33-gfc6d5fd: OUTPUT«Before␤Middle I'm a dynvar!␤FINALLY!␤Unhandled exception: oops␤  at /tmp/05SQpwVoOI line 1 (ANON @ 4) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/05SQpwVoOI line 1 (surroundX @ 7) ␤  at /tmp/05SQpwVoOI line 1 (mainline @ 4) ␤  at /home/p6eval/niecz…
05:29 p6eval ..rakudo 1c9939: OUTPUT«Before␤Middle I'm a dynvar!␤oops␤  in block  at /tmp/V_3J1FRTyu:1␤␤»
05:29 diakopter you don't need a macro if you do the combinator thing I wrote above
05:30 Heather hm...
05:31 Heather TimToady what if I do foo($var) ?
05:31 Heather TimToady can it be something alike $var => say $var ?
05:31 diakopter r: macro marco { &marco.wrap(&marco); say 44; marco }; marco
05:32 p6eval rakudo 1c9939: OUTPUT«(timeout)44␤»
05:33 TimToady Heather: not sure quite what yer asking
05:33 Heather TimToady let me example
05:35 Heather TimToady https://gist.github.com/Cynede/5159072
05:35 Heather here is example
05:37 Heather a bit wrong brackets I guess
05:38 Heather though I saw grep working alike that... I need to find it's implementation
05:38 TimToady something more like:  file($res[0], a, -> $fh { $fh.say( $gpattern ); }
05:38 quietfanatic What you intend to do there will work, I think.
05:39 TimToady or just file($res[0], a, { .say( $gpattern ) }
05:40 TimToady as long as file passes the handles as the first arg to the block
05:40 TimToady *handle
05:41 Heather undeclared routine
05:41 TimToady the :mod thing won't quite work like that though
05:41 TimToady yes, a bare 'a' will try to look for a routine of that name
05:41 Heather what is mod's type
05:42 Heather can I declare it as mode...
05:43 TimToady you'll have to interpolate named args using prefix:<|>
05:43 TimToady (on the open)
05:43 Heather TimToady alike <|a> ?
05:43 TimToady at best you can pass in a pair, but named args are syntactic, and you need |$modes or some such to insert any pairs in as named args
05:44 TimToady if you pass in :a as an argument, it's just a pair
05:45 TimToady if you have a parameter that binds one or more pairs as a single argument, then it's just a data structure, not named args
05:45 TimToady so something like open $fname, |$mod is what you need there
05:45 kaleem joined #perl6
05:45 quietfanatic so, like sub file ($fname, &code, *%modes) { ... my $fh = open $fname, |%modes; ... }
05:45 quietfanatic right?
05:46 TimToady that might work
05:46 TimToady then you could call file with an arbitrary number of options
05:46 quietfanatic and they'd all be passed to open
05:47 TimToady you're relying on the fact that, when you pass in the arguments, it weeds out all the named args, so you're left with just two positionals, the filename, and the block
05:47 TimToady but it oughta work
05:47 quietfanatic doesn't it?
05:47 TimToady I think it will
05:48 TimToady if it doesn't, it's a bug :)
05:48 Heather how should I specify *%modes
05:48 TimToady just like that
05:48 quietfanatic You give :r or :w or stuff to file when you call it
05:48 TimToady it doesn't need any extra types, or what quietfanatic said, if that's what you're asking
05:48 quietfanatic file(@res[0], :r, { ... })
05:49 Heather works
05:49 TimToady file(@res[0], :r, :bin, {...})
05:49 quietfanatic that :r turns into :r(True)
05:49 quietfanatic and that gets shoved into %modes as a key-value pair
05:50 quietfanatic and then the | operator takes all the key-value pairs in %modes and turns them back into named arguments
05:53 Heather quietfanatic cool ) that's becoming less verbose but I like it
05:54 TimToady nr: sub foo($f,&b,*%h) { given open $f, |%h { .&b; .close } }; foo '/etc/passwd', :r, { .get.say };
05:54 p6eval rakudo 1c9939: OUTPUT«open is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting:2␤  in sub open at src/RESTRICTED.setting:5␤  in sub foo at /tmp/yikWrH9bPC:1␤  in block  at /tmp/yikWrH9bPC:1␤␤»
05:54 p6eval ..niecza v24-33-gfc6d5fd: OUTPUT«Unhandled exception: open may not be used in safe mode␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (open @ 0) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at <unknown> line 0 (&open @ 0) ␤  at /tmp/pg3Utd0oHY line 1 (foo @ 6) ␤  at /tmp/pg3Utd0oHY line…
05:55 TimToady you have to put the &b before the *%h
05:55 TimToady (in the declaration, not the call)
05:55 TimToady but that works locally
05:56 Heather TimToady hm...
06:00 Heather TimToady it also works good )
06:08 Heather TimToady now it looks better for me https://github.com/Cynede/ignore/blob/master/bin/ignore :)
06:09 Heather TimToady but I think there is way to get all the lines and then check if contains $pattern
06:09 Heather instead of making loop
06:13 Heather stairs of the closing brackets is still being my objection to feel ugly
06:13 TimToady well, any(.lines) eq $gpattern would work
06:14 TimToady I find it difficult to read your stairs because most perl programmers use the K&R indent, not gnu
06:14 Heather TimToady I think I should back to 4 spaces -_-' because it magically makes } not that ugly
06:15 TimToady well, I'm not fond of indent styles that try to be Pythonic :)
06:15 Heather TimToady GNU is uglier, it makes double indentation. 1 for brackets, 1 for code
06:16 TimToady I'm just used to looking straight up from the bracket to see what the opening construct was for it
06:16 Heather I'm trying to be ml-ick >_<
06:16 TimToady it's sort of aristotelean, everything has a beginning, a middle, and an end :)
06:17 Heather TimToady if you already have indent you don't need it ...
06:17 TimToady well, perl won't prevent you from programming in whatever style you like, but you should just be aware that most Perl shops go the outdenting way
06:17 Heather TimToady so ... I would say most of everything with brackets go K & R way
06:18 TimToady that's the way most Algolish languages have gone
06:18 TimToady even if they only spell it 'begin/end'
06:18 Heather I heard that perl is great language to use pseudographic way -_-'
06:19 TimToady sure, and I don't deny that people's branes work differently when it comes to graphics
06:19 TimToady just pointing out that you'll be swimming upstream sooner or later, given current culture
06:20 TimToady don't want you to be shocked when someone gives you some pushback on it, is all
06:20 Heather TimToady I have ability to follow upstream code when do contributions :)
06:20 * TimToady ain't asking for any more than that
06:21 * TimToady is more excited to see new contributors
06:21 Heather TimToady I will be happy to be
06:22 TimToady cool, don't let anyone discourge you, including me :)
06:22 TimToady *discourage
06:27 Heather :D
06:27 Heather TimToady currently I'm waiting for this https://github.com/tadzik/panda/pull/37 review
06:28 Heather TimToady I find it more clear for packaging ...
06:28 * TimToady has done virtually nothing with panda yet, alas
06:28 Heather virtually :S
06:28 TimToady p6 has already grown to the size that I can't keep track of what everyone is doing...
06:29 Heather I guess
06:29 Heather TimToady https://github.com/Cynede/ignore/blob/master/bin/ignore 4 tabs looks much better -_-'
06:29 TimToady p5 didn't hit that until after 5.0 was already out
06:34 * TimToady --> bed
06:34 Heather TimToady gn
06:52 alc joined #perl6
06:56 Heather how to use or in matching alike ~~ /a/b/c/   - is it correct?
06:56 Heather so I want to check if string contains one of them
06:59 sorear like $str ~~ /a|b/ # true if $str contains a or b
06:59 sorear ?
06:59 Heather sorear yes
06:59 Heather thank you
06:59 Heather sorear what difference between "" and <>
07:00 diakopter do you know about "" vs '' ?
07:01 Heather diakopter what?
07:01 sorear Heather: do you perl 5?  <> is qw()
07:02 Heather sorear I don't perl5...
07:02 Heather sorear qw?
07:02 raiph <foo bar !@#$%baz> is a three element list literal: 'foo', 'bar', '!@#$%baz'
07:02 Heather raiph I see, thanks.
07:06 diakopter qw stands for quote whitespace or quote words or something like that
07:07 raiph Heather: <foo $bar> is to 'foo', '$bar' as <<foo $bar>> is to "foo", "$bar"
07:09 diakopter Heather:  my $foo='bar'; say "foo $foo"; say 'foo $foo'
07:09 diakopter rnp:  my $foo='bar'; say "foo $foo"; say 'foo $foo'
07:09 p6eval rakudo 1c9939, niecza v24-33-gfc6d5fd, pugs: OUTPUT«foo bar␤foo $foo␤»
07:19 wk joined #perl6
07:23 Heather when I do my $options = ($a, $b); and if I edit $options[0] will it edit $a ?
07:29 FROGGS joined #perl6
07:33 Heather FROGGS hi
07:33 Heather basically what happens when I do my $x = $y ? :)
07:38 FROGGS Heather: assignment?
07:39 Heather FROGGS when I change x y is changing too?
07:39 FROGGS no, for that you need binding: $x := $y
07:39 Heather FROGGS same about tuple?
07:40 FROGGS r: my $x = 7; my $y = 42; $x := $y; say $x; $y = 100; say $x
07:41 p6eval rakudo 1c9939: OUTPUT«42␤100␤»
07:41 FROGGS just try
07:41 FROGGS r: my $x = 7; my $y = 42; $x = $y; say $x; $y = 100; say $x
07:41 p6eval rakudo 1c9939: OUTPUT«42␤42␤»
07:42 labster joined #perl6
07:42 Heather r: my $x = False; my $y = False; my $z = ( $x, $y); $z[0] = True; say $x;
07:42 p6eval rakudo 1c9939: OUTPUT«True␤»
07:42 Heather linked!
07:43 Heather FROGGS how can I create not-linked $z ?
07:44 FROGGS r: my $x = False; my $y = False; my $z = [ $x, $y ]; $z[0] = True; say $x;
07:44 p6eval rakudo 1c9939: OUTPUT«False␤»
07:45 Heather FROGGS is it a list?
07:45 Heather ah, not it's $, so it's optional tuple declaration?
07:46 FROGGS ?
07:46 FROGGS as I understand [ ... ] copies the values, where ( ... ) does binding
07:46 Heather FROGGS is $z a tuple here?
07:46 lustlife joined #perl6
07:48 FROGGS r: ( $x, $y).WHAT.say
07:48 p6eval rakudo 1c9939: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable '$x' is not declared�at /tmp/riMyompI_e:1�------> [32m( $x[33m�[31m, $y).WHAT.say[0m�    expecting any of:�        postfix�»
07:48 FROGGS err
07:48 FROGGS brb
07:49 Heather $x = False; my $y = False; my $z = [ $x, $y ]; $z.WHAT.say
07:49 Heather r: $x = False; my $y = False; my $z = [ $x, $y ]; $z.WHAT.say
07:49 p6eval rakudo 1c9939: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable '$x' is not declared�at /tmp/QeeMYW9lun:1�------> [32m$x[33m�[31m = False; my $y = False; my $z = [ $x, $[0m�    expecting any of:�        postfix�»
07:50 Heather r: my $x = False; my $y = False; my $z = [ $x, $y ]; $z.WHAT.say
07:50 p6eval rakudo 1c9939: OUTPUT«(Array)␤»
07:50 Heather r: my $x = False; my $y = False; my $z = ( $x, $y ); $z.WHAT.say
07:50 p6eval rakudo 1c9939: OUTPUT«(Parcel)␤»
07:50 Heather Parcel ? :S is it tuple in perl?
07:51 raiph sorta ish
07:51 Heather raiph ish ? tuplish? )
07:51 raiph yeah
07:52 Heather so I want $z to be a tuple :P
07:53 raiph parcel as tuple: http://irclog.perlgeek.de/perl6/2013-03-01#i_6511175
07:53 raiph have you explored the irc logs? http://irclog.perlgeek.de/perl6
07:54 raiph average of one or two thousand lines every day for seven years
07:55 raiph there's a custom search function and a convenient google link near the top
07:56 raiph and for last 6 months there's been a "summary" if you click the summary link
07:57 arnsholt When's the next NQP/Rakudo release point?
08:00 dalek nqp/vmarray-list: fb2a2fd | (Arne Skjærholt)++ | src/pmc/sixmodelobject.pmc:
08:00 dalek nqp/vmarray-list: Implement the pop and shift VTABLEs in sixmodelobject.pmc.
08:00 dalek nqp/vmarray-list: review: https://github.com/perl6/nqp/commit/fb2a2fdb02
08:01 lumi_ joined #perl6
08:02 domidumont joined #perl6
08:05 woosley joined #perl6
08:06 raiph Heather: Is Parcel-is-a Tuple working for you?
08:16 Heather raiph Parcel-is-a Tuple?
08:17 Heather though parcel is what I need
08:18 Heather but can I construct it without linking?
08:21 raiph Heather: If I understand your question, FROGGS had the answer ^^^
08:21 raiph basically [ ] rather than ( )
08:24 Heather raiph yes it works I just wonder why it's array and not a parcel
08:26 raiph so you get the diff between = and := right?
08:27 Heather yes
08:28 FROGGS_ joined #perl6
08:28 domidumont joined #perl6
08:28 lumi_ joined #perl6
08:29 raiph r: my $a = (3, 4); $a[1] = 5 # won't work because the 2nd element (4) is a constant
08:29 p6eval rakudo 1c9939: OUTPUT«Cannot modify an immutable value␤  in block  at /tmp/u_yPNKM0Ps:1␤␤»
08:31 raiph r: my $a = [3, 4]; $a[1] = 5; say $a[1] # will work because the 2nd element is a container, to which the value 4 was assigned
08:31 p6eval rakudo 1c9939: OUTPUT«5␤»
08:31 Heather raiph I see. parcel doesn't host anything mutable
08:32 raiph er, i don
08:33 raiph er, i don't think that's right
08:33 raiph a parcel is not mutable
08:34 raiph but ($a, %b) # $a and %b may be mutable, but this parcel contains those two variables and you can't change that
08:35 SamuraiJack joined #perl6
08:39 raiph r: my $x = 'x'; my $a = (3, $x); $x = 'y'; say $a[1] # works because $x is mutable
08:39 p6eval rakudo 1c9939: OUTPUT«y␤»
08:40 Heather yes I see
08:40 Heather I said it doesn't host it
08:41 FROGGS joined #perl6
08:41 Heather raiph look https://github.com/Cynede/ignore/blob/master/bin/ignore my script is becoming less verbose and more beauty -_-' that's what I expect from perl
08:46 labster OMG, someone expects beauty from perl?  \o/  perl 6 is working, everyone!
08:46 raiph Nice. I haven't seen that curlies style in a while; i used that when i wrote bcpl code back in the day.
08:46 Heather labster I do )
08:47 Heather labster perl is beauty, really
08:49 labster Heather: perl has something of a reputation for obfuscated code, to no small degree from regular expressions in perl 5.  Perl 6 is much more beautiful, really -- even the magic parts seem to make sense.
08:49 am0c joined #perl6
08:51 Liz_ joined #perl6
08:52 * labster starts hacking on File::Spec... realizes he's running a mix of case (in)sensitive partitions on the current machine... and both p5 and p6 just assume insensitive based on OS alone.
08:52 raiph Heather: consider turning expressions like a == 1 && b == 1 in to "junctions"
08:52 raiph So ($options[0] == False && $options[1] == False) becomes
08:53 lumi_ joined #perl6
08:54 Heather raiph junctions?
08:55 raiph r: my $options = [1, 1]; if $options[0] & $options[1] == 1 { say "yep" }
08:55 p6eval rakudo 1c9939: OUTPUT«yep␤»
08:55 Heather ah
08:55 Heather raiph but now I need recode it to if all of options is false
08:56 Heather r: my $options = [1, 1]; if any($options) == 1 { say "yep" }
08:56 p6eval rakudo 1c9939:  ( no output )
08:56 Heather r: my $options = [1, 1]; if all($options) == 1 { say "yep" }
08:56 p6eval rakudo 1c9939:  ( no output )
08:57 Heather r: my $options = [1, 1]; if all($options) eq 1 { say "yep" }
08:57 p6eval rakudo 1c9939:  ( no output )
08:57 Heather r: my $options = [1, 1]; if any($options) eq 1 { say "yep" }
08:57 p6eval rakudo 1c9939:  ( no output )
08:58 Heather r: my @options = [1, 1]; if any(@options) == 1 { say "yep" }
08:58 p6eval rakudo 1c9939:  ( no output )
08:58 Heather hm...
08:58 raiph r: my $options = [5, 5]; if any($options[]) == 5 { say "yep" }
08:58 p6eval rakudo 1c9939: OUTPUT«yep␤»
08:58 Heather ah... []
08:59 Heather raiph is it alike type descriptor here?
09:01 Heather raiph also I can use named options though... alike git => $git
09:01 raiph my $a = [2, 3]; say $a.WHAT; say $a[].WHAT
09:02 raiph r: my $a = [2, 3]; say $a.WHAT; say $a[].WHAT
09:02 p6eval rakudo 1c9939: OUTPUT«(Array)␤(Array)␤»
09:02 Heather :S
09:03 Heather raiph btw it's any, is there all keyword, right ?
09:03 Heather r: my $a = [2, 3]; say any($a).WHAT;
09:03 p6eval rakudo 1c9939: OUTPUT«(Junction)␤»
09:03 Heather r: my $a = [2, 3]; say any($a[]).WHAT;
09:03 p6eval rakudo 1c9939: OUTPUT«(Junction)␤»
09:04 Heather r: my $a = [2, 3]; say any($a);
09:04 p6eval rakudo 1c9939: OUTPUT«any(2 3)␤»
09:04 Heather r: my $a = [2, 3]; say any($a[]);
09:04 p6eval rakudo 1c9939: OUTPUT«any(2, 3)␤»
09:04 hoelzro so I discovered (with a stupid test) last night that Hash.new is about 2x faster than {}
09:12 tadzik huh, odd
09:13 tadzik Heather: https://gist.github.com/moritz/5070740 should help you with assignment, binding etc
09:14 moritz https://raw.github.com/perl6/doc/master/lib/containers.pod is the up-to-date version
09:14 lumi_ joined #perl6
09:15 jnthn morning o/
09:16 raiph Heather: re any, all etc. keywords: http://doc.perl6.org/type/Junction
09:16 labster morning jnthn \o
09:16 jnthn hoelzro: Note they're not actually the same; {} containerizes. But that doesn't explain a factor of 2 really...
09:16 * jnthn is gonna be muchly distracted for much of the day with $dayjob things...
09:20 Heather raiph thanks
09:20 raiph yw
09:21 nwc10 jnthn: it's only fair that you give other people the chance to break stuff. :-)
09:21 kresike joined #perl6
09:21 kresike hello all you happy and/or unhappy perl6 people
09:22 Heather hello
09:28 gootle joined #perl6
09:29 labster moritz++ for the containers documentation.
09:30 labster In meteorology, parcels of air are very mutable in size, so your documentation cleared things up for me.
09:37 dakkar joined #perl6
09:40 lumi_ joined #perl6
09:47 moritz let me guess, immutable stuff in meteorology is quite boring :-)
09:50 * arnsholt hacks nqp::list to return NQPArray and sees what happens
09:50 * FROGGS .oO( BOOM? )
09:51 arnsholt Probably. But first I have to do it right =D
09:51 FROGGS :o)
09:52 FROGGS arnsholt: we get an RPMCA right now, right?
09:53 arnsholt Yeah
09:54 Heather suggest me what is better to do: recode lots of stuff and add some complex confustion to separate bin prefix and lib prefix to make bin to be in default /usr/bin and libs in parrot folder OR make parrot's bin folder visible as bin folder (that will be weird I think) OR in /ust/bin folder make wrappers (bash scripts) which will point exact bin files in parrot folder ?
09:54 Heather there is another OR: don't use parrot folder
09:55 Heather but it's also wrong :(
09:56 arnsholt FROGGS: But there's also nqp::qlist, which gives you a QRPA (which is a bit different)
09:56 FROGGS hmmm, never seen/used it
09:56 hoelzro when I return two hashes as such: return %server, %client
09:57 hoelzro do they automatically get flattened?
09:58 hoelzro if so, how do I prevent that?
10:01 jnthn .item them is the easy way
10:02 hoelzro so return ( %server.item, %client.item )?
10:02 lumi_ joined #perl6
10:02 labster moritz: well, topography can be immutable (at least on meteorological timescales) and still have interesting effects.  But yes, mostly everything else interesting changes.  Even our version of the ideal gas "constant" changes, because it includes the composition of air and thus changes with water vapor concentration.
10:03 tadzik hoelzro: or just have them in scalar containers
10:03 tadzik like $server, $client
10:03 hoelzro I see
10:03 labster night everyone
10:03 tadzik they'll work exactly the same way, not with all that Perl 5 dereferencing
10:03 raiph goodnight all
10:03 tadzik goodnight
10:16 Heather find dir:<.> works wrong on windows
10:17 tadzik did you mean: find :dir<.>
10:17 Heather yes
10:17 tadzik what do you mean by "works wrong"?
10:17 Heather doesn't find file
10:19 tadzik 1) I cannot help you if I don't know any details
10:19 tadzik 2) I don't have a windows machine to try it anyway :(
10:20 tadzik the most problematic platform I have to deal with, and the only one on which you can't just set up an ssh server to try stuff on
10:21 Heather any suggestions how to debug it
10:21 tadzik I don't even know what doesn't work :(
10:22 tadzik so find :dir<.> doesn't show you the current directory contents?
10:22 tadzik same for :dir('.')?
10:22 Heather find in . returns 0 elems
10:22 tadzik well, does windows even have '.' as a concept? I don't know :)
10:22 Heather it is
10:22 Heather does
10:22 tadzik okay
10:25 jnthn say dir('.') on Windows seems to produce sensible output too
10:26 Heather :r say dir('.);
10:26 Heather :r say dir('.');
10:26 Heather r: say dir('.');
10:26 p6eval rakudo 1c9939: OUTPUT«star src .bashrc nom-inst1 toqast test3.pl .profile t nom-inst2 nom-inst toqast-inst toqast-inst2 examples Makefile .gitignore lib test2.pl .local bin rakudo p1 VERSION simple-tests .perlbrew std obj main.pl .lesshst nom niecza test.pl .cpanm log .bash_logout run T…
10:27 Heather and I can see nothing on windows
10:27 tadzik r: given open('TEST', :w) { .say('restricted mode broken?'); .close }; say 'alive'
10:27 p6eval rakudo 1c9939: OUTPUT«open is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting:2␤  in sub open at src/RESTRICTED.setting:5␤  in block  at /tmp/ojvvzEq2ll:1␤␤»
10:27 Heather jnthn do you have correct output?
10:27 tadzik whew
10:28 moritz note that dir() returns IO::Path objects, which might not deal with windows paths correctly
10:28 lumi_ joined #perl6
10:28 tadzik oh, /
10:28 tadzik but well, it should return something anyway
10:29 Heather r: given open('TEST', :r) { say .lines; .close };
10:29 p6eval rakudo 1c9939: OUTPUT«open is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting:2␤  in sub open at src/RESTRICTED.setting:5␤  in block  at /tmp/BS_piG5gFc:1␤␤»
10:30 Heather moritz and what windows should use instead of dir? :S
10:30 tadzik Heather: does File::Find pass its unit test on windows for you?
10:30 tadzik If yes, can you add a test that doesn't pass?
10:30 Heather r: say dir('\')
10:30 p6eval rakudo 1c9939: OUTPUT«[31m===[0mSORRY![31m===[0m�Unable to parse expression in single quotes; couldn't find final "'"�at /tmp/ag9RifGzhL:1�------> [32msay dir('\')[33m�[31m<EOL>[0m�    expecting any of:�        argument list�        prefix or term�        prefix or meta-prefix� …
10:30 Heather r: say dir('\\')
10:30 p6eval rakudo 1c9939: OUTPUT«Failed to get the directory contents of '\': readdir failed: No such file or directory␤  in block  at src/gen/CORE.setting:7917␤  in sub dir at src/gen/CORE.setting:7913␤  in block  at /tmp/ntRjSenfDP:1␤␤»
10:31 Heather tadzik how to run them w/o ufo? :S
10:32 Heather prove?
10:32 tadzik prove -e 'perl6 -Ilib' -r t/
10:32 tadzik or parrot-prove
10:33 hoelzro let's say I have a superclass that ACCEPTs all Str objects(but nothing else), and I want to refine what's accepted in a subclass. How can I get Perl6 to prefer the child's multimethod?
10:33 hoelzro (example here: https://gist.github.com/hoelzro/5160326)
10:33 domidumont joined #perl6
10:33 Heather "load_bytecode" couldn't find file 'TAP/Harness.pbc'
10:33 tadzik ok, just regular prove then
10:34 Heather tadzik no such exe file
10:34 tadzik /o\
10:34 tadzik Heather: perl6 -Ilib t/01-file-find.t?
10:34 tadzik or whatever this file is named
10:36 Heather Unexpected named parameter 'recursive' passed :D
10:36 tadzik you broke that! :P
10:36 Heather not
10:36 Heather in 'File::Find::find' at line 15:C:\Rakudo\lib\parrot\2.6.0\languages\perl6\lib/File/Find.pm
10:36 Heather it's wrong lib )
10:36 tadzik 2.6.0!?
10:37 Heather yes... that's how it finds it ... it's included
10:37 tadzik okay, I have to attend to dayjob now
10:37 Heather I was looking for magic and there is no magic )
10:38 Heather tadzik but -Ilib fails :S
10:38 tadzik too old Rakudo I guess
10:38 Heather tadzik should I rebuild it from sources :S
10:39 tadzik I suppose so. Or just install a newer .msi
10:39 Heather tadzik it's last one -_-'
10:39 Heather afaik
10:39 tadzik I'm quite sure it's not
10:40 Heather ah... you're right...
10:40 Heather weird what brings me to get that old version :S
10:40 hoelzro anyone? is there a way to override a parent's multi method?
10:45 moritz if you supply a multi with the same signature in a child class, it binds tighter than the parent's multi method
10:45 moritz (becuase the invocant has a tighter type constraint)
10:45 moritz is that you what you mean by "override"?
10:46 hoelzro yeah
10:46 hoelzro but I'm getting an ambiguity error
10:46 moritz then you're doing it wrong :-)
10:46 hoelzro I guess so =/
10:46 * hoelzro thinks on it
10:47 moritz so, maybe show us what you do
10:47 * moritz -> lunch, might look later
10:47 hoelzro I'll demonstrate after I've tried some more stuff
10:47 arnsholt hoelzro: Have you tried removing the invocant parameters from the code?
10:47 arnsholt I don't think you need them ATM
10:47 * hoelzro tries
10:48 hoelzro well, I only want ACCEPT to work if I'm doing $str ~~ IssueState
10:48 hoelzro I *could* do return False unless self.defined
10:48 hoelzro but I like multi methods =)
10:48 jnthn Heather: Yes, perl6 -e "say(dir('.'))" gives me what I expect
10:49 hoelzro hmm, removing the invocants fixes it
10:49 Heather jnthn it works with newer rakudo
10:50 Heather I was using really old build
10:50 jnthn Heather: ah!
10:50 Heather yes, my fault
10:50 jnthn hoelzro: What multi are you writing?
10:50 arnsholt https://gist.github.com/hoelzro/5160326
10:50 hoelzro jnthn: ^
10:50 hoelzro (thanks arnsholt)
10:51 hoelzro hmm
10:51 hoelzro my standalone example behaves differently than my script
10:52 lumi_ joined #perl6
10:53 jnthn Any:U $class:
10:53 jnthn That looks wrong
10:53 hoelzro critique on Perl 6 style is welcome =)
10:53 hoelzro what exactly is wrong about it?
10:53 jnthn Should be IssueProperty:U $class: or so
10:53 jnthn You're specifying the *invocant* type as Any
10:54 jnthn Which means you're saying "this is typed as if it was declared in Any"
10:54 hoelzro oh, I see
10:54 hoelzro that makes sense
10:54 jnthn So that's why you'll get a conflict :)
10:54 hoelzro ah!
10:54 hoelzro thanks, jnthn
10:54 arnsholt Shouldn't the subclass method still be more specific?
10:54 hoelzro that was my next question =)
10:59 moritz normally, subclass methods are more specific because the invocant type is more specific
10:59 moritz if you override that, you're out of luck
10:59 hoelzro I'm still not sure why (IssueProperty : , Mu *%_) and (Any:U $class: Str , Mu *%_) are ambiguous
11:00 hoelzro hmm
11:00 hoelzro that doesn't look right...
11:01 jnthn arnsholt: It's the invocant type that *makes* it more specific.
11:01 hoelzro even if the invocant type is Any:U?
11:01 arnsholt And Any is more specific than the subclass?
11:01 jnthn Multi method dispatch works as follows
11:02 FROGGS jnthn: did you recognized the slowdown of rakudo since yesterday?
11:02 jnthn When you write a multi in a class, it looks up the inheritance tree to see if any proto exists above
11:02 jnthn If not, it makes one
11:02 jnthn If yes, it clones it
11:02 jnthn It then adds your candidates
11:02 jnthn So what's in the methods table is always a proto
11:02 jnthn From then on, everything works *exactly* like multi-sub dispatch
11:03 jnthn The method dispatch is just about finding the right candidate list
11:03 jnthn FROGGS: Um, I know my *branch* is slow but I didn't merge that
11:04 jnthn FROGGS: Did it get slower in nom too?
11:04 jnthn If so maybe my multi changes aren't to blame
11:05 swarley- joined #perl6
11:05 jnthn lunch, bbiab
11:05 hoelzro ok, I've updated my example: https://gist.github.com/hoelzro/5160326
11:05 hoelzro *this* actually fails
11:06 hoelzro I was interpreting the error incorrectly
11:06 hoelzro .oO(Perl 6 wishlist: show me the source location of conflicting multi method definitions)
11:07 swarley| joined #perl6
11:07 FROGGS jnthn: yes, nom is about 40% slower
11:11 lumi_ joined #perl6
11:14 dalek Perlito: ba5acc1 | (Flavio S. Glock)++ | TODO-perlito5:
11:14 dalek Perlito: Perlito5 - parser TODO - add additional variants of "for"
11:14 dalek Perlito: review: https://github.com/fglock/Perlito/commit/ba5acc12c4
11:16 swarley- joined #perl6
11:23 FROGGS jnthn: it is up to 80% slower, stage parse took 199s right now, before it was about 104s
11:23 FROGGS I have nothing else running what can eat cpu
11:24 FROGGS ... and no local changes
11:25 arnsholt FROGGS: Maybe you could bisect and see if it can be traced back to a single commit?
11:25 arnsholt (If you have the time)
11:34 lumi_ joined #perl6
11:47 Heather tadzik should I add https://github.com/Cynede/ignore to META.list ?
11:47 FROGGS arnsholt: I will do it this evening
11:50 tadzik Heather: does it install correctly with panda?
11:51 tadzik if yes, then I don't see a reason why not :)
11:51 tadzik Heather: any particular reason why did you put a submodule there?
11:51 Heather tadzik I'm not finished panda package ) I need to add  /usr/lib/parrot/5.1.0/languages/perl6/site/bin to PATH to check )
11:52 Heather ok I can run it directly...
11:52 tadzik just try 'panda install .' to verify that META.info is correct and all that
11:53 Heather tadzik so to use it as standalone package but I should remove it now I guess because it's standard lib >__< suddenly
11:54 tadzik huh,. what? :)
11:54 tadzik ah, the submodule
11:54 tadzik well, no reason to bundle dependencies with modules, panda resolves that itself
11:54 tadzik but it's not a Standard Lib in any way, now
11:55 Heather ah ok
11:57 Heather tadzik I should run panda from root right?
11:59 lumi_ joined #perl6
11:59 Heather so...
11:59 Heather tadzik it says ==> Successfully installed ignore  but I don't know where :D
12:00 tadzik there should be an 'ignore' script in the same place that you have panda
12:01 Heather tadzik there is no
12:03 Heather tadzik I will try to remove ignore installed with ufo and locate it after panda
12:06 jnthn FROGGS: Odd...would be good to know which commit did it.
12:07 Heather tadzik omg I found it -_-'
12:07 Heather tadzik in /root/.perl6/2013.02/bin/ignore
12:08 arnsholt jnthn: I've managed to make nqp::list create NQPArrays, so now I just (hah!) have to track down all the places things go wrong =)
12:09 Heather tadzik is it designed only for enduser?
12:10 jnthn arnsholt: nice :)
12:13 arnsholt I'm a bit stumped as to why the error is "Can only use repr_instance_of on a SixModelObject", but I have to do dayjobby things anyways, so I'll leave that for later =)
12:13 jnthn yeah, I'm $dayjobbin' at the moment too
12:14 jnthn Sleepily, after too much food at buffet lunch...
12:14 Heather tadzik but I found own fail in panda fork
12:14 arnsholt Buffets are dangerous that way =)
12:17 dalek nqp/vmarray-list: 0b76d55 | (Arne Skjærholt)++ | src/QAST/Operations.nqp:
12:17 dalek nqp/vmarray-list: Make nqp::list create NQPArrays rather than RPAs.
12:17 dalek nqp/vmarray-list:
12:17 dalek nqp/vmarray-list: Unfortunately this means the self-compilation breaks, since some places rely
12:17 dalek nqp/vmarray-list: on nqp::list being an RPA. Fixing that remains to be done.
12:17 dalek nqp/vmarray-list: review: https://github.com/perl6/nqp/commit/0b76d5528c
12:18 lumi_ joined #perl6
12:18 jnthn arnsholt: nqp::islist is one thing that'll need an update. :)
12:20 arnsholt Oooooh, good point
12:22 arnsholt That might explain the code getting confused and assumptions going wrong
12:27 Liz_ joined #perl6
12:28 dalek Perlito: f68d4e6 | (Flavio S. Glock)++ | / (3 files):
12:28 dalek Perlito: Perlito5 - js - fix scope for "for" variable
12:28 dalek Perlito: review: https://github.com/fglock/Perlito/commit/f68d4e6611
12:32 Heather tadzik I will need your help in future.
12:32 Heather tadzik to implement panda in package manger I need to make it possible to work for all users
12:32 snuffles joined #perl6
12:34 Heather tadzik if I understand correct it's not designed for it currently.
12:36 lumi_ joined #perl6
12:36 FROGGS jnthn / arnsholt: false alarm
12:42 jnthn FROGGS: Oh?
12:42 jnthn FROGGS: No performance regression in nom branch after all?
12:42 FROGGS jnthn: ya, I believe a java process in background was a bit hungry
12:42 FROGGS jnthn: no, everything fine with current nom HEAD
12:43 FROGGS jnthn: you are awake now? :P
12:45 snuffles joined #perl6
12:46 jnthn "awake" is such a strong word... :P
12:47 FROGGS **g
12:48 * jnthn will see if he can get to the bottom of why md-nqp is a bunch slower this evening.
12:49 FROGGS .oO( bikini bottom of slowness? )
12:49 tadzik that sounds like a Diablo weapon
12:49 tadzik or armor, maybe
12:50 FROGGS tadzik: a bit, ya
12:50 timotimo_ maybe more like a Munchkin equip.
12:50 FROGGS "Shiny bikini bottom of slowness" - a Diablo II unique item
12:52 tadzik timotimo_: oh yeah :)
12:52 FROGGS (Diablo II)++
12:54 lumi_ joined #perl6
13:02 dalek ecosystem: 3a4efee | â„‹eatÑ’er++ | META.list:
13:02 dalek ecosystem: ignore util to META.list
13:02 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/3a4efeedf5
13:02 dalek ecosystem: 461c99f | tadzik++ | META.list:
13:02 dalek ecosystem: Merge pull request #22 from Cynede/master
13:02 dalek ecosystem:
13:02 dalek ecosystem: ignore util to META.list
13:02 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/461c99f5cc
13:06 fhelmberger joined #perl6
13:06 bluescreen10 joined #perl6
13:08 timotimo_ .u â„‹Ñ’
13:08 yoleaux U+0452 CYRILLIC SMALL LETTER DJE [Ll] (Ñ’)
13:08 yoleaux U+210B SCRIPT CAPITAL H [Lu] (â„‹)
13:08 timotimo_ interesting
13:08 tadzik yoleaux: tell timotimo_ test
13:08 tadzik :(
13:09 hoelzro did anyone look at my updated gist wrt. multi methods?
13:11 shinobicl joined #perl6
13:11 * [Coke] argle bargle coffee bargles.
13:12 lizmat joined #perl6
13:14 lumi_ joined #perl6
13:17 nwc10 [Coke]: I don't think that my t/spec/S32-exceptions/misc.rakudo failure is in that gist you gave
13:17 nwc10 (Although I don't really understand the format of that gist)
13:18 nwc10 in that, the t/spec/S32-exceptions/misc.rakudo failure is a runtime abort before all the tests have run. Implied, a bunch of later tests failed, because they never ran
13:21 timotimo that gist doesn't seem to be in my lastlog, can i see it?
13:22 nwc10 mmm, was this technically a gist? This URL: https://github.com/coke/perl6-roast-data/blob/master/rakudo_summary.out#L2419
13:22 timotimo oh. no, not really :)
13:22 * nwc10 is not totally awake, with it, or anything
13:23 timotimo i see no fails for exceptions/misc.rakudo in there
13:23 [Coke] it's the output of running t/spec/*mumble, test summary*
13:24 [Coke] (that's the output from the daily run of spec tests on feather)
13:25 timotimo this here channel is the first one where i actually saw "mumble" used in text form to mark places where the author didn't know the exacts. interesting
13:33 lumi_ joined #perl6
13:50 skids joined #perl6
13:51 lumi_ joined #perl6
13:57 xinming joined #perl6
14:01 SmokeMachine joined #perl6
14:04 Liz joined #perl6
14:05 hoelzro latest adventure in perl 6 land: I wrote a script to process IRC logs from irclog.perlgeek.de
14:05 hoelzro the whole thing takes 3 seconds, but when I say each message, it takes 20
14:05 snuffles joined #perl6
14:07 sftp joined #perl6
14:09 lumi_ joined #perl6
14:12 PacoAir joined #perl6
14:17 SmokeMachine joined #perl6
14:21 kaare__ joined #perl6
14:22 Psyche^ joined #perl6
14:24 kaleem joined #perl6
14:28 lumi_ joined #perl6
14:32 xilo joined #perl6
14:36 xilo joined #perl6
14:41 census joined #perl6
14:43 arlinius joined #perl6
14:44 lumi_ joined #perl6
14:46 [Coke] wonder if we're not getting buffered IO or something.
14:48 arnsholt I'm pretty sure Parrot buffers IO
14:48 arnsholt At least I get lost output when I trigger segfaults in NQP =)
14:59 hoelzro now that it's quiet here, I'll try asking my multi method question again =)
14:59 hoelzro https://gist.github.com/hoelzro/5160326
15:00 hoelzro here, MAIN complains of an ambiguity
15:00 hoelzro and I don't understand why
15:00 jnthn Because the two candidates are tied.
15:00 jnthn Imagine you have types S and T where S ~~ T
15:00 lumi_ joined #perl6
15:00 jnthn :(S, T) and :(T, S) would be tied
15:00 jnthn Since there's no way to say one is narrower than the other.
15:01 jnthn This is the situation you've created.
15:01 jnthn But with a third type involved.
15:01 hoelzro multi method ACCEPTS($) # <- isn't the param here Any?
15:01 hoelzro oh, you know, I think I see it now
15:01 jnthn Yes, but the invocant is of type IssueProperty
15:01 hoelzro the first one is (IssueProperty, Any)
15:01 jnthn Str ~~ Any, but Any !~~ IssueProperty
15:01 hoelzro the second is (Any, Str)
15:01 jnthn Right.
15:01 hoelzro ooooooh
15:01 hoelzro thanks for pointing that out, jnthn !
15:03 jnthn Should you want to see how the sorting works, you don't need to read it in C any more; the md-nqp branch has it ported to (hopefully more accessible) NQP. :)
15:03 jnthn Or the spec describes it in words
15:03 brrt joined #perl6
15:03 hoelzro \o/
15:03 hoelzro does that bring a performance hit with it?
15:04 djanatyn !won ogwr
15:04 djanatyn Errm, my bad :)
15:04 hoelzro sadly, I think I'm still at the level where my C > my NQP ;)
15:09 jnthn hoelzro: Yes, but in NQP the hit was very small. I need to work out why it is worse in Rakudo.
15:09 hoelzro hmm
15:09 hoelzro interesting
15:09 jnthn hoelzro: Most multi-dispatches don't actually go through the full dispatch process.
15:09 hoelzro caching, I assume?
15:09 jnthn hoelzro: Those that are typed/arity determined hit a cache.
15:09 jnthn And the cache is in C.
15:09 hoelzro ah ha
15:09 jnthn Which should hide the cost.
15:09 hoelzro I wish I knew enough of the internals to help with profiling/optimization
15:10 hoelzro these last few days playing around have been really fun, but the speed is drag (at times)
15:10 hoelzro some tasks are more than fast enough for me
15:10 hoelzro but others are *really* slow
15:10 TimToady how hard do you wish it?  :)
15:10 hoelzro heh
15:10 jnthn The re-writing into NQP is to help make it easier to port Rakudo to hopefully faster places :)
15:10 colomon rakudo read a 28 meg file on my new Linux box! \o/
15:10 hoelzro I wish I could find the spare time to learn the internals well enough to help with profiling/optimization
15:11 fhelmberger joined #perl6
15:11 jnthn My only benchmark so far is "the spectests are slower"... I wonder if it's because the candidate sorting is now a bunch slower and we sort on first call.
15:12 jnthn There's no reason we can't now just sort at CHECK time.
15:12 jnthn And then serialize the result.
15:14 jnthn Which we should do for correctness anyway, since the spec says this is when circularities should be reported... :)
15:16 moritz it's kinda amazing what you can use serialization for
15:16 moritz I mean, all sorts of stuff depends on it
15:16 moritz which you mostly notice when it's missing :-)
15:19 lumi_ joined #perl6
15:21 jnthn Yes, which makes its low bus number somewhat worrying.
15:23 timotimo is it very complicated? a lot of code?
15:24 jnthn Sort of, and not really considering what it's doing.
15:24 timotimo i only have a slight idea about how serialisation ought to work, but i haven't actually done any serialisation coding aside from simple things like serialising a tree of lists and hashes into something like json
15:24 jnthn Well, the places it gets really icky are with packages.
15:25 jnthn They're not really pure enough.
15:25 jnthn augment is similarly tricky
15:25 jnthn Rakudo handles it...to a point.
15:26 jnthn Most of the "precompilation breaks X" boil down to such impurities.
15:34 TimToady linking has always been the problem child of separate compilation, even with bondage languages :)
15:34 lumi_ joined #perl6
15:35 jnthn Yeah. Linking can basically become merging.
15:36 TimToady the known problems go back all the way to Fortan common :)
15:37 TimToady which is, actually, a better name for it than "global"
15:37 jnthn Rakudo handles it by having a write barrier on objects owned by a serialization context. If you do stuff to them while compiling some other compilation unit, then that compilation unit "repossesses" the object and saves its version.
15:38 TimToady maybe we should rename GLOBAL to COMMON to attract all the old Fortran programmers :)
15:38 jnthn If two modules you load both want to do that, it can now detect it and give them to a merger.
15:38 jnthn The merger can either do something about it (it knows how to with Stash) or throw its hands up and say "no, you can't use these two together"
15:39 pmichaud good morning, #perl6
15:39 jnthn At the moment it kinda doesn't do the second of those.
15:39 moritz good am, pm
15:39 jnthn o/ pmichaud
15:39 TimToady ss/its hands //  :)
15:39 jnthn :D
15:46 LlamaRider joined #perl6
15:48 TimToady wow, that was a conversation stopper...
15:50 lumi_ joined #perl6
15:54 LlamaRider o/ #perl6
16:05 donaldh joined #perl6
16:06 lumi_ joined #perl6
16:06 donaldh jnthn: in nqp-jvm where do the compilation unit (i.e. Java class) names get generated?
16:07 donaldh jnthn: I want to add a prefix to see if it resolves an issue I am having with ASM.
16:09 pmichaud (conversation stopper)  I suspect it was me.  Conversation often seems to drop when I say hello.  :)
16:11 nwc10 you could pretend to be away from keyboard
16:14 kresike bye folks
16:14 diakopter donaldh: well it originally comes from the nqp compiler
16:14 jnthn donaldh: nqp-jvm-cc.nqp
16:15 jnthn donaldh: Or if you're in the self-hosted, in nqp-src/NQPHLL.pm
16:16 donaldh jnthn: yes, in self-hosted.
16:17 jnthn donaldh: there's a command line option to override it
16:17 jnthn donaldh: --javaclass iirc
16:18 donaldh jnthn: it's the self-hosted generated ids that are a problem.
16:19 donaldh will dig into NQPHLL later.
16:19 donaldh afk
16:19 donaldh thx
16:20 jnthn donaldh: https://github.com/jnthn/nqp-jvm-prep/blob/master/nqp-src/NQPHLL.pm#L905
16:20 jnthn oops, he left
16:21 brrt left #perl6
16:22 lumi_ joined #perl6
16:24 FROGGS joined #perl6
16:24 crab2313 joined #perl6
16:24 FROGGS jnthn: how can I tell nqp::getcomp('QRegex::P6Regex').compile("a+b") to ignore case ?
16:26 jnthn FROGGS: Hm...guess you set up a %*RX, though I'm not sure we ever invoke it quite like that anywhere other than in the qregex tests
16:27 jnthn What are you doing, ooc?
16:29 FROGGS fixing INTERPOLATE
16:29 FROGGS ... to not using an eval
16:30 jnthn You can't do it this way
16:30 jnthn You'll use the wrong language.
16:30 timotimo que?
16:31 timotimo ¿Qué?, actually
16:31 jnthn Both NQP and Rakudo derive from QRegex::P6Regex to add things.
16:31 FROGGS jnthn: I need Perl6::RegexGrammar or something like that?
16:31 jnthn Well, but that ain't really registered as a compiler, but something like that, yes.
16:31 jnthn I think you may need a method in Perl6::Compiler for it.
16:32 FROGGS okay...
16:32 jnthn But that's still kinda...interesting. :)
16:32 FROGGS see ya later, will read backlog
16:32 jnthn It'll need some care to get the lexical scope right...
16:32 jnthn It's kinda like you want to do whta eval does
16:33 jnthn Except somehow tell it to go straight into the regex parser, not into comp_unit.
16:33 pmichaud afk, not pretending
16:33 jnthn Well
16:33 jnthn not into statementlist
16:38 lumi_ joined #perl6
16:43 domidumont joined #perl6
16:45 mattp_ jnthn: when are you planning to make a jvm blog update, out of curiosity?
16:46 mattp_ i find your status posts interesting :)
16:49 jnthn mattp_: I have a half written one, I'll try and get around to it soon :)
16:49 jnthn Had a lot of teaching/$dayjob stuff to take care of these last couple of weeks...
16:51 jnthn Talking of which...time for decommute &
16:54 obra left #perl6
16:57 lumi_ joined #perl6
17:02 ggoebel_ joined #perl6
17:08 skids joined #perl6
17:10 thou joined #perl6
17:14 spider-mario joined #perl6
17:15 SunilJoshi joined #perl6
17:18 davidagain joined #perl6
17:19 snearch joined #perl6
17:20 lumi_ joined #perl6
17:24 colomon current STEP file read is up to 17gig memory and 5 hours processing time... so far...
17:25 wk joined #perl6
17:27 raiph colomon: is that still the same run you started a day or so ago?
17:27 colomon raiph: no and yes
17:28 raiph heh
17:28 colomon I ended up using a bash script so that each STEP file gets its own run of rakudo
17:29 raiph how big is the STEP file you're currently processing?
17:29 colomon I also stopped the bash script for a few hours yesterday, then took the already finished ones off the to-do list and started it again.
17:29 colomon good question
17:30 colomon 29,809,774 bytes
17:31 davidagain should <<+>> work the same as (weird-double-angle-character)+(other-weird-double-angle-character)?
17:32 timotimo «+»
17:32 timotimo it should, yeah
17:32 davidagain yeah, that
17:32 davidagain hmm, ok, then I'm doing something else wrong
17:33 timotimo would you like to paste something?
17:33 timotimo i was wondering if >>. is actually the same thing as >>+ and such
17:34 timotimo r: say (1, 2, 3, 4) >>+ 10
17:34 p6eval rakudo 1c9939: OUTPUT«[31m===[0mSORRY![31m===[0m�Missing << or >>�at /tmp/9PW3FZNzNr:1�------> [32msay (1, 2, 3, 4) >>+[33m�[31m 10[0m�    expecting any of:�        postfix�        infix stopper�        infix or meta-infix�»
17:34 timotimo apparently it's something different
17:35 davidagain I'm just trying out p6 again
17:35 davidagain getting my feet under me
17:35 timotimo i see
17:36 Chillance joined #perl6
17:37 moritz timotimo: the difference between >>. and >>+<< is that the former has data only on one side
17:37 moritz and thus only one dobule-angle arrow
17:37 davidagain BTW, when I go to http://www.perlfoundation.org/perl6/index.cgi and click on Perl6 documentation (http://www.perlfoundation.org/perl6/index.cgi?documentation), then Perl6 tutorial (http://www.perlfoundation.org/perl6/index.cgi?perl_6_tutorial), then chapter 3 (http://www.perlfoundation.org/perl6/index.cgi?perl_6_tutorial_part_3)
17:37 davidagain I get a page in German
17:37 davidagain is there a tutorial in English?
17:38 timotimo moritz: oh, so with a postfix operator, i'd be able to do the same thing?
17:38 moritz davidagain: start from http://www.perl6.org/documentation/ instead of from the wiki
17:38 moritz timotimo: I think so, yes
17:39 timotimo r: sub postfix:<!> { [*] 1..$^a }; say (1, 2, 3, 4)>>!
17:39 p6eval rakudo 1c9939: OUTPUT«1 2 6 24␤»
17:39 timotimo apparently! that's pretty cool
17:39 davidagain moritz: thanks.  FYI, if you just Google perl6 or perl6 tutorial, you land on the German page
17:39 moritz timotimo: I was just about to type the exact same example :-)
17:39 moritz davidagain: do you happen to have a hl=de in the google URL?
17:40 davidagain nope
17:40 timotimo :D
17:41 davidagain alright, starting from  http://www.perl6.org/documentation/ and clicking on "perl6 tutorials" leads me to a GitHub page (https://github.com/perlpilot/perl6-docs)
17:41 davidagain am I expected to download the tutorials?
17:42 moritz you can just read them on github
17:42 davidagain that's not very user-friendly
17:42 davidagain and the most recent changes are 2+ years ago
17:42 moritz for example https://github.com/perlpilot/perl6-docs/blob/master/intro/p6-regex-intro.pod
17:42 davidagain my understanding is that Perl6 has changed significantly over that time
17:42 moritz davidagain: you're very welcome to provide a more user-friendly interface
17:42 census joined #perl6
17:43 davidagain I'm welcome to do most anything, I imagine
17:43 davidagain but I'm your audience
17:43 davidagain a guy who actually wants to use p6 and not wait around
17:43 moritz we know that the documentation situation isn't good. Which is why i started doc.perl6.org
17:43 davidagain and ... you're turning me away
17:43 moritz but there's just finit amount of time and energy in each of us
17:44 davidagain understood.  so maybe my best strategy is to continue waiting.
17:45 davidagain doc.perl6.org looks like a decent start at a reference work
17:45 lumi_ joined #perl6
17:45 davidagain which is helpful once one has got his head around the language
17:45 davidagain at the moment, i'm looking for learning materials
17:45 moritz so, have you tried the book?
17:46 davidagain I wasn't aware there was a book, no.
17:46 raiph davidagain: googles for perl 6 mostly catch a decade of old/bad information
17:46 raiph davidagain: fwiw i created a custom google search: http://tinyurl.com/perl6now
17:46 davidagain I just started looking at this again
17:46 moritz davidagain: the very first entry on http://www.perl6.org/documentation/
17:46 timotimo http://doc.perl6.org/language/classtut - the beginning to that looks weird, why is the code separated in weird places?
17:46 moritz which has a link to https://github.com/downloads/perl6/book/2012.05.23.a4.pdf
17:47 davidagain moritz: if you're referring to "Perl 6 and Parrot Essentials, Second Edition (O'Reilly book) (2004)" that says 2004
17:47 davidagain if not, then I'm not seeing a big obvious sign
17:47 timotimo looks like lots of stuff is rendered wrong
17:47 davidagain but leaving that aside - I'd prefer something more bite-sized
17:47 davidagain so I can get bootstrapped into using the REPL
17:47 moritz davidagain: the very first entry in the "For newcomers" box
17:47 diakopter timotimo: yeah; you're right
17:47 davidagain and then be more productive with deep material like a book
17:47 moritz davidagain: which has a link to a github repo and a PDF
17:48 raiph davidagain: try searching for whatever (eg tutorial) on the custom google link i gave
17:48 davidagain thanks raiph
17:48 davidagain how current is the book?
17:48 davidagain the github timestamps say years old, but not sure if that's an accurate read
17:49 moritz current enough for nearly all purposes
17:49 moritz including learning Perl 6
17:49 davidagain alright, let me look at that
17:52 davidagain if I search the latest PDF, I only get one hit for "hyper"
17:52 davidagain (I'm looking to quickly understand hyperoperators, at the moment)
17:53 moritz and I thought you looked for introductory material
17:53 timotimo he knows how to program and wants to learn every nice feature of perl6? :)
17:53 moritz http://perlcabal.org/syn/S03.html#Hyper_operators
17:53 davidagain that's reference material, moritz
17:53 davidagain timotimo: you got it
17:54 davidagain I'm an old Perl guy
17:54 davidagain I know a handful of languages well, and how to program in them
17:54 davidagain now I want to use the cool new stuff
17:54 moritz davidagain: have you seen http://perlgeek.de/en/article/5-to-6 already?
17:54 davidagain in particular, hyperops and related features that allow me to be more expressive and concise with my programs
17:55 davidagain nope
17:55 davidagain but I like that there's a entry in the TOC for meta-ops
17:56 davidagain I also saw something like 12 days of Perl6 a while back
17:56 davidagain is that still relevant?
17:56 moritz uhm, link?
17:56 * moritz doesn't know it off hand
17:56 davidagain let me see if I can find it
17:56 davidagain it was years ago
17:56 * colomon was very excited about hyper-ops when he started programming in p6, but these days he uses the X and Z meta-ops more often.
17:56 moritz colomon: same here
17:56 davidagain colomon: what ar ethose?
17:56 moritz cross and zip
17:57 davidagain http://perl6advent.wordpress.com/
17:57 moritz r: say   <a b c> Xxx 1, 2
17:57 colomon rn: say "a".."d" X~ 1..3
17:57 p6eval rakudo 1c9939: OUTPUT«a a a b b b c c c␤»
17:57 p6eval rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3␤»
17:57 raiph hyperops are a type of metaop, right?
17:57 TimToady hypers will come back into their own when we have compact arrays of natives
17:57 colomon raiph: yes
17:57 colomon rn: say "a".."d" Z~ 1..3
17:57 p6eval rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«a1 b2 c3␤»
17:57 TimToady hypers don't go through the list interface
17:57 diakopter moritz: did Heather ask to join the perl6 org
17:57 davidagain r: say + Z 1,2,3
17:57 p6eval rakudo 1c9939: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared name:�    Z used at line 1��»
17:57 davidagain used that wrong
17:57 SamuraiJack_ joined #perl6
17:57 timotimo r: say   <a b c> Xx 1, 2
17:57 p6eval rakudo 1c9939: OUTPUT«a aa b bb c cc␤»
17:58 moritz davidagain: yes, perl6advent is relevant each year again
17:58 davidagain how do you say   something(+) 1,2,3 to get 1+2+3
17:58 colomon r: say [+] 1, 2, 3
17:58 p6eval rakudo 1c9939: OUTPUT«6␤»
17:58 timotimo also interesting:
17:58 spider-mario rn: say "a".."d" «~» 1..3
17:58 colomon davidagain: ^^
17:58 p6eval niecza v24-33-gfc6d5fd: OUTPUT«[31m===[0mSORRY![31m===[0m��".." and ".." are non-associative and require parens at /tmp/O4NTnfUHHB line 1:�------> [32msay "a".."d" «~» 1..[33m�[31m3[0m��Unhandled exception: Check failed��  at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (…
17:58 p6eval ..rakudo 1c9939: OUTPUT«[31m===[0mSORRY![31m===[0m�Operators '..' and '..' are non-associative and require parenthesis�at /tmp/EU8NA5L8jr:1�------> [32msay "a".."d" «~» 1.[33m�[31m.3[0m�    expecting any of:�        dotty method or postfix�»
17:58 timotimo r: say [\+] 1, 2, 3, 4, 5
17:58 p6eval rakudo 1c9939: OUTPUT«1 3 6 10 15␤»
17:58 spider-mario oops.
17:58 spider-mario rn: say ("a".."d") «~» (1..3)
17:58 p6eval rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«a1 b2 c3 d1␤»
17:58 davidagain is ~ concat?
17:58 * TimToady is amused every time he sees factorial defined as [*] 1..$n when 2..$n works just as well and is faster
17:58 colomon davidagain: yes
17:58 colomon string concat
17:59 davidagain ok, this is what I'm looking for
17:59 diakopter moritz: her github id is Cynede
17:59 timotimo TimToady: does it also work properly when you supply $n = 1?
17:59 davidagain TimToady: FYI, your p6 entries on RosettaCode are what got me excited about p6 again
17:59 TimToady nr: say [*] ()
17:59 p6eval rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«1␤»
17:59 TimToady because of that
17:59 timotimo ah, nice.
18:00 davidagain TimToady: identity elements! neat.
18:00 spider-mario r: say [*]
18:00 TimToady nr: say [==]()
18:00 p6eval rakudo 1c9939: OUTPUT«1␤»
18:00 p6eval rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«True␤»
18:00 timotimo is that just multi infix:<*>() { 1 }? or how does that work?
18:01 TimToady yes, it's just defined using the nullary
18:01 timotimo (and how would that work?)
18:01 spider-mario r: say [%]
18:01 p6eval rakudo 1c9939: OUTPUT«No zero-arg meaning for infix:<%>␤  in method gist at src/gen/CORE.setting:10555␤  in sub say at src/gen/CORE.setting:7614␤  in block  at /tmp/FTL1zqvAas:1␤␤»
18:01 spider-mario see? :)
18:02 davidagain r: multi infix:<*>() { 100 } ; say [*] ();
18:02 p6eval rakudo 1c9939: OUTPUT«Ambiguous call to 'infix:<*>'; these signatures all match:␤:($x = { ... })␤:()␤␤  in sub infix:<*> at src/gen/CORE.setting:2866␤  in sub  at src/gen/CORE.setting:13032␤  in block  at /tmp/plrhUl2ahM:1␤␤»
18:02 davidagain hmm, need a local def
18:02 davidagain r: local multi infix:<*>() { 100 } ; say [*] ();
18:02 p6eval rakudo 1c9939: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:�    local used at line 1��»
18:02 davidagain that's now how you spell local, apparently
18:03 TimToady subs are lexical in p6
18:03 spider-mario r: my &infix:<*> = {100}; say [*];
18:03 p6eval rakudo 1c9939: OUTPUT«100␤»
18:03 cognominal joined #perl6
18:03 TimToady but multis will mix in with the core's proto
18:03 lumi_ joined #perl6
18:04 moritz diakopter: do it yourself :-)
18:04 diakopter just did; thx
18:04 moritz diakopter++
18:04 diakopter phenny: inform Heather you're now assimilated
18:04 raiph davidagain: a search for "hyper" using perl6now gives a nice spread of useful results with near zero false positives
18:05 davidagain thanks raiph.  I tried "tutorial" on perl6now, but it didn't improve my results
18:05 davidagain let me try hyper
18:05 timotimo oh wow, perl6now is *old*
18:06 raiph davidagain: did the tutorial search show perl6maven?
18:06 raiph timotimo: huh?
18:06 davidagain nope - but I got it under "hyper"
18:06 davidagain never seen it before
18:06 timotimo 2005/2006
18:06 davidagain the first couple hits for hyper are the advent calendar
18:06 davidagain ... for 2009
18:06 raiph timotimo: hmm. i created it a few months ago...
18:07 timotimo http://perl6now.com/fom-serve/cache/1.html - this?
18:07 raiph davidagain: that's probably good info (i was careful about the sources searched)
18:07 raiph timotimo: ah. no. this: http://tinyurl.com/perl6now
18:08 timotimo ah, ok, neat
18:08 timotimo now.perl6.org might be nice.
18:09 raiph davidagain: the only change related to hypers i'm aware of since 2009 is that, aiui, they don't recurse in to their operands
18:09 moritz not hard to do :-)
18:09 davidagain thanks raiph.
18:09 davidagain just generally concerned with figuring out whether I can trust a specific doc or not
18:10 davidagain if I see a doc a couple years old relating to a language currently under development, I get skittish
18:10 davidagain I was hoping to just be a "user" of p6, not having to dive into the dev side or map out the territory
18:11 moritz http://now.perl6.org/ now redirects to http://tinyurl.com/perl6now
18:11 timotimo cool, moritz :)
18:12 FROGGS joined #perl6
18:13 davidagain hey, neat, KEEP and UNDO
18:13 davidagain you guys have been busy
18:13 raiph davidagain: i'm guessing p6 isn't where it sounds like you want it to be
18:13 timotimo there's an amazing amount of stuff actually implemented in rakudo already
18:13 davidagain raiph: yeah, I'm getting that sense.
18:13 timotimo also, a lot of somewhat important stuff still missing :(
18:16 davidagain I can see p6 being my new favorite language, when it's born
18:16 TimToady it has a strong heartbeat already, and a strong kick too :)
18:16 moritz just needs to learn to walk a bit faster and steadier
18:16 TimToady can't run very fast yet though :)
18:17 raiph davidagain: after following p6 since the start, and mulling what the maturity arc might look like, based on the players, culture, spec, parrot, rakudo, etc., in 2009 I guessed late 2014 as the likely timing of p6 being just about ready for the first of those focused on using first, contributing a distant second.
18:19 davidagain raiph: how are you feeling about that prediction today?
18:20 lumi_ joined #perl6
18:21 davidagain hey, neat, you can plug p6 into Padre
18:22 davidagain let's see if I can get that going
18:22 FROGGS joined #perl6
18:24 jnthn Seems I may be able to pin the spectest time regression in md-nqp down to a startup time regression.
18:24 jnthn The numbers match up
18:25 raiph davidagain: i'm confident it's closer than steven haryanto's 2027 estimate ;)
18:25 raiph (http://blogs.perl.org/users/steven_haryanto/2013/03/dont-wait-for-perl-6-to-build-your-product-on.html)
18:28 timotimo noooo, more negativity :(
18:34 TimToady joined #perl6
18:35 dalek specs: 8efa3ac | (Rob Hoelz)++ | S28-special-names.pod:
18:35 dalek specs: Correct Match.start/Match.end -> Match.from/Match.to
18:35 dalek specs: review: https://github.com/perl6/specs/commit/8efa3ac106
18:37 TimToady joined #perl6
18:38 * TimToady is back; hope you didn't say anything interesting :)
18:38 davidagain aww, that post was depressing
18:39 TimToady non carborundum illigitimi and all that
18:39 lumi_ joined #perl6
18:40 davidagain maybe I'll still take a whack at implementing a mini language in p6
18:40 Liz joined #perl6
18:40 davidagain don't care about perf, just want to get the flavor of the syntax
18:41 davidagain except p6 likes yelling at me and telling me my infixes are stopped
18:41 jnthn Implementing a mini-langauge is probably a pretty good way to learn grammars :)
18:41 davidagain or not stopped
18:41 davidagain or insufficiently stopped
18:41 davidagain dunno
18:41 davidagain jnthn: yeah, that's the idea :)
18:41 davidagain plus, I'd like a language that does the hard parts for me
18:41 davidagain feels like p6 wants to do that
18:43 TimToady see http://rosettacode.org/wiki/Parse_EBNF#Perl_6 for an example parser
18:44 TimToady or STD.pm6 :)
18:44 davidagain TimToady: I'm actually looking at RC right now
18:45 davidagain one thing that sticks out at me: you have comments on the identifier and literal tokens, but they don't seem to be introduced with a comment character
18:45 davidagain what's up with that?
18:46 TimToady they're introduced with a #
18:47 TimToady don't let the highlighting fool you
18:47 TimToady the point of the comments is that highlighter is getting fooled
18:47 davidagain too late
18:47 davidagain ah, I see
18:48 TimToady I think at that point rakudo didn't understand \x notation in a character class, which would be another way to get around it
18:48 FROGGS joined #perl6
18:51 davidagain how do you say $#array?
18:52 TimToady generally you don't, since ranges can exclude the endpoint
18:52 TimToady 0 ..^ @array
18:52 TimToady or ^@array for short
18:52 TimToady but @array.end is the most exact equiv
18:52 davidagain I like ^@array
18:53 TimToady we end up using it all the time
18:53 TimToady well, lots of the time :)
18:53 TimToady sometimes instead we say: for @array.kv -> $index, $value { ... }
18:53 TimToady rather than reindexing inside the loop
18:55 lee__ should [1,2,3].gist look the same as (1,2,3).gist ?
18:55 davidagain wait, you can do kv on @s and %s?
18:55 davidagain neato
18:56 [Coke] r: say [1,2,3].gist ; say (1,2,3).gist
18:56 p6eval rakudo 1c9939: OUTPUT«1 2 3␤1 2 3␤»
18:56 lee__ i was confused because i made @a = [1,2,3]; and the gist was just "1 2 3"
18:57 TimToady lee__: .perl will distinguish those
18:57 TimToady r: my @a = [1,2,3]; say @a.perl
18:57 p6eval rakudo 1c9939: OUTPUT«Array.new([1, 2, 3])␤»
18:58 TimToady n: my @a = [1,2,3]; say @a.perl
18:58 p6eval niecza v24-33-gfc6d5fd: OUTPUT«[[1, 2, 3]].list␤»
18:58 lee__ i see, thanks!
18:58 TimToady I like niecza's use of [] for the outer array better
18:58 lee__ if .gist is meant for human interpretation i think some indication that is an array would be good
18:59 davidagain r: for [1,2,3].kv -> $i, $v { say $i ~ ":" ~ $v }
18:59 p6eval rakudo 1c9939: OUTPUT«0:1␤1:2␤2:3␤»
18:59 TimToady nr: { a => 42 }.perl.say
18:59 p6eval rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«{"a" => 42}␤»
18:59 davidagain r: for [1,2,3].kv -> $i, $v { say [[~]] $i , $v }
18:59 p6eval rakudo 1c9939: OUTPUT«01␤12␤23␤»
18:59 davidagain r: for [1,2,3].kv -> $i, $v { say [[~]] $i , ":", $v }
18:59 p6eval rakudo 1c9939: OUTPUT«0:1␤1:2␤2:3␤»
18:59 davidagain heh
19:00 TimToady the inside [] is a noop
19:00 LlamaRider P5 to P6 -> Porting a method that accepted both %options and a ref $options on input... Should that be a multi with signatures (*@options) and (%options) ? I guess where the % rule comes first.
19:00 davidagain I get confused with <<>> vs []
19:00 davidagain the << looks double to me
19:01 davidagain (I know it's really supposed to be a single glyph, but I can't type it)
19:01 * TimToady always uses «»
19:01 TimToady I'll bet you can :)
19:01 TimToady what is your current environment?
19:01 davidagain 73*F, 25% humidity
19:01 davidagain mostly clean
19:01 TimToady and which OS might you be on?
19:02 davidagain win 7 x64
19:02 TimToady hmm, dunno about that as well
19:02 davidagain it's ALT+gibberish
19:02 davidagain or charmap
19:02 davidagain or a macro, if I felt like it
19:02 TimToady most of us end up defining a compose key
19:03 TimToady some editors like vi have similar bindings
19:03 * colomon taught his text editor that >>[tab] should be »
19:03 davidagain I'm hoping to use Padre
19:03 TimToady maybe ask jnthn++ how he types 'em, since he's on windows
19:03 davidagain or some other GUI crutch
19:04 TimToady thing is, a compose key will work with many different apps
19:04 rindolf joined #perl6
19:04 TimToady and you can type cool things like 73°
19:04 davidagain that's a warm thing
19:05 TimToady not for California, where almost everything is cool :)
19:05 rindolf Hi all.
19:06 * TimToady --> lunch
19:15 kaleidic joined #perl6
19:22 FROGGS joined #perl6
19:23 tadzik hello #perl6
19:26 colomon o/
19:33 colomon r: say .14.Rat.perl
19:33 p6eval rakudo 1c9939: OUTPUT«0.14␤»
19:33 colomon r: say (pi - 3).Rat.perl
19:33 p6eval rakudo 1c9939: OUTPUT«<16/113>␤»
19:33 colomon r: say (pi - 3).Rat(0.01).perl
19:33 p6eval rakudo 1c9939: OUTPUT«<1/7>␤»
19:39 rindolf joined #perl6
19:40 masak ahoyla, #perl6
19:40 masak I got ax'd a question on Twitter. https://gist.github.com/arafatkamaal/5159954
19:40 masak not sure what to reply.
19:41 masak the tl;dr seems to be "can Grammar::Tracer be plugg'd into Perl6::Grammar?"
19:41 masak I don't think it can, 'cus Grammar::Tracer is Perl 6 and Perl6::Grammar is nqp. but I'm not sure.
19:44 jnthn masak: Correct answer. But NQP has some --rxtrace support which sorta outputs similar. Bad news: it kinda bitrat at the point I did some of the changes to keep our languages straight
19:45 masak is it unbitrottable?
19:45 jnthn Yeah
19:48 masak then I believe I'll relay that answer.
19:48 masak thanks.
19:49 unknowndna joined #perl6
19:50 * FROGGS read "<TimToady> generally you don't, since ranges can exclude the endpoint" as "...since regexes can..." and thought there is another piece to implement
19:52 FROGGS btw, that is what you missed pals: http://blogs.perl.org/users/maettu/2013/03/german-perl-workshop-my-day-1.html
19:54 jnthn FROGGS: (another piece to implement) welcome to the life of a Perl 6 implementor... :)
19:54 cognominal joined #perl6
19:54 diakopter masak: in the backlog last night I made a bunches of LTA errors; I would submit them, except I suspect maybe some of them have been reported before. Since you're the expert on that, I thought I'd ask you to take a look
19:54 FROGGS jnthn: hehe, yeah >.<
19:57 masak diakopter: I'll backlog. thanks for the heads-up.
19:58 diakopter masak: here's a fun one:
19:58 diakopter r: $1111111111111111111
19:58 p6eval rakudo 1c9939: OUTPUT«Cannot use negative index -2147483648 on Any␤current instr.: 'throw' pc 334686 (src/gen/CORE.setting.pir:150131) (src/gen/CORE.setting:9331)␤called from Sub 'sink' pc 366805 (src/gen/CORE.setting.pir:162984) (src/gen/CORE.setting:10563)␤called from Sub 'MAIN' pc 38…
19:59 diakopter jnthn: you may giggle too ^^
19:59 diakopter niecza's message is even funnier:
19:59 diakopter n: $1111111111111111111
19:59 p6eval niecza v24-33-gfc6d5fd: OUTPUT«Unhandled exception: weird object in sub_finish Int␤  at /home/p6eval/niecza/src/NieczaBackendDotnet.pm6 line 242 (StaticSub.finish @ 11) ␤  at /home/p6eval/niecza/src/NieczaActions.pm6 line 4257 (NieczaActions.comp_unit @ 15) ␤  at /home/p6eval/niecza/src…
20:01 FROGGS niecza v24-33-gfc6d5fd: OUTPUT«Unhandled exception: you are a weirdo in front of your keyboard at your house␤  at /home/ line 242 (StaticSub.finish @ 11) ␤  at /home/p6eval/niecza/src/NieczaActions.pm6 line 4257 (NieczaActions.comp_unit @ 15) ␤  at /home/p6eval/niecza/src…
20:01 jnthn I see these are submissions to be tagged [WEIRD} :P
20:01 * FROGGS .oO( low hanging weirdo? )
20:01 masak diakopter: hihi
20:02 diakopter wat
20:03 diakopter or is that 'hi' as in 'hee'
20:03 FROGGS I guess that's the sound when you giggle
20:04 diakopter r: $2147483647
20:04 p6eval rakudo 1c9939:  ( no output )
20:04 diakopter r: $2147483648
20:04 p6eval rakudo 1c9939: OUTPUT«Cannot use negative index -2147483648 on Any␤current instr.: 'throw' pc 334686 (src/gen/CORE.setting.pir:150131) (src/gen/CORE.setting:9331)␤called from Sub 'sink' pc 366805 (src/gen/CORE.setting.pir:162984) (src/gen/CORE.setting:10563)␤called from Sub 'MAIN' pc 38…
20:06 * diakopter is enjoying xfinitywifi at wendy's
20:06 masak diakopter: it was 'hihi' as in 呵呵. sorry for the confusion.
20:07 diakopter gee that helps :P
20:07 masak 哈哈
20:08 * masak submits rakudobug
20:09 diakopter masak: conveniently for you, they start at the very top of today's clog
20:11 diakopter :> I might as well reproduce them all here for those who won't view the clog; <cough> jnthn
20:12 diakopter r: class F { also is F; }
20:12 p6eval rakudo 1c9939: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 97799 (src/gen/CORE.setting.pir:46529) (src/gen/CORE.setting:9487)␤called from Sub 'parents' pc 6770 (src/gen/perl6-metamodel.pir:3346) (src/gen/Metamodel.pm:647)␤called from Sub 'compute_mro' pc…
20:12 rindolf joined #perl6
20:12 diakopter r: class ::F { ... }; class F is ::F {  }
20:12 p6eval rakudo 1c9939: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 97799 (src/gen/CORE.setting.pir:46529) (src/gen/CORE.setting:9487)␤called from Sub 'parents' pc 6770 (src/gen/perl6-metamodel.pir:3346) (src/gen/Metamodel.pm:647)␤called from Sub 'compute_mro' pc…
20:12 diakopter r: role F { ... }; class F does F {  }
20:12 p6eval rakudo 1c9939: OUTPUT«===SORRY!===␤Method 'is_composed' not found for invocant of class 'Perl6::Metamodel::ParametricRoleGroupHOW'␤»
20:12 diakopter r: role F { ... }; class G does F {  }
20:12 p6eval rakudo 1c9939: OUTPUT«===SORRY!===␤None of the parametric role variants for 'F' matched the arguments supplied.␤Cannot call ''; none of these signatures match:␤␤»
20:13 diakopter r: class :: { }; ::(::)
20:13 p6eval rakudo 1c9939: OUTPUT«No such symbol 'GLOBALish 7::EXPORT       11::$?PACKAGE   15::::?PACKAGE  19::$_  23::$/  27::$!  39::$=pod       47::!UNIT_MARKER        51'␤current instr.: 'throw' pc 334686 (src/gen/CORE.setting.pir:150131) (src/gen/CORE.setting:9331)␤called from Sub 'sink' pc 366805
20:13 p6eval ..(src/gen/CORE.setti…
20:13 * masak submits rakudobug for 'also is'
20:13 * masak submits rakudobug for 'F is ::F'
20:13 diakopter r: $::
20:13 p6eval rakudo 1c9939: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
20:13 * masak submits rakudobug for 'F does F'
20:13 diakopter r: $/.$/
20:13 p6eval rakudo 1c9939: OUTPUT«No such method 'Any' for invocant of type 'Any'␤  in  at src/gen/BOOTSTRAP.pm:882␤  in any  at src/gen/BOOTSTRAP.pm:879␤  in block  at /tmp/xq8OLEhFeA:1␤␤»
20:13 * masak submits rakudobug for 'G does F'
20:13 jnthn That G does F one is...hm
20:13 diakopter r: ()...()
20:13 * masak submits rakudobug for '::(::)'
20:14 p6eval rakudo 1c9939: OUTPUT«(timeout)»
20:14 jnthn Vaguely accurate in so far as the role isn't considered declared until you're further one.
20:14 diakopter r: say .HOW.new.Capture
20:14 p6eval rakudo 1c9939: OUTPUT«No such method 'has-accessor' for invocant of type 'NQPAttribute'␤  in method Capture at src/gen/CORE.setting:971␤  in block  at /tmp/ed7Za1laA4:1␤␤»
20:14 masak jnthn: I don't understand. is it because of the '...' ?
20:15 masak diakopter: I don't see the problem with the '$/.$/' one.
20:15 jnthn masak: Yeah. But a bunch of those almost certianly wnat to so "no, you can't do a stubbed role"
20:15 masak diakopter: nor with the '()...()' one. it will never smartmatch, so it's infinite.
20:16 diakopter well, me neither; it just looked like something I don't understand
20:16 masak diakopter: I understand it and it's an infinite loop.
20:16 diakopter the prior one
20:16 masak oh, ok.
20:16 masak I just don't see how the prior one is wrong.
20:16 diakopter like I said, me neither
20:16 masak r: Any.new.Any
20:16 p6eval rakudo 1c9939: OUTPUT«No such method 'Any' for invocant of type 'Any'␤  in block  at /tmp/954NWtqmCL:1␤␤»
20:16 jnthn Just 'cus you don't understand it doesn't mean it's a bug :P
20:17 diakopter right.
20:17 masak that's why I'm asking and not submitting it ;)
20:17 diakopter that's why I was asking and not submitting it
20:17 masak we're in some weird kind of triangular agreement.
20:17 moritz if we don't know what the right behavior is, please don't submit bug reports
20:17 diakopter you're a triangle.
20:17 moritz it makes it really hard to close them
20:17 masak moritz: oh no, not you too! :P
20:17 masak now we're a square.
20:18 moritz so they are more of a liability than an asset
20:18 masak moritz: it's funny when you add to the discussion by repeating what three people just agreed on ;)
20:18 moritz \o/
20:18 * moritz didn't backlog at all
20:18 diakopter masak: I think he was referring to ones you submitted, tho
20:18 moritz sorry 'bout that
20:18 diakopter k no
20:19 masak no, those are bugs.
20:19 moritz I'm talking very generally
20:19 masak <jnthn> Just 'cus you don't understand it doesn't mean it's a bug :P
20:19 masak <masak> that's why I'm asking and not submitting it ;)
20:19 masak <diakopter> that's why I was asking and not submitting it
20:19 diakopter so why does $/.$/ turn into Any.new.Any
20:20 jnthn r: say $/
20:20 p6eval rakudo 1c9939: OUTPUT«(Any)␤»
20:20 masak that's why, yes.
20:20 masak r: Any.Any
20:20 p6eval rakudo 1c9939: OUTPUT«No such method 'Any' for invocant of type 'Any'␤  in block  at /tmp/jzejzomQMJ:1␤␤»
20:20 masak probably turns into that, actually.
20:20 diakopter ok, but how is $/ a method name?
20:21 jnthn The $foo.$meth thing
20:21 jnthn Becomes $meth($foo)
20:21 diakopter $_='say'; $_.$_
20:21 diakopter r: $_='say'; $_.$_
20:21 p6eval rakudo 1c9939: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Str'␤  in  at src/gen/BOOTSTRAP.pm:895␤  in any  at src/gen/BOOTSTRAP.pm:879␤  in block  at /tmp/2iDFBZ0RVq:1␤␤»
20:22 diakopter wat.
20:22 jnthn Which in turn complains it doesn't have a postcircumfix:<( )> meaning it's not invokable I guess
20:22 jnthn Don't confuse $foo.$meth with $foo."$meth"()
20:22 diakopter ohhh
20:22 mst mmm ... meth ...
20:23 diakopter r: $_=&say; $_.$_
20:23 p6eval rakudo 1c9939: OUTPUT«sub say() { ... }␤»
20:23 diakopter \o/
20:24 diakopter yeah I'd forgotten all about that method object thing
20:26 kurahaupo joined #perl6
20:26 masak moritz: generally, when you see '* masak submits rakudobug', it's because I think there's an observable that isn't fulfilled
20:26 masak (where 'generally' means 'always, except in perhaps a handful of cases)
20:26 masak '
20:27 diakopter r: say nqp::isconcrete(Cursor.new); &(/a/)(Cursor.new)
20:27 p6eval rakudo 1c9939: OUTPUT«1␤Cannot look up attributes in a type object␤  in any !cursor_start_all at src/stage2/QRegex.nqp:617␤  in regex  at /tmp/4CThy8RaZq:1␤  in block  at /tmp/4CThy8RaZq:1␤␤»
20:28 diakopter [query: wha is the type object]
20:28 diakopter *what
20:28 skids an typed undefined value.
20:29 diakopter right, what's undefined there
20:30 masak r: class A { ... }; class B is A {}; class A { also is B }
20:30 p6eval rakudo 1c9939:  ( no output )
20:30 masak r: class A { ... }; class B is A {}; class A { also is B }; say "alive"
20:30 p6eval rakudo 1c9939: OUTPUT«alive␤»
20:30 masak r: class A { ... }; class B is A {}; class A { also is B }; say A ~~ B; say B ~~ A
20:30 p6eval rakudo 1c9939: OUTPUT«No such method 'ACCEPTS' for invocant of type 'B'␤  in block  at /tmp/lec3O1iu6C:1␤␤»
20:30 jnthn That one is RT'd.
20:30 masak aye.
20:30 masak well, one very close to it.
20:30 jnthn I think I'll fix it by forbidding inheriting from a stub.
20:36 masak yeah.
20:36 masak that's the conservative thing to do, I think.
20:36 diakopter jnthn: but I thought inheriting from a stub was one of the main uses of stubbing, as in cyclical types
20:37 jnthn diakopter: I can't see how it's a main use if it doesn't work :P
20:37 jnthn It's typically used for cyclical usage.
20:37 jnthn You can't have cyclical types. :)
20:37 jnthn If you mean inheritance cycles.
20:38 diakopter well, I meant if one of the links was via an attribute or other type reference in a signature or something
20:38 masak r: class :: { }; ::(::)
20:38 p6eval rakudo 1c9939: OUTPUT«No such symbol 'GLOBALish 7::EXPORT       11::$?PACKAGE   15::::?PACKAGE  19::$_  23::$/  27::$!  39::$=pod       47::!UNIT_MARKER        51'␤current instr.: 'throw' pc 334686 (src/gen/CORE.setting.pir:150131) (src/gen/CORE.setting:9331)␤called from Sub 'sink' pc 366805
20:38 p6eval ..(src/gen/CORE.setti…
20:39 jnthn Sure, that's fine.
20:39 masak diakopter: you deserve some kind of bizzarro prize for coming up with this one.
20:39 dalek rakudo/md-nqp: daabef9 | jnthn++ | src/Perl6/ (4 files):
20:39 dalek rakudo/md-nqp: Sort multi candidates at compile time.
20:39 dalek rakudo/md-nqp:
20:39 dalek rakudo/md-nqp: This is instead of doing so on the first call.
20:39 dalek rakudo/md-nqp: review: https://github.com/rakudo/rakudo/commit/daabef9fd2
20:39 dalek rakudo/md-nqp: 3b9db0b | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
20:39 dalek rakudo/md-nqp: Refactor to avoid some control exception use.
20:39 dalek rakudo/md-nqp: review: https://github.com/rakudo/rakudo/commit/3b9db0bb72
20:39 diakopter masak: actually it's just the latter part
20:39 masak r: ::(::)
20:39 p6eval rakudo 1c9939: OUTPUT«No such symbol 'GLOBALish 7::EXPORT       11::$?PACKAGE   15::::?PACKAGE  19::$_  23::$/  27::$!  39::$=pod       43::!UNIT_MARKER        51'␤current instr.: 'throw' pc 334686 (src/gen/CORE.setting.pir:150131) (src/gen/CORE.setting:9331)␤called from Sub 'sink' pc 366805
20:39 p6eval ..(src/gen/CORE.setti…
20:39 masak so it is.
20:39 diakopter it's not an internal parrot error; it's the stringification of the pseudo-stash
20:39 * masak adds this to the ticket
20:40 jnthn r: ::.Str
20:40 p6eval rakudo 1c9939:  ( no output )
20:40 jnthn r: say ::.Str
20:40 p6eval rakudo 1c9939: OUTPUT«GLOBALish 7 EXPORT        11 $?PACKAGE    15 ::?PACKAGE   19 $_   23 $/   27 $!   39 $=pod        43 !UNIT_MARKER 51␤»
20:40 jnthn eek...what?!
20:40 masak why does it say "No such symbol"?
20:40 diakopter masak: no idea
20:40 masak if it's just a stash, shouldn't it just return Any?
20:40 jnthn masak: ::('wtf')
20:40 jnthn r: ::('wtf')
20:40 p6eval rakudo 1c9939: OUTPUT«No such symbol 'wtf'␤current instr.: 'throw' pc 334686 (src/gen/CORE.setting.pir:150131) (src/gen/CORE.setting:9331)␤called from Sub 'sink' pc 366805 (src/gen/CORE.setting.pir:162984) (src/gen/CORE.setting:10563)␤called from Sub 'MAIN' pc 381 (src/gen/perl6.pir:146…
20:41 jnthn masak: ::(...) != ::<...>
20:41 jnthn r: ::<wtf>
20:41 p6eval rakudo 1c9939:  ( no output )
20:41 masak oh.
20:41 jnthn ::(...) is the thing that goes interpolating
20:41 masak ok, not a bug, then.
20:41 diakopter r: say ::<>
20:41 p6eval rakudo 1c9939: OUTPUT«PseudoStash.new("GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "::?PACKAGE", GLOBAL, "\$_", Any, "\$/", Any, "\$!", Any, "\$=pod", Array.new(), "!UNIT_MARKER", !UNIT_MARKER, )␤»
20:41 * masak unsubmits that one
20:42 jnthn And that's zen hash indexing.
20:42 jnthn So, looks right :)
20:42 diakopter why'd you "eek...what?!"?
20:42 diakopter earlier
20:42 jnthn diakopter: The numbers.
20:42 diakopter oh. what are those anyway
20:43 jnthn That's what I want to know.
20:43 diakopter indexes into the hash's array?
20:43 masak they're what those symbols are sold for at a London auction :P
20:43 jnthn oh...it's a context underneath...is hash indexing returning...
20:44 jnthn Oh, indexing is fine, it's iteration.
20:45 masak diakopter++ # fuzzing
20:46 diakopter r: for :: { say $_.WHAT }
20:46 p6eval rakudo 1c9939: OUTPUT«(Pair)␤(Pair)␤(Pair)␤(Pair)␤(Pair)␤(Pair)␤(Pair)␤(Pair)␤(Pair)␤»
20:46 diakopter r: say ::.values
20:46 p6eval rakudo 1c9939: OUTPUT«7 11 15 19 23 27 39 43 51␤»
20:46 diakopter r: say ::.values
20:46 diakopter r: say ::.values
20:46 p6eval rakudo 1c9939: OUTPUT«7 11 15 19 23 27 39 43 51␤»
20:46 p6eval rakudo 1c9939: OUTPUT«7 11 15 19 23 27 39 43 51␤»
20:50 LlamaRider I need some help with finding docs/examples on writing new methods in P6 classes. Porting P5 idioms is tough otherwise...
20:50 moritz r: my int $x: say ::.values
20:51 LlamaRider and I mean "new" methods
20:51 p6eval rakudo 1c9939: OUTPUT«[31m===[0mSORRY![31m===[0m�Confused�at /tmp/TZHjKQdqCe:1�------> [32mmy int $x:[33m�[31m say ::.values[0m�    expecting any of:�        colon pair�»
20:51 diakopter moritz: this is Windows, not unix
20:52 moritz LlamaRider: http://doc.perl6.org/language/objects#Object+Construction
20:52 masak LlamaRider: http://www.perlgeek.de/blog-en/perl-6/object-construction-and-initialization.html
20:55 LlamaRider thanks moritz++ , masak++ . The second link is especially helpful
20:57 masak yeah, I always like that one.
20:57 masak liked*
20:58 LlamaRider one thing remains unclear. The claim is I can allow arbitrary fields via   self.bless(*, |%options);
20:58 LlamaRider how do I access them after that? Are they $. $! or something else
21:00 masak moritz++ # welcoming pushkar in the backlog :)
21:00 diakopter r: .say ^..^ say 'alive'
21:00 p6eval rakudo 1c9939: OUTPUT«(Any)␤alive␤»
21:01 diakopter wheh
21:01 masak LlamaRider: they must be $.attr vars in the class for that to work.
21:04 masak davidagain: re toy programming language: you might want to check out Yapsi.
21:06 ElDiabolo joined #perl6
21:10 LlamaRider r: class A { has $.key; }; A.new(:key('val')).key.say;
21:10 p6eval rakudo 1c9939: OUTPUT«val␤»
21:11 LlamaRider class B { method new(%opt) { self.bless(*,|%opt); }; }; B.new({"key"=>"val"}).key.say;
21:11 LlamaRider r: class B { method new(%opt) { self.bless(*,|%opt); }; }; B.new({"key"=>"val"}).key.say;
21:11 p6eval rakudo 1c9939: OUTPUT«No such method 'key' for invocant of type 'B'␤  in block  at /tmp/QOmddoc8zB:1␤␤»
21:14 LlamaRider r: class B { has $.key;  method new(%opt) { self.bless(*,|%opt); }; }; B.new({"key"=>"val"}).key.say;
21:14 p6eval rakudo 1c9939: OUTPUT«val␤»
21:14 LlamaRider masak: This leads me to believe they're not exactly the same as $.
21:14 xilo joined #perl6
21:15 LlamaRider Or maybe the difference is only in the getters and setters not being created?
21:17 masak yeah.
21:17 masak no attr, no accessor.
21:17 masak (besides the fact that it also drops the pair on the floor because there's no attr)
21:17 masak this ain't JavaScript. ;)
21:19 LlamaRider but then... how do I access those fields from within methods? Using $. is consistently giving errors.
21:20 LlamaRider but then... how do I access those fields from within methods? Using $. is consistently giving errors.
21:20 LlamaRider argh, again double-posted :/
21:20 FROGGS LlamaRider: you usually use $!key within methods
21:20 * LlamaRider moves IRC to a different workspace
21:20 masak FROGGS: it depends.
21:20 masak FROGGS: I used to consistently do $!attr in methods, but...
21:21 FROGGS only when you declare an attr you do $.key or $!key, no?
21:21 masak FROGGS: ...it depends whether you're taking an "inside view" or an "outside view" of the class.
21:21 LlamaRider r: class B { method new(%opt) { self.bless(*,|%opt); }; method k { $!key.say; } }; B.new({"key"=>"val"}).k;
21:21 p6eval rakudo 1c9939: OUTPUT«[31m===[0mSORRY![31m===[0m�Attribute $!key not declared in class B�at /tmp/7VKbyc4APY:1�------> [32mself.bless(*,|%opt); }; method k { $!key[33m�[31m.say; } }; B.new({"key"=>"val"}).k;[0m�»
21:22 masak r: class A { has $.foo; method show-foo { say $.foo } }; class B is A { method foo { callsame() * 2 } }; B.new.show-foo
21:22 p6eval rakudo 1c9939: OUTPUT«use of uninitialized value of type Str in string context  in method foo at /tmp/nsrgsOzr35:1␤␤use of uninitialized variable  of type Any in numeric context  in method foo at /tmp/nsrgsOzr35:1␤␤0␤»
21:22 masak r: class A { has $.foo = 21; method show-foo { say $.foo } }; class B is A { method foo { callsame() * 2 } }; B.new.show-foo
21:22 p6eval rakudo 1c9939: OUTPUT«42␤»
21:22 masak FROGGS: I believe that sums it up.
21:23 FROGGS since when does that work?
21:23 masak FROGGS: because .show-foo uses $.foo, not $!foo, B can indirectly override its behavior.
21:23 masak FROGGS: since always.
21:23 FROGGS hmmm, weird :o)
21:24 masak not really.
21:25 LlamaRider so $.foo does a call to the foo method?
21:25 FROGGS no, just weird that I believe to remember that this didn't work
21:25 masak LlamaRider: yes.
21:27 dalek nqp: 47effd6 | jnthn++ | src/QAST/Operations.nqp:
21:27 dalek nqp: nqp::gethllsym and nqp::bindhllsym
21:27 dalek nqp:
21:27 dalek nqp: Like getcurhllsym/bindcurhllsym, but with the HLL specified.
21:27 dalek nqp: review: https://github.com/perl6/nqp/commit/47effd6b48
21:28 LlamaRider I am still stuck btw. I don't see why self.bless(*, |%opt); is recommended if you can't access the fields you declare.
21:29 masak it doesn't create any new fields in the class.
21:29 masak you have to declare any attributes you want in the class. if you don't declare them, they don't exist.
21:29 masak you don't get attributes you don't declare. undeclared attributes don't exist. they don't exist if you don't declare them.
21:30 masak if you want them to exist, you have to declare them.
21:30 LlamaRider :D
21:30 masak hope that helps. :)
21:31 LlamaRider so what is bless doing with its arguments?
21:31 LlamaRider it helps, but I am not yet reaching the "aha" moment :)
21:32 masak bless maps any named arguments to any attributes in the class(es).
21:33 labster joined #perl6
21:33 masak if the pairing comes away with attributes or named args unmatched to each other, it doesn't care much.
21:33 prammer joined #perl6
21:34 LlamaRider but.. it should throw an error and give me inner peace
21:34 LlamaRider arguments disappearing into nothingness is troubling, that's one of the reasons I was so confused right now
21:35 LlamaRider r: class B { method new(%opt) { self.bless(*,|%opt); };}; B.new({"key"=>"val"});
21:35 p6eval rakudo 1c9939:  ( no output )
21:36 LlamaRider I'm thinking of a " attribute key was never declared! " error, or something on those lines
21:36 LlamaRider and this is also making my P5 port slightly more involved, I have to find all places the authors were doing $self->{new_secret_field_no_one_should_know_about} = 1;
21:37 LlamaRider and create "has" declarations for them
21:37 LlamaRider which is impossible for $self->{shift} = " Who knows what key this is"
21:37 masak LlamaRider: there has been talk about that kind of error.
21:38 masak LlamaRider: it'd have to be at runtime, though.
21:38 LlamaRider masak: runtime is quite ok, as long as it's there
21:39 masak LlamaRider: if you want objects with keys that don't really have to be declared, maybe you really want a hash?
21:41 LlamaRider Sure, am extra level of indirection always solves the problem :)
21:41 LlamaRider but then I am losing all of P6 OO nice-ness
21:41 LlamaRider since all my attributes need to end up inside that has
21:41 LlamaRider hash*
21:42 masak I guess you could start MOPing around, too.
21:42 masak and create a custom kind of class that didn't have to declare attributes.
21:42 masak but that's unexplored territory, I believe.
21:42 LlamaRider I don't know enough to be OOPing yet, let alone MOPing :)
21:43 masak *nod*
21:43 LlamaRider Of course I would immediately agree $self->{shift} is bad style and should've never been allowed in there in the first place.
21:43 LlamaRider so maybe I would port with a vengeance
21:44 LlamaRider masak++ at least now I know you can't do the old tricks anymore
21:45 ElDiabolo joined #perl6
21:48 kaleidic left #perl6
22:05 Sifr joined #perl6
22:19 dalek perl6-roast-data: de88f80 | coke++ | / (4 files):
22:19 dalek perl6-roast-data: today (automated commit)
22:19 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/de88f801ff
22:21 [Coke] rakudo down to 9 failures, niecza 8, pugs 7
22:21 [Coke] here's a new rakudo one: +integration/weird-errors.t 7 - Typed, non-internal exception
22:22 jnthn Hm, wonder what that is
22:24 LlamaRider r: class A {my $.counter; method new() {$.counter++; self.bless(*); }; }; A.new; A.counter.say;
22:24 p6eval rakudo 1c9939: OUTPUT«1␤»
22:24 LlamaRider r: class A {my $.counter; multi new() {$.counter++; self.bless(*); }; }; A.new; A.counter.say;
22:24 p6eval rakudo 1c9939: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable $.counter used where no 'self' is available�at /tmp/ASxhJ10i8L:1�------> [32m A {my $.counter; multi new() {$.counter[33m�[31m++; self.bless(*); }; }; A.new; A.counte[0m�    expecting any of:�        statement list�      Ã¢â‚¬Â¦
22:24 [Coke] r: say '1X08'..'1X12'
22:24 p6eval rakudo 1c9939: OUTPUT«"1X08".."1X12"␤»
22:24 LlamaRider Is this a bug or is there a multi-method difference?
22:24 [Coke] r: say '1X08'..'1X12'.list
22:24 p6eval rakudo 1c9939: OUTPUT«"1X08"..("1X12",).list.item␤»
22:25 [Coke] r: say ('1X08'..'1X12').list
22:25 p6eval rakudo 1c9939: OUTPUT«1X08 1X09 1X10 1X11 1X12␤»
22:25 [Coke] eval: print '1X08'..'1X12'
22:26 [Coke] that's different from the p5 behavior, which doesn't rangify all strings.
22:27 TimToady LlamaRider: that's not a multi-method; you wrote a multi-sub instead
22:27 TimToady try 'multi method new'
22:28 LlamaRider r: class A {my $.counter; multi method new() {$.counter++; self.bless(*); }; }; A.new; A.counter.say;
22:28 p6eval rakudo 1c9939: OUTPUT«1␤»
22:28 LlamaRider \o/
22:28 LlamaRider TimToady++ thanks!
22:28 LlamaRider wait, class variables aren't visible in subs? That could also be a bug
22:29 jnthn $.foo is $(self.foo)
22:29 TimToady $.foo is is a method call
22:29 LlamaRider maybe I need masak to repeat this another 10 times to me :D sorry, got it now
22:38 masak no, you're fine.
22:38 masak you're onto other issues now :P
22:44 dalek roast: 4bd5589 | (Timo Paulssen)++ | S05-substitution/subst.t:
22:44 dalek roast: test for RT #83552
22:44 dalek roast: review: https://github.com/perl6/roast/commit/4bd5589e8a
22:53 skids joined #perl6
22:53 dalek rakudo/md-nqp: e3db648 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
22:53 dalek rakudo/md-nqp: Eliminate some get_root_global usages.
22:53 dalek rakudo/md-nqp: review: https://github.com/rakudo/rakudo/commit/e3db648aa6
22:53 dalek rakudo/md-nqp: cf49051 | jnthn++ | src/ (3 files):
22:53 dalek rakudo/md-nqp: Typed exceptions for multi-dispatch failure.
22:53 dalek rakudo/md-nqp: review: https://github.com/rakudo/rakudo/commit/cf49051bb2
22:54 jnthn moritz: I suspect the approach in ^^ will work out as an approach for typed exceptions from MOP stuff, fwiw.
22:58 dalek roast: b9fb830 | (Timo Paulssen)++ | S32-exceptions/misc.t:
22:58 dalek roast: a test for RT #78314
22:58 dalek roast: review: https://github.com/perl6/roast/commit/b9fb830e7f
22:58 timotimo i just closed a bug ending in 3 14 on the 14th of march :)
22:58 jnthn timotimo++ # attention to detail :)
23:00 jnthn timotimo: https://rt.perl.org/rt3/Ticket/Display.html?id=117125 may be closable
23:00 jnthn timotimo: I think you added a test
23:01 timotimo oh yes indeed
23:01 timotimo thank you
23:07 masak 'night, #perl6
23:07 TimToady o/
23:21 LlamaRider o/ masak
23:21 FROGGS gnight all
23:22 jnthn o/ FROGGS
23:59 jnthn 'night, #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo