»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:04
LlamaRider left
|
|||
tadzik | I don't know of any | 00:06 | |
00:14
lichtkind joined
00:26
fgomez left
|
|||
japhb | grondilu: OpenGL bindings were already in the most-wanted bindings list at github.com/perl6/perl6-most-wanted...indings.md ; what did you update? | 00:29 | |
00:30
cognominal__ left
|
|||
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 | |
There's just a bloody lot there. | |||
diakopter | r: class F { also is F; } | 00:33 | |
p6eval | rakudo 1c9939: OUTPUT«maximum recursion depth exceededcurrent 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… | ||
diakopter | mrohaha | ||
r: class ::F { ... }; class F is ::F { } | 00:36 | ||
p6eval | rakudo 1c9939: OUTPUT«maximum recursion depth exceededcurrent 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… | ||
diakopter | hoohoohaha | ||
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'» | ||
diakopter | heehee | ||
I sense a fuzzing attack coming on | |||
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:» | ||
diakopter | tralala | 00:40 | |
4 MLTA errors | 00:41 | ||
00:41
fgomez joined
00:42
telex joined
|
|||
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
00:57
anuby joined
01:01
hypolin joined
|
|||
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 | ||
..(src/gen/CORE.setti… | |||
diakopter | the whole symbol is 'GLOBALish 7::EXPORT 11::$?PACKAGE 15::::?PACKAGE 19::$_ 23::$/ 27::$! 39::$=pod 47::!UNIT_MARKER 51' | ||
? | |||
cool symbol | |||
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 | ||
..(src/gen/CORE.setti… | |||
diakopter | oh; it's the stringification of the pseudostash | 01:06 | |
r: $:: | 01:07 | ||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===ResizablePMCArray: index out of bounds!» | ||
diakopter | ftw. | ||
01:08
fgomez left
|
|||
diakopter | r: $/.$/ | 01:11 | |
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» | ||
diakopter | die in bootstrap? o_O | ||
01:15
fgomez joined
|
|||
sorear | some of the methods on basic types are defined in BOOTSTRAP.pm | 01:15 | |
presumably this is a die in the lexical scope of bootstrap, but not its dynamic scope | |||
01:16
vaelxon left
|
|||
[Coke] is bummed about google reader. | 01:17 | ||
diakopter | r: ()...() # heehee | 01:25 | |
p6eval | rakudo 1c9939: OUTPUT«(timeout)» | 01:26 | |
diakopter | n: ()...() | ||
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:26
fgomez left
01:29
census left
01:30
fgomez joined
|
|||
grondilu | japhb: I updated github.com/perl6/ecosystem/wiki/Mo...ed-Modules | 01:32 | |
01:32
census joined
|
|||
japhb | grondilu, did you notice the 'NOTE' at the top? ;-) | 01:33 | |
diakopter | r: say .HOW.new[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0] | 01:38 | |
p6eval | rakudo 1c9939: OUTPUT«Perl6::Metamodel::ClassHOW.new()» | ||
diakopter | (wtf) | ||
PerlJam | r: my $item = 42; say $item[0][0][0][0][0]; # same thing | 01:39 | |
p6eval | rakudo 1c9939: OUTPUT«42» | ||
diakopter | yeah ok | ||
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» | ||
grondilu | japhb: no, I did not. My bad. | 01:41 | |
japhb | grondilu, no worries. Just teasing. :-) | 01:42 | |
01:44
lizmat left,
araujo joined,
araujo left,
araujo joined
01:45
Liz joined
01:46
Liz is now known as Guest75059
01:49
census left
01:57
jerome left
02:02
grondilu left
02:03
sqirrel_ joined
02:07
sqirrel left,
lichtkind left
02:19
swarley| joined
02:21
bowtie left
02:24
am0c joined
|
|||
diakopter | r: say $1111111111111111111111111111111111.WHAT | 02:54 | |
p6eval | rakudo 1c9939: OUTPUT«(Failure)» | ||
03:07
orafu left,
orafu joined
03:19
dalek left,
dalek joined,
ChanServ sets mode: +v dalek
03:20
anuby left
03:22
anuby joined
03:35
gdey joined,
gdey left
03:46
fgomez left
04:00
rking joined
04:04
fgomez joined
04:11
Cynede joined
|
|||
Cynede | So far I desired to use blocking packages and alternative deps for packaging panda and it's deps. | 04:15 | |
04:19
xorp joined
04:25
SamuraiJack joined
|
|||
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» | ||
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… | ||
diakopter | p: say $1111111111111111111111111111111111 | ||
p6eval | pugs: OUTPUT«» | ||
TimToady | n: say $111 | 04:38 | |
p6eval | niecza v24-33-gfc6d5fd: OUTPUT«(Any)» | ||
diakopter | r: say $2147483647 | ||
p6eval | rakudo 1c9939: OUTPUT«(Any)» | ||
diakopter | r: say $2147483648 | ||
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:39
quietfanatic joined
|
|||
TimToady | r: say $(2147483648*2) | 04:39 | |
p6eval | rakudo 1c9939: OUTPUT«4294967296» | ||
TimToady | r: say $4294967296 | ||
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» | ||
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» | ||
quietfanatic | r: say $::(2) | ||
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» | ||
quietfanatic | r: say ::<$2> | ||
p6eval | rakudo 1c9939: OUTPUT«(Any)» | ||
quietfanatic | r: say ::<$111111111111111> | 04:42 | |
p6eval | rakudo 1c9939: OUTPUT«(Any)» | ||
TimToady | r: 'foo' ~~ /(.)(.)(.)/; say ::<$2> | ||
p6eval | rakudo 1c9939: OUTPUT«(Any)» | ||
04:42
davidagain left
|
|||
TimToady | r: 'foo' ~~ /(.)(.)(.)/; say $::<$2> | 04:43 | |
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===ResizablePMCArray: index out of bounds!» | ||
TimToady | r: 'foo' ~~ /(.)(.)(.)/; say $::<2> | ||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===ResizablePMCArray: index out of bounds!» | ||
TimToady | r: 'foo' ~~ /(.)(.)(.)/; say $::(2) | ||
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» | ||
TimToady | r: 'foo' ~~ /(.)(.)(.)/; say $/[2] | ||
p6eval | rakudo 1c9939: OUTPUT«「o」» | ||
TimToady | r: 'foo' ~~ /(.)(.)(.)/; say $() | ||
p6eval | rakudo 1c9939: OUTPUT«foo» | ||
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» | ||
Cynede perl6 channel feels so perl | |||
TimToady | well, the same idiot designed both of them :) | 04:45 | |
quietfanatic | Cannot use noun perl as adjective at 21:44 | ||
Cynede | TimToady does Allison work on perl now? | ||
TimToady | not much | ||
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'» | ||
Cynede | TimToady Is there some reason why all modules must be reinstalled with rakudo update? | ||
04:47
preflex left
|
|||
TimToady | we don't guarantee binary compatibility yet | 04:47 | |
04:47
preflex_ joined
|
|||
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
preflex_ is now known as preflex
|
|||
Cynede | I've got same quesiton | 04:48 | |
TimToady | beats me :) | ||
Cynede | why do I need reinstall the text | ||
quietfanatic | And if so, I'd think they could be automatically recompiled in the same way they were initially compiled | ||
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? :) | ||
TimToady | "Not I!" said the pig. | ||
Cynede | -_-' | 04:50 | |
TimToady may I join Perl6? :D | |||
diakopter | r: my $m=Match.new; say $m[11111111111111111111111111111111111111111111111111111] | ||
p6eval | rakudo 1c9939: OUTPUT«(Any)» | ||
TimToady | the question is, can we stop you? :) | 04:51 | |
diakopter | Cynede: yes, just type /join #perl6 | ||
Cynede | TimToady github organization? :P | ||
TimToady | you should use "organization" in the same utterance as "TimToady" | ||
*shouldn't | 04:52 | ||
my n't key is broken again... | |||
Cynede | :S | ||
TimToady same utterance? | 04:53 | ||
diakopter | moritz: tell phenny tell moritz can you add me to admin the perl6 org plz | ||
moritz: tell phenny ask moritz so we can add folks while you're asleep | 04:54 | ||
04:57
kivutar joined
|
|||
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 | ||
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 | ||
diakopter | rakudo is in a separate org; it requires a signed CLA | 04:59 | |
Cynede | diakopter Contributor License Agreement ? | 05:00 | |
diakopter | yep something like that | ||
Cynede | diakopter I see but I need to learn some parrot first . | 05:01 | |
diakopter | nah | ||
you mentioned you wanted to help with speed | |||
Cynede | diakopter yes ) | ||
diakopter | long term, the best way to do that is to work on the optimizer, which is written in NQP | 05:02 | |
(a micro subset of Perl 6) | |||
quietfanatic | Is it still too early for me to say Parrot is dying? | ||
05:02
_jaldhar joined
|
|||
Cynede can't remember how to get nickname back from temprary unavailable | 05:02 | ||
TimToady thinks it's too late to say that... :) | 05:03 | ||
Cynede | quietfanatic that sounds sad? | ||
quietfanatic | I...dunno. Never mind. | ||
diakopter | Cyenede: /msg nickserv ghost $nick $password | 05:04 | |
Cynede | diakopter doesn't help ) | 05:05 | |
05:05
Cynede is now known as Heather
|
|||
diakopter | try recover instead of ghost | 05:05 | |
Heather | diakopter there is release | ||
diakopter quote NickServ release $nick $password | |||
05:06
raiph joined
|
|||
Heather | How can I create simple code wrapper | 05:07 | |
alike surroundX { .... } which will do something at start of block and in the end | 05:08 | ||
diakopter | Heather: see perl6advent.wordpress.com/2011/12/0...character/ | ||
for an example | |||
.wrap and callwith | 05:09 | ||
05:09
mikemol joined
|
|||
Heather | diakopter I want something alike C# "using" for disposible objects, like I don't want to care about closing file | 05:09 | |
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 | |
sub surroundX(&foo) { say "Before"; foo; say "After" }; surroundX { say "Middle" } | |||
nr: sub surroundX(&foo) { say "Before"; foo; say "After" }; surroundX { say "Middle" } | 05:12 | ||
p6eval | rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«BeforeMiddleAfter» | ||
Heather | yes, thanks. | ||
diakopter | so you could make a combinator that generates those things for particular classes | ||
Heather | TimToady though it must also work with try finally if I want to follow C# using ) | ||
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«BeforeMiddleFINALLY!» | ||
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 | ||
nr: sub surroundX(&foo) { say "Before"; foo; say "After"; LEAVE { say "FINALLY!"} }; surroundX { say "Middle"; die "oops" } | 05:15 | ||
p6eval | niecza v24-33-gfc6d5fd: OUTPUT«BeforeMiddleFINALLY!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… | ||
..rakudo 1c9939: OUTPUT«BeforeMiddleoops in block at /tmp/zQS0EnbSo6:1» | |||
TimToady | rakudo doesn't properly unwind the stack yet on globally handled die | ||
05:16
_jaldhar left
|
|||
TimToady | the spec has "my $handle will leave { .close } = open ...." | 05:16 | |
but it's not yet implemented | |||
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:18
_jaldhar joined
|
|||
quietfanatic | iirc wrap modifies its invocant | 05:18 | |
and returns a thingie with an unwrap method | |||
or something like that | 05:19 | ||
diakopter | r: my $blah = &(/foo/).wrap(sub (*@a, *%b) { say 'hi'; callwith(|@a, |%b); say 'bye' }); try .say for $blah.^methods | ||
p6eval | rakudo 1c9939: OUTPUT«restore» | ||
Heather | oh... | ||
diakopter | r: my $blah = &(/foo/); $blah.wrap(sub (*@a, *%b) { say 'hi'; callwith(|@a, |%b); say 'bye' }); $blah('foo') | 05:20 | |
p6eval | rakudo 1c9939: OUTPUT«hiNo 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… | ||
diakopter | r: my $blah = &(/foo/); $blah.wrap(sub (*@a, *%b) { say 'hi'; callwith(|@a, |%b); say 'bye' }); $blah(Cursor.new) | ||
p6eval | rakudo 1c9939: OUTPUT«hiCannot 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 | |
05:21
mj41 left
|
|||
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«hibyeNo such method 'MATCH_SAVE' for invocant of type 'Bool' in method ACCEPTS at src/gen/CORE.setting:10899 in block at /tmp/QEr9jS3hzo:1» | ||
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===SORRY!===Variable '$x' is not declaredat /tmp/UdgdeEsIHA:1------> rap(sub (|$args) {say 'hi'; callwith(|$x⏏); say 'bye' }); $blah('foo') expecting any of: postfi… | ||
05:23
mj41 joined
|
|||
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» | ||
quietfanatic | r: my $blah = { .say }; $blah.wrap(sub (|args) {say 'hi'; callwith(|args); say 'bye' }); $blah('foo') | ||
p6eval | rakudo 1c9939: OUTPUT«No such method 'wrap' for invocant of type 'Block' in block at /tmp/4hRzhO2Rvk:1» | ||
quietfanatic | r: my $blah = &({ .say }); $blah.wrap(sub (|args) {say 'hi'; callwith(|args); say 'bye' }); $blah('foo') | ||
p6eval | rakudo 1c9939: OUTPUT«No such method 'wrap' for invocant of type 'Block' in block at /tmp/w0XLLqHsZc:1» | ||
quietfanatic | r: my $blah = sub { .say }; $blah.wrap(sub (|args) {say 'hi'; callwith(|args); say 'bye' }); $blah('foo') | 05:24 | |
p6eval | rakudo 1c9939: OUTPUT«hiToo 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… | ||
quietfanatic | r: my $blah = sub ($_) { .say }; $blah.wrap(sub (|args) {say 'hi'; callwith(|args); say 'bye' }); $blah('foo') | ||
p6eval | rakudo 1c9939: OUTPUT«hifoobye» | ||
Heather | TimToady I need to use variable from surroundX in closure | 05:25 | |
TimToady | well, then you probably want a macro instead | ||
Heather | yes | 05:26 | |
05:26
jerome joined
|
|||
quietfanatic | Then it'd have to pass it as an argument to the closure | 05:26 | |
or | |||
Heather | does perl6 support macros? | ||
quietfanatic | it could be a contextual variable, like $*foo | ||
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 | ||
or a parameter would be cleanest | 05:27 | ||
Heather | r: $*foo | 05:28 | |
p6eval | rakudo 1c9939: OUTPUT«Dynamic variable $*foo not foundcurrent 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… | ||
TimToady | warping the language into one that suddenly has extra magical variables is not really a good design... | ||
at least the * in a dynamcic variable tells you what kind of magic you're expecting to happen | |||
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«BeforeMiddle 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… | ||
..rakudo 1c9939: OUTPUT«BeforeMiddle I'm a dynvar!oops in block at /tmp/V_3J1FRTyu:1» | |||
diakopter | you don't need a macro if you do the combinator thing I wrote above | ||
Heather | hm... | 05:30 | |
TimToady what if I do foo($var) ? | 05:31 | ||
TimToady can it be something alike $var => say $var ? | |||
diakopter | r: macro marco { &marco.wrap(&marco); say 44; marco }; marco | 05:32 | |
p6eval | rakudo 1c9939: OUTPUT«(timeout)44» | ||
TimToady | Heather: not sure quite what yer asking | 05:33 | |
Heather | TimToady let me example | ||
TimToady gist.github.com/Cynede/5159072 | 05:35 | ||
here is example | 05:36 | ||
a bit wrong brackets I guess | 05:37 | ||
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:39 | |
quietfanatic | What you intend to do there will work, I think. | ||
TimToady | or just file($res[0], a, { .say( $gpattern ) } | 05:40 | |
as long as file passes the handles as the first arg to the block | |||
*handle | |||
Heather | undeclared routine | 05:41 | |
TimToady | the :mod thing won't quite work like that though | ||
yes, a bare 'a' will try to look for a routine of that name | |||
Heather | what is mod's type | ||
can I declare it as mode... | 05:42 | ||
TimToady | you'll have to interpolate named args using prefix:<|> | 05:43 | |
(on the open) | |||
Heather | TimToady alike <|a> ? | ||
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 | |
if you pass in :a as an argument, it's just a pair | |||
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 | ||
so something like open $fname, |$mod is what you need there | |||
05:45
kaleem joined
|
|||
quietfanatic | so, like sub file ($fname, &code, *%modes) { ... my $fh = open $fname, |%modes; ... } | 05:45 | |
right? | |||
TimToady | that might work | 05:46 | |
then you could call file with an arbitrary number of options | |||
quietfanatic | and they'd all be passed to open | ||
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 | |
but it oughta work | |||
quietfanatic | doesn't it? | ||
TimToady | I think it will | 05:48 | |
if it doesn't, it's a bug :) | |||
Heather | how should I specify *%modes | ||
TimToady | just like that | ||
quietfanatic | You give :r or :w or stuff to file when you call it | ||
TimToady | it doesn't need any extra types, or what quietfanatic said, if that's what you're asking | ||
quietfanatic | file(@res[0], :r, { ... }) | ||
Heather | works | 05:49 | |
TimToady | file(@res[0], :r, :bin, {...}) | ||
quietfanatic | that :r turns into :r(True) | ||
and that gets shoved into %modes as a key-value pair | |||
and then the | operator takes all the key-value pairs in %modes and turns them back into named arguments | 05:50 | ||
05:52
SamuraiJack left
05:53
wk left
|
|||
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 }; | ||
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:55 | |
..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… | |||
TimToady | you have to put the &b before the *%h | ||
(in the declaration, not the call) | |||
but that works locally | |||
Heather | TimToady hm... | 05:56 | |
TimToady it also works good ) | 06:00 | ||
TimToady now it looks better for me github.com/Cynede/ignore/blob/master/bin/ignore :) | 06:08 | ||
TimToady but I think there is way to get all the lines and then check if contains $pattern | 06:09 | ||
instead of making loop | |||
stairs of the closing brackets is still being my objection to feel ugly | 06:13 | ||
TimToady | well, any(.lines) eq $gpattern would work | ||
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 :) | ||
Heather | TimToady GNU is uglier, it makes double indentation. 1 for brackets, 1 for code | ||
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 >_< | ||
TimToady | it's sort of aristotelean, everything has a beginning, a middle, and an end :) | ||
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 | ||
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 | ||
even if they only spell it 'begin/end' | |||
Heather | I heard that perl is great language to use pseudographic way -_-' | ||
TimToady | sure, and I don't deny that people's branes work differently when it comes to graphics | 06:19 | |
just pointing out that you'll be swimming upstream sooner or later, given current culture | 06:20 | ||
don't want you to be shocked when someone gives you some pushback on it, is all | |||
Heather | TimToady I have ability to follow upstream code when do contributions :) | ||
TimToady ain't asking for any more than that | |||
TimToady is more excited to see new contributors | 06:21 | ||
Heather | TimToady I will be happy to be | ||
TimToady | cool, don't let anyone discourge you, including me :) | 06:22 | |
*discourage | |||
Heather | :D | 06:27 | |
TimToady currently I'm waiting for this github.com/tadzik/panda/pull/37 review | |||
TimToady I find it more clear for packaging ... | 06:28 | ||
TimToady has done virtually nothing with panda yet, alas | |||
Heather | virtually :S | 06:29 | |
TimToady | p6 has already grown to the size that I can't keep track of what everyone is doing... | ||
Heather | I guess | ||
TimToady github.com/Cynede/ignore/blob/master/bin/ignore 4 tabs looks much better -_-' | |||
TimToady | p5 didn't hit that until after 5.0 was already out | ||
TimToady --> bed | 06:34 | ||
Heather | TimToady gn | 06:35 | |
06:52
alc joined
06:55
quietfanatic left
|
|||
Heather | how to use or in matching alike ~~ /a/b/c/ - is it correct? | 06:56 | |
so I want to check if string contains one of them | |||
sorear | like $str ~~ /a|b/ # true if $str contains a or b | 06:59 | |
? | |||
Heather | sorear yes | ||
thank you | |||
sorear what difference between "" and <> | |||
diakopter | do you know about "" vs '' ? | 07:00 | |
Heather | diakopter what? | 07:01 | |
sorear | Heather: do you perl 5? <> is qw() | ||
Heather | sorear I don't perl5... | 07:02 | |
sorear qw? | |||
raiph | <foo bar !@#$%baz> is a three element list literal: 'foo', 'bar', '!@#$%baz' | ||
Heather | raiph I see, thanks. | ||
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" | ||
diakopter | Heather: my $foo='bar'; say "foo $foo"; say 'foo $foo' | 07:09 | |
rnp: my $foo='bar'; say "foo $foo"; say 'foo $foo' | |||
p6eval | rakudo 1c9939, niecza v24-33-gfc6d5fd, pugs: OUTPUT«foo barfoo $foo» | ||
07:19
wk joined
|
|||
Heather | when I do my $options = ($a, $b); and if I edit $options[0] will it edit $a ? | 07:24 | |
07:29
FROGGS joined
|
|||
Heather | FROGGS hi | 07:33 | |
basically what happens when I do my $x = $y ? :) | 07:34 | ||
FROGGS | Heather: assignment? | 07:38 | |
Heather | FROGGS when I change x y is changing too? | 07:39 | |
FROGGS | no, for that you need binding: $x := $y | ||
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«42100» | ||
FROGGS | just try | ||
r: my $x = 7; my $y = 42; $x = $y; say $x; $y = 100; say $x | |||
p6eval | rakudo 1c9939: OUTPUT«4242» | ||
07:42
labster joined
|
|||
Heather | r: my $x = False; my $y = False; my $z = ( $x, $y); $z[0] = True; say $x; | 07:42 | |
p6eval | rakudo 1c9939: OUTPUT«True» | ||
Heather | linked! | ||
FROGGS how can I create not-linked $z ? | 07:43 | ||
07:44
Guest75059 left
|
|||
FROGGS | r: my $x = False; my $y = False; my $z = [ $x, $y ]; $z[0] = True; say $x; | 07:45 | |
p6eval | rakudo 1c9939: OUTPUT«False» | ||
Heather | FROGGS is it a list? | ||
ah, not it's $, so it's optional tuple declaration? | |||
FROGGS | ? | 07:46 | |
as I understand [ ... ] copies the values, where ( ... ) does binding | |||
Heather | FROGGS is $z a tuple here? | ||
07:47
lustlife joined
|
|||
FROGGS | r: ( $x, $y).WHAT.say | 07:48 | |
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Variable '$x' is not declaredat /tmp/riMyompI_e:1------> ( $x⏏, $y).WHAT.say expecting any of: postfix» | ||
FROGGS | err | ||
brb | |||
Heather | $x = False; my $y = False; my $z = [ $x, $y ]; $z.WHAT.say | 07:49 | |
r: $x = False; my $y = False; my $z = [ $x, $y ]; $z.WHAT.say | |||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Variable '$x' is not declaredat /tmp/QeeMYW9lun:1------> $x⏏ = False; my $y = False; my $z = [ $x, $ expecting any of: postfix» | ||
Heather | r: my $x = False; my $y = False; my $z = [ $x, $y ]; $z.WHAT.say | 07:50 | |
p6eval | rakudo 1c9939: OUTPUT«(Array)» | ||
Heather | r: my $x = False; my $y = False; my $z = ( $x, $y ); $z.WHAT.say | ||
p6eval | rakudo 1c9939: OUTPUT«(Parcel)» | ||
Heather | Parcel ? :S is it tuple in perl? | ||
raiph | sorta ish | 07:51 | |
Heather | raiph ish ? tuplish? ) | ||
raiph | yeah | 07:52 | |
Heather | so I want $z to be a tuple :P | ||
raiph | parcel as tuple: irclog.perlgeek.de/perl6/2013-03-01#i_6511175 | 07:53 | |
have you explored the irc logs? irclog.perlgeek.de/perl6 | |||
average of one or two thousand lines every day for seven years | 07:54 | ||
there's a custom search function and a convenient google link near the top | 07:56 | ||
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? | ||
dalek | p/vmarray-list: fb2a2fd | (Arne Skjærholt)++ | src/pmc/sixmodelobject.pmc: Implement the pop and shift VTABLEs in sixmodelobject.pmc. |
08:00 | |
08:01
lumi_ joined
08:02
domidumont joined
08:05
woosley joined
|
|||
raiph | Heather: Is Parcel-is-a Tuple working for you? | 08:07 | |
08:08
kurahaupo left
|
|||
Heather | raiph Parcel-is-a Tuple? | 08:16 | |
though parcel is what I need | 08:17 | ||
but can I construct it without linking? | 08:18 | ||
raiph | Heather: If I understand your question, FROGGS had the answer ^^^ | 08:21 | |
basically [ ] rather than ( ) | |||
08:22
lumi_ left
|
|||
Heather | raiph yes it works I just wonder why it's array and not a parcel | 08:24 | |
raiph | so you get the diff between = and := right? | 08:26 | |
Heather | yes | 08:27 | |
08:28
FROGGS_ joined,
domidumont left,
domidumont joined,
lumi_ joined
|
|||
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:30
FROGGS left
|
|||
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» | ||
Heather | raiph I see. parcel doesn't host anything mutable | 08:32 | |
raiph | er, i don | 08:33 | |
er, i don't think that's right | |||
a parcel is not mutable | |||
08:34
am0c left
|
|||
raiph | but ($a, %b) # $a and %b may be mutable, but this parcel contains those two variables and you can't change that | 08:34 | |
08:35
SamuraiJack joined,
FROGGS_ left
|
|||
raiph | r: my $x = 'x'; my $a = (3, $x); $x = 'y'; say $a[1] # works because $x is mutable | 08:40 | |
p6eval | rakudo 1c9939: OUTPUT«y» | ||
Heather | yes I see | ||
I said it doesn't host it | |||
08:41
FROGGS joined
|
|||
Heather | raiph look 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:41 | |
labster | OMG, someone expects beauty from perl? \o/ perl 6 is working, everyone! | 08:46 | |
08:46
lumi_ left
|
|||
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 | |
labster perl is beauty, really | 08:48 | ||
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 | |
08:49
am0c joined
08:51
Liz_ joined
08:52
Liz_ is now known as lizmat
|
|||
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" | ||
So ($options[0] == False && $options[1] == False) becomes | 08:53 | ||
08:53
lumi_ joined
|
|||
Heather | raiph junctions? | 08:54 | |
raiph | r: my $options = [1, 1]; if $options[0] & $options[1] == 1 { say "yep" } | 08:55 | |
p6eval | rakudo 1c9939: OUTPUT«yep» | ||
Heather | ah | ||
raiph but now I need recode it to if all of options is false | |||
r: my $options = [1, 1]; if any($options) == 1 { say "yep" } | 08:56 | ||
p6eval | rakudo 1c9939: ( no output ) | ||
Heather | r: my $options = [1, 1]; if all($options) == 1 { say "yep" } | ||
p6eval | rakudo 1c9939: ( no output ) | ||
Heather | r: my $options = [1, 1]; if all($options) eq 1 { say "yep" } | 08:57 | |
p6eval | rakudo 1c9939: ( no output ) | ||
Heather | r: my $options = [1, 1]; if any($options) eq 1 { say "yep" } | ||
p6eval | rakudo 1c9939: ( no output ) | ||
Heather | r: my @options = [1, 1]; if any(@options) == 1 { say "yep" } | 08:58 | |
p6eval | rakudo 1c9939: ( no output ) | ||
Heather | hm... | ||
raiph | r: my $options = [5, 5]; if any($options[]) == 5 { say "yep" } | ||
p6eval | rakudo 1c9939: OUTPUT«yep» | ||
Heather | ah... [] | ||
raiph is it alike type descriptor here? | 08:59 | ||
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 | |
r: my $a = [2, 3]; say $a.WHAT; say $a[].WHAT | |||
p6eval | rakudo 1c9939: OUTPUT«(Array)(Array)» | ||
Heather | :S | ||
09:02
domidumont left
|
|||
Heather | raiph btw it's any, is there all keyword, right ? | 09:03 | |
r: my $a = [2, 3]; say any($a).WHAT; | |||
p6eval | rakudo 1c9939: OUTPUT«(Junction)» | ||
Heather | r: my $a = [2, 3]; say any($a[]).WHAT; | ||
p6eval | rakudo 1c9939: OUTPUT«(Junction)» | ||
Heather | r: my $a = [2, 3]; say any($a); | 09:04 | |
p6eval | rakudo 1c9939: OUTPUT«any(2 3)» | ||
Heather | r: my $a = [2, 3]; say any($a[]); | ||
p6eval | rakudo 1c9939: OUTPUT«any(2, 3)» | ||
hoelzro | so I discovered (with a stupid test) last night that Hash.new is about 2x faster than {} | 09:05 | |
09:07
lumi_ left
|
|||
tadzik | huh, odd | 09:12 | |
Heather: gist.github.com/moritz/5070740 should help you with assignment, binding etc | 09:13 | ||
moritz | raw.github.com/perl6/doc/master/li...ainers.pod is the up-to-date version | 09:14 | |
09:14
lumi_ joined
|
|||
jnthn | morning o/ | 09:15 | |
raiph | Heather: re any, all etc. keywords: doc.perl6.org/type/Junction | 09:16 | |
labster | morning jnthn \o | ||
jnthn | hoelzro: Note they're not actually the same; {} containerizes. But that doesn't explain a factor of 2 really... | ||
jnthn is gonna be muchly distracted for much of the day with $dayjob things... | 09:17 | ||
Heather | raiph thanks | 09:20 | |
raiph | yw | ||
nwc10 | jnthn: it's only fair that you give other people the chance to break stuff. :-) | 09:21 | |
09:21
kresike joined
|
|||
kresike | hello all you happy and/or unhappy perl6 people | 09:22 | |
Heather | hello | ||
09:28
gootle joined
09:29
gootle left
|
|||
labster | moritz++ for the containers documentation. | 09:29 | |
In meteorology, parcels of air are very mutable in size, so your documentation cleared things up for me. | 09:30 | ||
09:34
lumi_ left
09:37
dakkar joined
09:40
lumi_ joined
|
|||
moritz | let me guess, immutable stuff in meteorology is quite boring :-) | 09:47 | |
arnsholt hacks nqp::list to return NQPArray and sees what happens | 09:50 | ||
FROGGS .oO( BOOM? ) | |||
arnsholt | Probably. But first I have to do it right =D | 09:51 | |
FROGGS | :o) | 09:52 | |
arnsholt: we get an RPMCA right now, right? | 09:53 | ||
arnsholt | Yeah | ||
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 | |
there is another OR: don't use parrot folder | |||
but it's also wrong :( | 09:55 | ||
09:55
lumi_ left
|
|||
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 | ||
hoelzro | when I return two hashes as such: return %server, %client | 09:57 | |
do they automatically get flattened? | |||
if so, how do I prevent that? | 09:58 | ||
jnthn | .item them is the easy way | 10:01 | |
hoelzro | so return ( %server.item, %client.item )? | 10:02 | |
10:02
lumi_ joined
|
|||
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:02 | |
tadzik | hoelzro: or just have them in scalar containers | 10:03 | |
like $server, $client | |||
hoelzro | I see | ||
labster | night everyone | ||
tadzik | they'll work exactly the same way, not with all that Perl 5 dereferencing | ||
raiph | goodnight all | ||
tadzik | goodnight | ||
10:04
labster left
10:08
anuby left
|
|||
Heather | find dir:<.> works wrong on windows | 10:16 | |
tadzik | did you mean: find :dir<.> | 10:17 | |
10:17
kaleem left
|
|||
Heather | yes | 10:17 | |
tadzik | what do you mean by "works wrong"? | ||
Heather | doesn't find file | ||
tadzik | 1) I cannot help you if I don't know any details | 10:19 | |
2) I don't have a windows machine to try it anyway :( | |||
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:20 | ||
Heather | any suggestions how to debug it | 10:21 | |
tadzik | I don't even know what doesn't work :( | ||
so find :dir<.> doesn't show you the current directory contents? | 10:22 | ||
10:22
lumi_ left
|
|||
tadzik | same for :dir('.')? | 10:22 | |
Heather | find in . returns 0 elems | ||
tadzik | well, does windows even have '.' as a concept? I don't know :) | ||
Heather | it is | ||
does | 10:23 | ||
tadzik | okay | ||
jnthn | say dir('.') on Windows seems to produce sensible output too | 10:25 | |
Heather | :r say dir('.); | 10:26 | |
:r say dir('.'); | |||
r: say dir('.'); | 10:27 | ||
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… | ||
Heather | and I can see nothing on windows | ||
tadzik | r: given open('TEST', :w) { .say('restricted mode broken?'); .close }; say 'alive' | ||
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» | ||
Heather | jnthn do you have correct output? | ||
tadzik | whew | ||
moritz | note that dir() returns IO::Path objects, which might not deal with windows paths correctly | 10:28 | |
10:28
lumi_ joined
|
|||
tadzik | oh, / | 10:28 | |
but well, it should return something anyway | |||
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» | ||
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? | ||
If yes, can you add a test that doesn't pass? | |||
Heather | r: say dir('\') | ||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Unable to parse expression in single quotes; couldn't find final "'"at /tmp/ag9RifGzhL:1------> say dir('\')⏏<EOL> expecting any of: argument list prefix or term prefix or meta-prefix … | ||
Heather | r: say dir('\\') | 10:31 | |
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» | ||
Heather | tadzik how to run them w/o ufo? :S | ||
10:32
hypolin left
|
|||
Heather | prove? | 10:32 | |
tadzik | prove -e 'perl6 -Ilib' -r t/ | ||
or parrot-prove | |||
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 | |
(example here: gist.github.com/hoelzro/5160326) | |||
10:33
domidumont joined
|
|||
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 | ||
tadzik | /o\ | ||
Heather: perl6 -Ilib t/01-file-find.t? | |||
or whatever this file is named | |||
Heather | Unexpected named parameter 'recursive' passed :D | 10:36 | |
tadzik | you broke that! :P | ||
Heather | not | ||
in 'File::Find::find' at line 15:C:\Rakudo\lib\parrot\2.6.0\languages\perl6\lib/File/Find.pm | |||
it's wrong lib ) | 10:37 | ||
tadzik | 2.6.0!? | ||
Heather | yes... that's how it finds it ... it's included | ||
tadzik | okay, I have to attend to dayjob now | ||
Heather | I was looking for magic and there is no magic ) | ||
tadzik but -Ilib fails :S | 10:38 | ||
tadzik | too old Rakudo I guess | ||
Heather | tadzik should I rebuild it from sources :S | 10:39 | |
tadzik | I suppose so. Or just install a newer .msi | ||
Heather | tadzik it's last one -_-' | ||
afaik | |||
tadzik | I'm quite sure it's not | 10:40 | |
Heather | ah... you're right... | ||
weird what brings me to get that old version :S | |||
hoelzro | anyone? is there a way to override a parent's multi method? | ||
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 | |
(becuase the invocant has a tighter type constraint) | |||
10:45
lumi_ left
|
|||
moritz | is that you what you mean by "override"? | 10:45 | |
hoelzro | yeah | 10:46 | |
but I'm getting an ambiguity error | |||
moritz | then you're doing it wrong :-) | ||
hoelzro | I guess so =/ | 10:47 | |
hoelzro thinks on it | |||
moritz | so, maybe show us what you do | ||
moritz -> lunch, might look later | |||
hoelzro | I'll demonstrate after I've tried some more stuff | ||
arnsholt | hoelzro: Have you tried removing the invocant parameters from the code? | ||
I don't think you need them ATM | |||
hoelzro tries | 10:48 | ||
well, I only want ACCEPT to work if I'm doing $str ~~ IssueState | |||
10:48
lizmat left
|
|||
hoelzro | I *could* do return False unless self.defined | 10:48 | |
but I like multi methods =) | |||
jnthn | Heather: Yes, perl6 -e "say(dir('.'))" gives me what I expect | ||
hoelzro | hmm, removing the invocants fixes it | 10:49 | |
Heather | jnthn it works with newer rakudo | 10:50 | |
I was using really old build | |||
jnthn | Heather: ah! | ||
Heather | yes, my fault | ||
jnthn | hoelzro: What multi are you writing? | ||
arnsholt | gist.github.com/hoelzro/5160326 | ||
hoelzro | jnthn: ^ | 10:51 | |
(thanks arnsholt) | |||
hmm | |||
my standalone example behaves differently than my script | |||
10:52
lumi_ joined
|
|||
jnthn | Any:U $class: | 10:53 | |
That looks wrong | |||
hoelzro | critique on Perl 6 style is welcome =) | ||
what exactly is wrong about it? | |||
jnthn | Should be IssueProperty:U $class: or so | ||
You're specifying the *invocant* type as Any | 10:54 | ||
Which means you're saying "this is typed as if it was declared in Any" | |||
hoelzro | oh, I see | ||
that makes sense | |||
jnthn | So that's why you'll get a conflict :) | ||
hoelzro | ah! | ||
thanks, jnthn | |||
arnsholt | Shouldn't the subclass method still be more specific? | ||
hoelzro | that was my next question =) | 10:55 | |
moritz | normally, subclass methods are more specific because the invocant type is more specific | 10:59 | |
if you override that, you're out of luck | |||
hoelzro | I'm still not sure why (IssueProperty : , Mu *%_) and (Any:U $class: Str , Mu *%_) are ambiguous | ||
hmm | 11:00 | ||
that doesn't look right... | |||
jnthn | arnsholt: It's the invocant type that *makes* it more specific. | 11:01 | |
hoelzro | even if the invocant type is Any:U? | ||
arnsholt | And Any is more specific than the subclass? | ||
jnthn | Multi method dispatch works as follows | ||
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 | ||
If not, it makes one | |||
If yes, it clones it | |||
It then adds your candidates | |||
So what's in the methods table is always a proto | |||
From then on, everything works *exactly* like multi-sub dispatch | 11:03 | ||
The method dispatch is just about finding the right candidate list | |||
FROGGS: Um, I know my *branch* is slow but I didn't merge that | |||
FROGGS: Did it get slower in nom too? | 11:04 | ||
If so maybe my multi changes aren't to blame | |||
11:05
swarley- joined,
lumi_ left
|
|||
jnthn | lunch, bbiab | 11:05 | |
hoelzro | ok, I've updated my example: gist.github.com/hoelzro/5160326 | ||
*this* actually fails | 11:06 | ||
I was interpreting the error incorrectly | |||
11:06
swarley| left
|
|||
hoelzro | .oO(Perl 6 wishlist: show me the source location of conflicting multi method definitions) |
11:06 | |
11:07
swarley| joined
|
|||
FROGGS | jnthn: yes, nom is about 40% slower | 11:07 | |
11:11
swarley- left,
lumi_ joined
|
|||
dalek | rlito: ba5acc1 | (Flavio S. Glock)++ | TODO-perlito5: Perlito5 - parser TODO - add additional variants of "for" |
11:14 | |
11:16
swarley- joined
11:19
swarley| left
11:23
swarley- left
|
|||
FROGGS | jnthn: it is up to 80% slower, stage parse took 199s right now, before it was about 104s | 11:23 | |
I have nothing else running what can eat cpu | 11:24 | ||
11:24
am0c left
|
|||
FROGGS | ... and no local changes | 11:24 | |
arnsholt | FROGGS: Maybe you could bisect and see if it can be traced back to a single commit? | 11:25 | |
(If you have the time) | |||
11:28
lumi_ left
11:34
lumi_ joined
|
|||
Heather | tadzik should I add github.com/Cynede/ignore to META.list ? | 11:47 | |
FROGGS | arnsholt: I will do it this evening | ||
tadzik | Heather: does it install correctly with panda? | 11:51 | |
if yes, then I don't see a reason why not :) | |||
Heather: any particular reason why did you put a submodule there? | |||
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 | |
ok I can run it directly... | |||
tadzik | just try 'panda install .' to verify that META.info is correct and all that | ||
11:52
lumi_ left
|
|||
Heather | tadzik so to use it as standalone package but I should remove it now I guess because it's standard lib >__< suddenly | 11:53 | |
tadzik | huh,. what? :) | 11:54 | |
ah, the submodule | |||
well, no reason to bundle dependencies with modules, panda resolves that itself | |||
but it's not a Standard Lib in any way, now | 11:55 | ||
Heather | ah ok | ||
tadzik I should run panda from root right? | 11:57 | ||
11:59
lumi_ joined
|
|||
Heather | so... | 11:59 | |
tadzik it says ==> Successfully installed ignore but I don't know where :D | |||
tadzik | there should be an 'ignore' script in the same place that you have panda | 12:00 | |
Heather | tadzik there is no | 12:01 | |
tadzik I will try to remove ignore installed with ufo and locate it after panda | 12:04 | ||
jnthn | FROGGS: Odd...would be good to know which commit did it. | 12:06 | |
Heather | tadzik omg I found it -_-' | 12:07 | |
tadzik in /root/.perl6/2013.02/bin/ignore | |||
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? | ||
jnthn | arnsholt: nice :) | 12:10 | |
12:11
lumi_ left
|
|||
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 | |
Sleepily, after too much food at buffet lunch... | |||
Heather | tadzik but I found own fail in panda fork | ||
arnsholt | Buffets are dangerous that way =) | ||
dalek | p/vmarray-list: 0b76d55 | (Arne Skjærholt)++ | src/QAST/Operations.nqp: Make nqp::list create NQPArrays rather than RPAs. Unfortunately this means the self-compilation breaks, since some places rely on nqp::list being an RPA. Fixing that remains to be done. |
12:17 | |
12:18
lumi_ joined
|
|||
jnthn | arnsholt: nqp::islist is one thing that'll need an update. :) | 12:18 | |
arnsholt | Oooooh, good point | 12:20 | |
That might explain the code getting confused and assumptions going wrong | 12:22 | ||
12:24
skids left
12:27
Liz_ joined
|
|||
dalek | rlito: f68d4e6 | (Flavio S. Glock)++ | / (3 files): Perlito5 - js - fix scope for "for" variable |
12:28 | |
12:28
Liz_ is now known as lizmat
12:29
lumi_ left
12:30
snuffles left
|
|||
Heather | tadzik I will need your help in future. | 12:32 | |
tadzik to implement panda in package manger I need to make it possible to work for all users | |||
12:32
snuffles joined
|
|||
Heather | tadzik if I understand correct it's not designed for it currently. | 12:34 | |
12:36
alc left,
lumi_ joined
|
|||
FROGGS | jnthn / arnsholt: false alarm | 12:37 | |
jnthn | FROGGS: Oh? | 12:42 | |
FROGGS: No performance regression in nom branch after all? | |||
FROGGS | jnthn: ya, I believe a java process in background was a bit hungry | ||
12:42
snuffles left
|
|||
FROGGS | jnthn: no, everything fine with current nom HEAD | 12:43 | |
jnthn: you are awake now? :P | |||
12:45
snuffles joined
|
|||
jnthn | "awake" is such a strong word... :P | 12:46 | |
FROGGS | **g | 12:47 | |
12:47
lumi_ left
|
|||
jnthn will see if he can get to the bottom of why md-nqp is a bunch slower this evening. | 12:48 | ||
FROGGS | .oO( bikini bottom of slowness? ) |
12:49 | |
tadzik | that sounds like a Diablo weapon | ||
or armor, maybe | 12:50 | ||
FROGGS | tadzik: a bit, ya | ||
timotimo_ | maybe more like a Munchkin equip. | ||
FROGGS | "Shiny bikini bottom of slowness" - a Diablo II unique item | ||
tadzik | timotimo_: oh yeah :) | 12:52 | |
FROGGS | (Diablo II)++ | ||
12:54
lizmat left,
lumi_ joined
|
|||
dalek | osystem: 3a4efee | ℋeatђer++ | META.list: ignore util to META.list |
13:02 | |
osystem: 461c99f | tadzik++ | META.list: Merge pull request #22 from Cynede/master ignore util to META.list |
|||
13:02
Heather left
13:06
fhelmberger joined,
bluescreen10 joined
13:08
lumi_ left
|
|||
timotimo_ | .u ℋђ | 13:08 | |
yoleaux | U+0452 CYRILLIC SMALL LETTER DJE [Ll] (ђ) | ||
U+210B SCRIPT CAPITAL H [Lu] (ℋ) | |||
timotimo_ | interesting | ||
tadzik | yoleaux: tell timotimo_ test | ||
:( | |||
hoelzro | did anyone look at my updated gist wrt. multi methods? | 13:09 | |
13:11
shinobicl joined
|
|||
[Coke] argle bargle coffee bargles. | 13:12 | ||
13:12
lizmat joined
13:14
lizmat left,
lumi_ joined
|
|||
nwc10 | [Coke]: I don't think that my t/spec/S32-exceptions/misc.rakudo failure is in that gist you gave | 13:17 | |
(Although I don't really understand the format of that gist) | |||
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:18 | ||
timotimo | that gist doesn't seem to be in my lastlog, can i see it? | 13:21 | |
nwc10 | mmm, was this technically a gist? This URL: github.com/coke/perl6-roast-data/b....out#L2419 | 13:22 | |
timotimo | oh. no, not really :) | ||
nwc10 is not totally awake, with it, or anything | |||
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* | ||
(that's the output from the daily run of spec tests on feather) | 13:24 | ||
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:25 | |
13:27
lumi_ left
13:32
shinobicl left
13:33
lumi_ joined
13:40
FROGGS left
13:44
lumi_ left
13:50
skids joined
13:52
lumi_ joined
13:55
xinming left
13:57
fhelmberger left,
xinming joined
14:01
SmokeMachine joined
14:02
lumi_ left,
snuffles left
14:04
Liz joined
14:05
Liz is now known as Guest59973
|
|||
hoelzro | latest adventure in perl 6 land: I wrote a script to process IRC logs from irclog.perlgeek.de | 14:05 | |
the whole thing takes 3 seconds, but when I say each message, it takes 20 | |||
14:06
snuffles joined,
Guest59973 left
14:07
sftp joined
14:08
xilo left
14:09
lumi_ joined
14:12
PacoAir joined
14:16
SmokeMachine left
14:17
SmokeMachine joined
14:21
lustlife left
14:22
kaare__ joined,
lumi_ left
14:23
Psyche^ joined
14:24
kaleem joined
14:27
Patterner left,
Psyche^ is now known as Patterner
14:28
lumi_ joined
14:32
xilo joined
14:35
xilo left
14:36
xilo joined
14:38
lumi_ left
14:41
census joined
14:44
arlinius joined,
lumi_ joined
|
|||
[Coke] | wonder if we're not getting buffered IO or something. | 14:46 | |
arnsholt | I'm pretty sure Parrot buffers IO | 14:48 | |
At least I get lost output when I trigger segfaults in NQP =) | |||
14:54
lumi_ left
14:58
wk left
|
|||
hoelzro | now that it's quiet here, I'll try asking my multi method question again =) | 14:59 | |
gist.github.com/hoelzro/5160326 | |||
here, MAIN complains of an ambiguity | 15:00 | ||
and I don't understand why | |||
jnthn | Because the two candidates are tied. | ||
Imagine you have types S and T where S ~~ T | |||
15:00
lumi_ joined
|
|||
jnthn | :(S, T) and :(T, S) would be tied | 15:00 | |
Since there's no way to say one is narrower than the other. | 15:01 | ||
This is the situation you've created. | |||
But with a third type involved. | |||
hoelzro | multi method ACCEPTS($) # <- isn't the param here Any? | ||
oh, you know, I think I see it now | |||
jnthn | Yes, but the invocant is of type IssueProperty | ||
hoelzro | the first one is (IssueProperty, Any) | ||
jnthn | Str ~~ Any, but Any !~~ IssueProperty | ||
hoelzro | the second is (Any, Str) | ||
jnthn | Right. | ||
hoelzro | ooooooh | 15:02 | |
thanks for pointing that out, jnthn ! | |||
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 | |
Or the spec describes it in words | |||
15:03
brrt joined
|
|||
hoelzro | \o/ | 15:03 | |
does that bring a performance hit with it? | 15:04 | ||
djanatyn | !won ogwr | ||
Errm, my bad :) | |||
hoelzro | sadly, I think I'm still at the level where my C > my NQP ;) | ||
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 | ||
interesting | |||
jnthn | hoelzro: Most multi-dispatches don't actually go through the full dispatch process. | ||
hoelzro | caching, I assume? | ||
jnthn | hoelzro: Those that are typed/arity determined hit a cache. | ||
And the cache is in C. | |||
hoelzro | ah ha | ||
jnthn | Which should hide the cost. | ||
hoelzro | I wish I knew enough of the internals to help with profiling/optimization | ||
these last few days playing around have been really fun, but the speed is drag (at times) | 15:10 | ||
some tasks are more than fast enough for me | |||
but others are *really* slow | |||
TimToady | how hard do you wish it? :) | ||
hoelzro | heh | ||
jnthn | The re-writing into NQP is to help make it easier to port Rakudo to hopefully faster places :) | ||
colomon | rakudo read a 28 meg file on my new Linux box! \o/ | ||
hoelzro | I wish I could find the spare time to learn the internals well enough to help with profiling/optimization | 15:11 | |
15:11
fhelmberger joined
|
|||
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:11 | |
There's no reason we can't now just sort at CHECK time. | 15:12 | ||
And then serialize the result. | |||
Which we should do for correctness anyway, since the spec says this is when circularities should be reported... :) | |||
15:13
lumi_ left
|
|||
moritz | it's kinda amazing what you can use serialization for | 15:16 | |
I mean, all sorts of stuff depends on it | |||
which you mostly notice when it's missing :-) | |||
15:19
lumi_ joined
|
|||
jnthn | Yes, which makes its low bus number somewhat worrying. | 15:21 | |
timotimo | is it very complicated? a lot of code? | 15:23 | |
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 | ||
jnthn | Well, the places it gets really icky are with packages. | ||
They're not really pure enough. | 15:25 | ||
augment is similarly tricky | |||
Rakudo handles it...to a point. | |||
Most of the "precompilation breaks X" boil down to such impurities. | 15:26 | ||
15:28
lumi_ left
|
|||
TimToady | linking has always been the problem child of separate compilation, even with bondage languages :) | 15:35 | |
15:35
lumi_ joined
|
|||
jnthn | Yeah. Linking can basically become merging. | 15:35 | |
TimToady | the known problems go back all the way to Fortan common :) | 15:36 | |
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 :) | ||
jnthn | If two modules you load both want to do that, it can now detect it and give them to a merger. | ||
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 | ||
jnthn | At the moment it kinda doesn't do the second of those. | ||
moritz | good am, pm | ||
jnthn | o/ pmichaud | ||
TimToady | ss/its hands // :) | ||
jnthn | :D | ||
15:40
fhelmberger left
15:43
lumi_ left
15:44
skids left
15:46
LlamaRider joined
|
|||
TimToady | wow, that was a conversation stopper... | 15:48 | |
15:50
lumi_ joined
|
|||
LlamaRider | o/ #perl6 | 15:54 | |
15:59
lumi_ left
16:05
donaldh joined
16:06
lumi_ joined
|
|||
donaldh | jnthn: in nqp-jvm where do the compilation unit (i.e. Java class) names get generated? | 16:06 | |
jnthn: I want to add a prefix to see if it resolves an issue I am having with ASM. | 16:07 | ||
pmichaud | (conversation stopper) I suspect it was me. Conversation often seems to drop when I say hello. :) | 16:09 | |
nwc10 | you could pretend to be away from keyboard | 16:11 | |
kresike | bye folks | 16:14 | |
16:14
kresike left
|
|||
diakopter | donaldh: well it originally comes from the nqp compiler | 16:14 | |
jnthn | donaldh: nqp-jvm-cc.nqp | ||
donaldh: Or if you're in the self-hosted, in nqp-src/NQPHLL.pm | 16:15 | ||
16:15
lumi_ left
|
|||
donaldh | jnthn: yes, in self-hosted. | 16:16 | |
16:16
domidumont left
|
|||
jnthn | donaldh: there's a command line option to override it | 16:17 | |
donaldh: --javaclass iirc | |||
donaldh | jnthn: it's the self-hosted generated ids that are a problem. | 16:18 | |
will dig into NQPHLL later. | 16:19 | ||
afk | |||
thx | |||
16:19
donaldh left
|
|||
jnthn | donaldh: github.com/jnthn/nqp-jvm-prep/blob...LL.pm#L905 | 16:20 | |
oops, he left | |||
16:21
brrt left
16:22
lumi_ joined
16:24
FROGGS joined,
crab2313 joined
|
|||
FROGGS | jnthn: how can I tell nqp::getcomp('QRegex::P6Regex').compile("a+b") to ignore case ? | 16:24 | |
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:26 | |
What are you doing, ooc? | 16:27 | ||
16:27
kaleem left
|
|||
FROGGS | fixing INTERPOLATE | 16:29 | |
... to not using an eval | |||
jnthn | You can't do it this way | 16:30 | |
You'll use the wrong language. | |||
timotimo | que? | 16:31 | |
¿Qué?, actually | |||
jnthn | Both NQP and Rakudo derive from QRegex::P6Regex to add things. | ||
FROGGS | jnthn: I need Perl6::RegexGrammar or something like that? | ||
jnthn | Well, but that ain't really registered as a compiler, but something like that, yes. | ||
I think you may need a method in Perl6::Compiler for it. | 16:32 | ||
16:32
lumi_ left
|
|||
FROGGS | okay... | 16:32 | |
jnthn | But that's still kinda...interesting. :) | ||
FROGGS | see ya later, will read backlog | ||
jnthn | It'll need some care to get the lexical scope right... | ||
It's kinda like you want to do whta eval does | |||
Except somehow tell it to go straight into the regex parser, not into comp_unit. | 16:33 | ||
pmichaud | afk, not pretending | ||
jnthn | Well | ||
not into statementlist | |||
16:38
lumi_ joined
16:44
domidumont joined
|
|||
mattp_ | jnthn: when are you planning to make a jvm blog update, out of curiosity? | 16:45 | |
i find your status posts interesting :) | 16:46 | ||
jnthn | mattp_: I have a half written one, I'll try and get around to it soon :) | 16:49 | |
Had a lot of teaching/$dayjob stuff to take care of these last couple of weeks... | |||
16:50
lumi_ left
|
|||
jnthn | Talking of which...time for decommute & | 16:51 | |
16:57
lumi_ joined
17:01
census left
17:02
ggoebel_ joined
17:08
skids joined
17:10
thou joined
17:13
lumi_ left
17:14
spider-mario joined
17:15
SunilJoshi joined
17:18
davidagain joined
17:19
snearch joined
17:20
lumi_ joined
|
|||
colomon | current STEP file read is up to 17gig memory and 5 hours processing time... so far... | 17:24 | |
17:25
wk joined
|
|||
raiph | colomon: is that still the same run you started a day or so ago? | 17:27 | |
colomon | raiph: no and yes | ||
raiph | heh | 17:28 | |
colomon | I ended up using a bash script so that each STEP file gets its own run of rakudo | ||
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:30 | |
good question | |||
29,809,774 bytes | 17:31 | ||
davidagain | should <<+>> work the same as (weird-double-angle-character)+(other-weird-double-angle-character)? | 17:32 | |
timotimo | «+» | ||
it should, yeah | |||
davidagain | yeah, that | ||
hmm, ok, then I'm doing something else wrong | |||
timotimo | would you like to paste something? | 17:33 | |
i was wondering if >>. is actually the same thing as >>+ and such | 17:34 | ||
r: say (1, 2, 3, 4) >>+ 10 | |||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Missing << or >>at /tmp/9PW3FZNzNr:1------> say (1, 2, 3, 4) >>+⏏ 10 expecting any of: postfix infix stopper infix or meta-infix» | ||
timotimo | apparently it's something different | ||
davidagain | I'm just trying out p6 again | 17:35 | |
getting my feet under me | |||
timotimo | i see | 17:36 | |
17:36
Chillance joined
|
|||
moritz | timotimo: the difference between >>. and >>+<< is that the former has data only on one side | 17:37 | |
and thus only one dobule-angle arrow | |||
davidagain | BTW, when I go to www.perlfoundation.org/perl6/index.cgi and click on Perl6 documentation (www.perlfoundation.org/perl6/index....entation), then Perl6 tutorial (www.perlfoundation.org/perl6/index....tutorial), then chapter 3 (www.perlfoundation.org/perl6/index....al_part_3) | ||
I get a page in German | |||
is there a tutorial in English? | |||
timotimo | moritz: oh, so with a postfix operator, i'd be able to do the same thing? | 17:38 | |
moritz | davidagain: start from www.perl6.org/documentation/ instead of from the wiki | ||
17:38
lumi_ left
|
|||
moritz | timotimo: I think so, yes | 17:39 | |
timotimo | r: sub postfix:<!> { [*] 1..$^a }; say (1, 2, 3, 4)>>! | ||
p6eval | rakudo 1c9939: OUTPUT«1 2 6 24» | ||
timotimo | apparently! that's pretty cool | ||
davidagain | moritz: thanks. FYI, if you just Google perl6 or perl6 tutorial, you land on the German page | ||
moritz | timotimo: I was just about to type the exact same example :-) | ||
davidagain: do you happen to have a hl=de in the google URL? | |||
davidagain | nope | 17:40 | |
timotimo | :D | ||
davidagain | alright, starting from www.perl6.org/documentation/ and clicking on "perl6 tutorials" leads me to a GitHub page (github.com/perlpilot/perl6-docs) | 17:41 | |
am I expected to download the tutorials? | |||
moritz | you can just read them on github | 17:42 | |
davidagain | that's not very user-friendly | ||
and the most recent changes are 2+ years ago | |||
moritz | for example github.com/perlpilot/perl6-docs/bl...-intro.pod | ||
davidagain | my understanding is that Perl6 has changed significantly over that time | ||
moritz | davidagain: you're very welcome to provide a more user-friendly interface | ||
17:42
census joined
|
|||
davidagain | I'm welcome to do most anything, I imagine | 17:43 | |
but I'm your audience | |||
a guy who actually wants to use p6 and not wait around | |||
moritz | we know that the documentation situation isn't good. Which is why i started doc.perl6.org | ||
davidagain | and ... you're turning me away | ||
moritz | but there's just finit amount of time and energy in each of us | ||
davidagain | understood. so maybe my best strategy is to continue waiting. | 17:44 | |
doc.perl6.org looks like a decent start at a reference work | 17:45 | ||
17:45
lumi_ joined
|
|||
davidagain | which is helpful once one has got his head around the language | 17:45 | |
at the moment, i'm looking for learning materials | |||
moritz | so, have you tried the book? | ||
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 | ||
davidagain: fwiw i created a custom google search: tinyurl.com/perl6now | |||
davidagain | I just started looking at this again | ||
moritz | davidagain: the very first entry on www.perl6.org/documentation/ | ||
timotimo | doc.perl6.org/language/classtut - the beginning to that looks weird, why is the code separated in weird places? | ||
moritz | which has a link to github.com/downloads/perl6/book/20....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 | ||
if not, then I'm not seeing a big obvious sign | |||
timotimo | looks like lots of stuff is rendered wrong | ||
davidagain | but leaving that aside - I'd prefer something more bite-sized | ||
so I can get bootstrapped into using the REPL | |||
moritz | davidagain: the very first entry in the "For newcomers" box | ||
diakopter | timotimo: yeah; you're right | ||
davidagain | and then be more productive with deep material like a book | ||
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 | ||
davidagain | thanks raiph | ||
how current is the book? | |||
the github timestamps say years old, but not sure if that's an accurate read | 17:49 | ||
moritz | current enough for nearly all purposes | ||
including learning Perl 6 | |||
davidagain | alright, let me look at that | ||
17:52
kivutar left
|
|||
davidagain | if I search the latest PDF, I only get one hit for "hyper" | 17:52 | |
(I'm looking to quickly understand hyperoperators, at the moment) | |||
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? :) | ||
moritz | perlcabal.org/syn/S03.html#Hyper_operators | ||
davidagain | that's reference material, moritz | ||
timotimo: you got it | 17:54 | ||
I'm an old Perl guy | |||
I know a handful of languages well, and how to program in them | |||
now I want to use the cool new stuff | |||
moritz | davidagain: have you seen perlgeek.de/en/article/5-to-6 already? | 17:55 | |
davidagain | in particular, hyperops and related features that allow me to be more expressive and concise with my programs | ||
nope | |||
but I like that there's a entry in the TOC for meta-ops | |||
I also saw something like 12 days of Perl6 a while back | 17:56 | ||
is that still relevant? | |||
moritz | uhm, link? | ||
moritz doesn't know it off hand | |||
davidagain | let me see if I can find it | ||
17:56
dakkar left
|
|||
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
lumi_ left
|
|||
moritz | colomon: same here | 17:56 | |
davidagain | colomon: what ar ethose? | 17:57 | |
moritz | cross and zip | ||
davidagain | perl6advent.wordpress.com/ | ||
moritz | r: say <a b c> Xxx 1, 2 | ||
colomon | rn: say "a".."d" X~ 1..3 | ||
p6eval | rakudo 1c9939: OUTPUT«a a a b b b c c c» | ||
rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3» | |||
raiph | hyperops are a type of metaop, right? | ||
TimToady | hypers will come back into their own when we have compact arrays of natives | ||
colomon | raiph: yes | ||
rn: say "a".."d" Z~ 1..3 | |||
p6eval | rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«a1 b2 c3» | ||
TimToady | hypers don't go through the list interface | ||
diakopter | moritz: did Heather ask to join the perl6 org | ||
davidagain | r: say + Z 1,2,3 | ||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Undeclared name: Z used at line 1» | ||
davidagain | used that wrong | ||
17:58
SamuraiJack_ joined
|
|||
timotimo | r: say <a b c> Xx 1, 2 | 17:58 | |
p6eval | rakudo 1c9939: OUTPUT«a aa b bb c cc» | ||
moritz | davidagain: yes, perl6advent is relevant each year again | ||
davidagain | how do you say something(+) 1,2,3 to get 1+2+3 | ||
colomon | r: say [+] 1, 2, 3 | ||
p6eval | rakudo 1c9939: OUTPUT«6» | ||
timotimo | also interesting: | ||
17:58
FROGGS left
|
|||
spider-mario | rn: say "a".."d" «~» 1..3 | 17:58 | |
colomon | davidagain: ^^ | ||
p6eval | niecza v24-33-gfc6d5fd: OUTPUT«===SORRY!===".." and ".." are non-associative and require parens at /tmp/O4NTnfUHHB line 1:------> say "a".."d" «~» 1..⏏3Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (… | ||
..rakudo 1c9939: OUTPUT«===SORRY!===Operators '..' and '..' are non-associative and require parenthesisat /tmp/EU8NA5L8jr:1------> say "a".."d" «~» 1.⏏.3 expecting any of: dotty method or postfix» | |||
timotimo | r: say [\+] 1, 2, 3, 4, 5 | ||
p6eval | rakudo 1c9939: OUTPUT«1 3 6 10 15» | ||
spider-mario | oops. | ||
rn: say ("a".."d") «~» (1..3) | |||
p6eval | rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«a1 b2 c3 d1» | ||
17:58
SamuraiJack left
|
|||
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 | |||
colomon | davidagain: yes | ||
string concat | 17:59 | ||
davidagain | ok, this is what I'm looking for | ||
diakopter | moritz: her github id is Cynede | ||
timotimo | TimToady: does it also work properly when you supply $n = 1? | ||
davidagain | TimToady: FYI, your p6 entries on RosettaCode are what got me excited about p6 again | ||
TimToady | nr: say [*] () | ||
p6eval | rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«1» | ||
TimToady | because of that | ||
timotimo | ah, nice. | ||
davidagain | TimToady: identity elements! neat. | 18:00 | |
spider-mario | r: say [*] | ||
TimToady | nr: say [==]() | ||
p6eval | rakudo 1c9939: OUTPUT«1» | ||
rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«True» | |||
timotimo | is that just multi infix:<*>() { 1 }? or how does that work? | ||
TimToady | yes, it's just defined using the nullary | 18:01 | |
timotimo | (and how would that work?) | ||
spider-mario | r: say [%] | ||
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» | ||
spider-mario | see? :) | ||
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» | ||
davidagain | hmm, need a local def | ||
r: local multi infix:<*>() { 100 } ; say [*] (); | |||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Undeclared routine: local used at line 1» | ||
davidagain | that's now how you spell local, apparently | ||
TimToady | subs are lexical in p6 | 18:03 | |
spider-mario | r: my &infix:<*> = {100}; say [*]; | ||
p6eval | rakudo 1c9939: OUTPUT«100» | ||
18:03
cognominal joined
|
|||
TimToady | but multis will mix in with the core's proto | 18:03 | |
18:03
lumi_ joined
|
|||
moritz | diakopter: do it yourself :-) | 18:04 | |
diakopter | just did; thx | ||
moritz | diakopter++ | ||
diakopter | phenny: inform Heather you're now assimilated | ||
raiph | davidagain: a search for "hyper" using perl6now gives a nice spread of useful results with near zero false positives | ||
davidagain | thanks raiph. I tried "tutorial" on perl6now, but it didn't improve my results | 18:05 | |
let me try hyper | |||
timotimo | oh wow, perl6now is *old* | ||
raiph | davidagain: did the tutorial search show perl6maven? | 18:06 | |
timotimo: huh? | |||
davidagain | nope - but I got it under "hyper" | ||
never seen it before | |||
timotimo | 2005/2006 | ||
davidagain | the first couple hits for hyper are the advent calendar | ||
... for 2009 | |||
raiph | timotimo: hmm. i created it a few months ago... | ||
timotimo | perl6now.com/fom-serve/cache/1.html - this? | 18:07 | |
raiph | davidagain: that's probably good info (i was careful about the sources searched) | ||
timotimo: ah. no. this: tinyurl.com/perl6now | |||
timotimo | ah, ok, neat | 18:08 | |
now.perl6.org might be nice. | |||
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 :-) | ||
davidagain | thanks raiph. | ||
18:09
SamuraiJack_ left
|
|||
davidagain | just generally concerned with figuring out whether I can trust a specific doc or not | 18:10 | |
if I see a doc a couple years old relating to a language currently under development, I get skittish | |||
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 | now.perl6.org/ now redirects to tinyurl.com/perl6now | ||
timotimo | cool, moritz :) | ||
18:12
FROGGS joined
|
|||
davidagain | hey, neat, KEEP and UNDO | 18:13 | |
you guys have been busy | |||
raiph | davidagain: i'm guessing p6 isn't where it sounds like you want it to be | ||
timotimo | there's an amazing amount of stuff actually implemented in rakudo already | ||
davidagain | raiph: yeah, I'm getting that sense. | ||
timotimo | also, a lot of somewhat important stuff still missing :( | 18:14 | |
18:14
lumi_ left
|
|||
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 :) | ||
moritz | just needs to learn to walk a bit faster and steadier | ||
TimToady | can't run very fast yet though :) | ||
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:18 | |
18:19
FROGGS left
|
|||
davidagain | raiph: how are you feeling about that prediction today? | 18:19 | |
18:20
lumi_ joined
|
|||
davidagain | hey, neat, you can plug p6 into Padre | 18:22 | |
let's see if I can get that going | |||
18:22
FROGGS joined
|
|||
jnthn | Seems I may be able to pin the spectest time regression in md-nqp down to a startup time regression. | 18:24 | |
The numbers match up | |||
raiph | davidagain: i'm confident it's closer than steven haryanto's 2027 estimate ;) | 18:25 | |
(blogs.perl.org/users/steven_haryant...t-on.html) | |||
timotimo | noooo, more negativity :( | 18:28 | |
18:30
lumi_ left
18:34
snearch left,
TimToady joined
|
|||
dalek | ecs: 8efa3ac | (Rob Hoelz)++ | S28-special-names.pod: Correct Match.start/Match.end -> Match.from/Match.to |
18:35 | |
18:36
TimToady left
18:37
FROGGS left,
TimToady joined
|
|||
TimToady is back; hope you didn't say anything interesting :) | 18:38 | ||
davidagain | aww, that post was depressing | ||
TimToady | non carborundum illigitimi and all that | 18:39 | |
18:39
lumi_ joined
|
|||
davidagain | maybe I'll still take a whack at implementing a mini language in p6 | 18:40 | |
18:40
Liz joined,
Liz is now known as lismat,
lismat is now known as lizmat
|
|||
davidagain | don't care about perf, just want to get the flavor of the syntax | 18:40 | |
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 :) | ||
davidagain | or not stopped | ||
or insufficiently stopped | |||
dunno | |||
jnthn: yeah, that's the idea :) | |||
plus, I'd like a language that does the hard parts for me | |||
feels like p6 wants to do that | 18:42 | ||
TimToady | see rosettacode.org/wiki/Parse_EBNF#Perl_6 for an example parser | 18:44 | |
or STD.pm6 :) | |||
davidagain | TimToady: I'm actually looking at RC right now | 18:45 | |
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 | |||
what's up with that? | |||
18:47
lumi_ left
|
|||
TimToady | they're introduced with a # | 18:47 | |
don't let the highlighting fool you | |||
the point of the comments is that highlighter is getting fooled | |||
davidagain | too late | ||
ah, I see | |||
18:48
crab2313 left
|
|||
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 | |
18:48
FROGGS joined
|
|||
davidagain | how do you say $#array? | 18:51 | |
TimToady | generally you don't, since ranges can exclude the endpoint | 18:52 | |
0 ..^ @array | |||
or ^@array for short | |||
but @array.end is the most exact equiv | |||
davidagain | I like ^@array | 18:53 | |
TimToady | we end up using it all the time | ||
well, lots of the time :) | |||
sometimes instead we say: for @array.kv -> $index, $value { ... } | |||
rather than reindexing inside the loop | |||
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? | ||
neato | |||
[Coke] | r: say [1,2,3].gist ; say (1,2,3).gist | 18:56 | |
p6eval | rakudo 1c9939: OUTPUT«1 2 31 2 3» | ||
lee__ | i was confused because i made @a = [1,2,3]; and the gist was just "1 2 3" | ||
TimToady | lee__: .perl will distinguish those | 18:57 | |
r: my @a = [1,2,3]; say @a.perl | 18:58 | ||
p6eval | rakudo 1c9939: OUTPUT«Array.new([1, 2, 3])» | ||
TimToady | n: my @a = [1,2,3]; say @a.perl | ||
p6eval | niecza v24-33-gfc6d5fd: OUTPUT«[[1, 2, 3]].list» | ||
lee__ | i see, thanks! | ||
TimToady | I like niecza's use of [] for the outer array better | ||
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 } | ||
p6eval | rakudo 1c9939: OUTPUT«0:11:22:3» | ||
TimToady | nr: { a => 42 }.perl.say | ||
p6eval | rakudo 1c9939, niecza v24-33-gfc6d5fd: OUTPUT«{"a" => 42}» | ||
davidagain | r: for [1,2,3].kv -> $i, $v { say [[~]] $i , $v } | ||
p6eval | rakudo 1c9939: OUTPUT«011223» | ||
davidagain | r: for [1,2,3].kv -> $i, $v { say [[~]] $i , ":", $v } | 19:00 | |
p6eval | rakudo 1c9939: OUTPUT«0:11:22:3» | ||
davidagain | heh | ||
TimToady | the inside [] is a noop | ||
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. | ||
davidagain | I get confused with <<>> vs [] | 19:01 | |
the << looks double to me | |||
(I know it's really supposed to be a single glyph, but I can't type it) | |||
TimToady always uses «» | |||
I'll bet you can :) | |||
what is your current environment? | |||
davidagain | 73*F, 25% humidity | ||
mostly clean | 19:02 | ||
TimToady | and which OS might you be on? | ||
davidagain | win 7 x64 | ||
19:02
FROGGS left
|
|||
TimToady | hmm, dunno about that as well | 19:02 | |
davidagain | it's ALT+gibberish | ||
or charmap | |||
or a macro, if I felt like it | |||
TimToady | most of us end up defining a compose key | 19:03 | |
some editors like vi have similar bindings | |||
colomon taught his text editor that >>[tab] should be » | |||
davidagain | I'm hoping to use Padre | ||
TimToady | maybe ask jnthn++ how he types 'em, since he's on windows | 19:04 | |
davidagain | or some other GUI crutch | ||
TimToady | thing is, a compose key will work with many different apps | ||
19:04
rindolf joined
|
|||
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 :) | ||
rindolf | Hi all. | ||
TimToady --> lunch | 19:06 | ||
19:11
SunilJoshi left
19:15
kaleidic joined
19:23
FROGGS joined
|
|||
tadzik | hello #perl6 | 19:24 | |
colomon | o/ | 19:26 | |
19:28
cognominal left
|
|||
colomon | r: say .14.Rat.perl | 19:33 | |
p6eval | rakudo 1c9939: OUTPUT«0.14» | ||
colomon | r: say (pi - 3).Rat.perl | ||
p6eval | rakudo 1c9939: OUTPUT«<16/113>» | ||
colomon | r: say (pi - 3).Rat(0.01).perl | ||
p6eval | rakudo 1c9939: OUTPUT«<1/7>» | 19:34 | |
19:37
fglock left
19:38
rindolf left
19:39
rindolf joined
|
|||
masak | ahoyla, #perl6 | 19:40 | |
I got ax'd a question on Twitter. gist.github.com/arafatkamaal/5159954 | |||
not sure what to reply. | |||
the tl;dr seems to be "can Grammar::Tracer be plugg'd into Perl6::Grammar?" | 19:41 | ||
I don't think it can, 'cus Grammar::Tracer is Perl 6 and Perl6::Grammar is nqp. but I'm not sure. | |||
19:43
alec__ left
|
|||
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:44 | |
masak | is it unbitrottable? | 19:45 | |
jnthn | Yeah | ||
masak | then I believe I'll relay that answer. | 19:48 | |
thanks. | |||
19:49
unknowndna joined
|
|||
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:51 | ||
btw, that is what you missed pals: blogs.perl.org/users/maettu/2013/03...day-1.html | 19:52 | ||
jnthn | FROGGS: (another piece to implement) welcome to the life of a Perl 6 implementor... :) | 19:54 | |
19:54
cognominal joined
|
|||
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 >.< | ||
masak | diakopter: I'll backlog. thanks for the heads-up. | 19:57 | |
diakopter | masak: here's a fun one: | 19:58 | |
r: $1111111111111111111 | |||
p6eval | rakudo 1c9939: OUTPUT«Cannot use negative index -2147483648 on Anycurrent 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… | ||
diakopter | jnthn: you may giggle too ^^ | 19:59 | |
niecza's message is even funnier: | |||
n: $1111111111111111111 | |||
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… | ||
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 | ||
FROGGS .oO( low hanging weirdo? ) | 20:02 | ||
masak | diakopter: hihi | ||
diakopter | wat | ||
or is that 'hi' as in 'hee' | 20:03 | ||
FROGGS | I guess that's the sound when you giggle | ||
diakopter | r: $2147483647 | 20:04 | |
p6eval | rakudo 1c9939: ( no output ) | ||
diakopter | r: $2147483648 | ||
p6eval | rakudo 1c9939: OUTPUT«Cannot use negative index -2147483648 on Anycurrent 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… | ||
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 | ||
masak | 哈哈 | ||
masak submits rakudobug | 20:08 | ||
diakopter | masak: conveniently for you, they start at the very top of today's clog | 20:09 | |
20:12
rindolf left
|
|||
diakopter | :> I might as well reproduce them all here for those who won't view the clog; <cough> jnthn | 20:12 | |
r: class F { also is F; } | |||
p6eval | rakudo 1c9939: OUTPUT«maximum recursion depth exceededcurrent 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
|
|||
diakopter | r: class ::F { ... }; class F is ::F { } | 20:12 | |
p6eval | rakudo 1c9939: OUTPUT«maximum recursion depth exceededcurrent 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… | ||
diakopter | r: role F { ... }; class F does F { } | ||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Method 'is_composed' not found for invocant of class 'Perl6::Metamodel::ParametricRoleGroupHOW'» | ||
diakopter | r: role F { ... }; class G does F { } | ||
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 :: { }; ::(::) | ||
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 | ||
..(src/gen/CORE.setti… | |||
masak submits rakudobug for 'also is' | |||
masak submits rakudobug for 'F is ::F' | |||
diakopter | r: $:: | ||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===ResizablePMCArray: index out of bounds!» | ||
masak submits rakudobug for 'F does F' | |||
diakopter | r: $/.$/ | ||
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» | ||
masak submits rakudobug for 'G does F' | |||
jnthn | That G does F one is...hm | 20:14 | |
diakopter | r: ()...() | ||
masak submits rakudobug for '::(::)' | |||
p6eval | rakudo 1c9939: OUTPUT«(timeout)» | ||
jnthn | Vaguely accurate in so far as the role isn't considered declared until you're further one. | ||
diakopter | r: say .HOW.new.Capture | ||
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» | ||
masak | jnthn: I don't understand. is it because of the '...' ? | 20:15 | |
diakopter: I don't see the problem with the '$/.$/' one. | |||
jnthn | masak: Yeah. But a bunch of those almost certianly wnat to so "no, you can't do a stubbed role" | ||
masak | diakopter: nor with the '()...()' one. it will never smartmatch, so it's infinite. | ||
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. | ||
diakopter | the prior one | ||
masak | oh, ok. | ||
I just don't see how the prior one is wrong. | |||
diakopter | like I said, me neither | ||
masak | r: Any.new.Any | 20:17 | |
p6eval | rakudo 1c9939: OUTPUT«No such method 'Any' for invocant of type 'Any' in block at /tmp/954NWtqmCL:1» | ||
jnthn | Just 'cus you don't understand it doesn't mean it's a bug :P | ||
diakopter | right. | ||
masak | that's why I'm asking and not submitting it ;) | ||
diakopter | that's why I was asking and not submitting it | ||
masak | we're in some weird kind of triangular agreement. | ||
moritz | if we don't know what the right behavior is, please don't submit bug reports | ||
diakopter | you're a triangle. | ||
moritz | it makes it really hard to close them | 20:18 | |
masak | moritz: oh no, not you too! :P | ||
now we're a square. | |||
moritz | so they are more of a liability than an asset | ||
masak | moritz: it's funny when you add to the discussion by repeating what three people just agreed on ;) | ||
moritz | \o/ | ||
moritz didn't backlog at all | |||
diakopter | masak: I think he was referring to ones you submitted, tho | ||
moritz | sorry 'bout that | 20:19 | |
diakopter | k no | ||
masak | no, those are bugs. | ||
moritz | I'm talking very generally | ||
masak | <jnthn> Just 'cus you don't understand it doesn't mean it's a bug :P | ||
<masak> that's why I'm asking and not submitting it ;) | |||
<diakopter> that's why I was asking and not submitting it | |||
diakopter | so why does $/.$/ turn into Any.new.Any | 20:20 | |
jnthn | r: say $/ | ||
p6eval | rakudo 1c9939: OUTPUT«(Any)» | ||
masak | that's why, yes. | ||
r: Any.Any | |||
p6eval | rakudo 1c9939: OUTPUT«No such method 'Any' for invocant of type 'Any' in block at /tmp/jzejzomQMJ:1» | ||
masak | probably turns into that, actually. | ||
diakopter | ok, but how is $/ a method name? | ||
jnthn | The $foo.$meth thing | 20:21 | |
Becomes $meth($foo) | |||
diakopter | $_='say'; $_.$_ | ||
r: $_='say'; $_.$_ | |||
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» | ||
diakopter | wat. | 20:22 | |
jnthn | Which in turn complains it doesn't have a postcircumfix:<( )> meaning it's not invokable I guess | ||
Don't confuse $foo.$meth with $foo."$meth"() | |||
diakopter | ohhh | ||
mst | mmm ... meth ... | ||
diakopter | r: $_=&say; $_.$_ | 20:23 | |
p6eval | rakudo 1c9939: OUTPUT«sub say() { ... }» | ||
diakopter | \o/ | ||
yeah I'd forgotten all about that method object thing | 20:24 | ||
20:26
kurahaupo joined
|
|||
masak | moritz: generally, when you see '* masak submits rakudobug', it's because I think there's an observable that isn't fulfilled | 20:26 | |
(where 'generally' means 'always, except in perhaps a handful of cases) | |||
' | |||
20:27
rindolf left
|
|||
diakopter | r: say nqp::isconcrete(Cursor.new); &(/a/)(Cursor.new) | 20:27 | |
p6eval | rakudo 1c9939: OUTPUT«1Cannot 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:27
domidumont left
|
|||
diakopter | [query: wha is the type object] | 20:28 | |
*what | |||
skids | an typed undefined value. | ||
diakopter | right, what's undefined there | 20:29 | |
masak | r: class A { ... }; class B is A {}; class A { also is B } | 20:30 | |
p6eval | rakudo 1c9939: ( no output ) | ||
masak | r: class A { ... }; class B is A {}; class A { also is B }; say "alive" | ||
p6eval | rakudo 1c9939: OUTPUT«alive» | ||
masak | r: class A { ... }; class B is A {}; class A { also is B }; say A ~~ B; say B ~~ A | ||
p6eval | rakudo 1c9939: OUTPUT«No such method 'ACCEPTS' for invocant of type 'B' in block at /tmp/lec3O1iu6C:1» | ||
jnthn | That one is RT'd. | ||
masak | aye. | ||
well, one very close to it. | |||
jnthn | I think I'll fix it by forbidding inheriting from a stub. | 20:31 | |
masak | yeah. | 20:36 | |
that's the conservative thing to do, I think. | |||
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 | ||
It's typically used for cyclical usage. | |||
You can't have cyclical types. :) | |||
If you mean inheritance cycles. | |||
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 :: { }; ::(::) | ||
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 | ||
..(src/gen/CORE.setti… | |||
jnthn | Sure, that's fine. | 20:39 | |
masak | diakopter: you deserve some kind of bizzarro prize for coming up with this one. | ||
dalek | kudo/md-nqp: daabef9 | jnthn++ | src/Perl6/ (4 files): Sort multi candidates at compile time. This is instead of doing so on the first call. |
||
kudo/md-nqp: 3b9db0b | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Refactor to avoid some control exception use. |
|||
diakopter | masak: actually it's just the latter part | ||
masak | r: ::(::) | ||
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 | ||
..(src/gen/CORE.setti… | |||
masak | so it is. | ||
diakopter | it's not an internal parrot error; it's the stringification of the pseudo-stash | ||
masak adds this to the ticket | 20:40 | ||
jnthn | r: ::.Str | ||
p6eval | rakudo 1c9939: ( no output ) | ||
jnthn | r: say ::.Str | ||
p6eval | rakudo 1c9939: OUTPUT«GLOBALish 7 EXPORT 11 $?PACKAGE 15 ::?PACKAGE 19 $_ 23 $/ 27 $! 39 $=pod 43 !UNIT_MARKER 51» | ||
jnthn | eek...what?! | ||
masak | why does it say "No such symbol"? | ||
diakopter | masak: no idea | ||
masak | if it's just a stash, shouldn't it just return Any? | ||
jnthn | masak: ::('wtf') | ||
r: ::('wtf') | |||
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… | ||
jnthn | masak: ::(...) != ::<...> | 20:41 | |
r: ::<wtf> | |||
p6eval | rakudo 1c9939: ( no output ) | ||
masak | oh. | ||
jnthn | ::(...) is the thing that goes interpolating | ||
masak | ok, not a bug, then. | ||
diakopter | r: say ::<> | ||
p6eval | rakudo 1c9939: OUTPUT«PseudoStash.new("GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "::?PACKAGE", GLOBAL, "\$_", Any, "\$/", Any, "\$!", Any, "\$=pod", Array.new(), "!UNIT_MARKER", !UNIT_MARKER, )» | ||
masak unsubmits that one | |||
jnthn | And that's zen hash indexing. | 20:42 | |
So, looks right :) | |||
diakopter | why'd you "eek...what?!"? | ||
earlier | |||
jnthn | diakopter: The numbers. | ||
diakopter | oh. what are those anyway | ||
jnthn | That's what I want to know. | 20:43 | |
diakopter | indexes into the hash's array? | ||
masak | they're what those symbols are sold for at a London auction :P | ||
jnthn | oh...it's a context underneath...is hash indexing returning... | ||
Oh, indexing is fine, it's iteration. | 20:44 | ||
masak | diakopter++ # fuzzing | 20:46 | |
diakopter | r: for :: { say $_.WHAT } | ||
p6eval | rakudo 1c9939: OUTPUT«(Pair)(Pair)(Pair)(Pair)(Pair)(Pair)(Pair)(Pair)(Pair)» | ||
diakopter | r: say ::.values | ||
p6eval | rakudo 1c9939: OUTPUT«7 11 15 19 23 27 39 43 51» | ||
diakopter | r: say ::.values | ||
p6eval | rakudo 1c9939: OUTPUT«7 11 15 19 23 27 39 43 51» | ||
LlamaRider | I need some help with finding docs/examples on writing new methods in P6 classes. Porting P5 idioms is tough otherwise... | 20:51 | |
moritz | r: my int $x: say ::.values | ||
LlamaRider | and I mean "new" methods | ||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Confusedat /tmp/TZHjKQdqCe:1------> my int $x:⏏ say ::.values expecting any of: colon pair» | ||
diakopter | moritz: this is Windows, not unix | ||
moritz | LlamaRider: doc.perl6.org/language/objects#Obje...nstruction | 20:52 | |
masak | LlamaRider: www.perlgeek.de/blog-en/perl-6/obje...ation.html | ||
LlamaRider | thanks moritz++ , masak++ . The second link is especially helpful | 20:55 | |
masak | yeah, I always like that one. | 20:57 | |
liked* | |||
LlamaRider | one thing remains unclear. The claim is I can allow arbitrary fields via self.bless(*, |%options); | 20:58 | |
how do I access them after that? Are they $. $! or something else | |||
20:59
xilo left
|
|||
masak | moritz++ # welcoming pushkar in the backlog :) | 21:00 | |
diakopter | r: .say ^..^ say 'alive' | 21:01 | |
p6eval | rakudo 1c9939: OUTPUT«(Any)alive» | ||
diakopter | wheh | ||
masak | LlamaRider: they must be $.attr vars in the class for that to work. | ||
21:02
skids left
|
|||
masak | davidagain: re toy programming language: you might want to check out Yapsi. | 21:04 | |
21:05
kaare__ left
21:06
ElDiabolo joined
|
|||
LlamaRider | r: class A { has $.key; }; A.new(:key('val')).key.say; | 21:11 | |
p6eval | rakudo 1c9939: OUTPUT«val» | ||
LlamaRider | class B { method new(%opt) { self.bless(*,|%opt); }; }; B.new({"key"=>"val"}).key.say; | ||
r: class B { method new(%opt) { self.bless(*,|%opt); }; }; B.new({"key"=>"val"}).key.say; | |||
p6eval | rakudo 1c9939: OUTPUT«No such method 'key' for invocant of type 'B' in block at /tmp/QOmddoc8zB:1» | ||
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» | ||
LlamaRider | masak: This leads me to believe they're not exactly the same as $. | ||
21:15
xilo joined
|
|||
LlamaRider | Or maybe the difference is only in the getters and setters not being created? | 21:15 | |
masak | yeah. | 21:17 | |
no attr, no accessor. | |||
(besides the fact that it also drops the pair on the floor because there's no attr) | |||
this ain't JavaScript. ;) | 21:18 | ||
LlamaRider | but then... how do I access those fields from within methods? Using $. is consistently giving errors. | 21:19 | |
but then... how do I access those fields from within methods? Using $. is consistently giving errors. | 21:20 | ||
argh, again double-posted :/ | |||
FROGGS | LlamaRider: you usually use $!key within methods | ||
LlamaRider moves IRC to a different workspace | |||
masak | FROGGS: it depends. | ||
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? | ||
masak | FROGGS: ...it depends whether you're taking an "inside view" or an "outside view" of the class. | ||
LlamaRider | r: class B { method new(%opt) { self.bless(*,|%opt); }; method k { $!key.say; } }; B.new({"key"=>"val"}).k; | ||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Attribute $!key not declared in class Bat /tmp/7VKbyc4APY:1------> self.bless(*,|%opt); }; method k { $!key⏏.say; } }; B.new({"key"=>"val"}).k;» | ||
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:1use of uninitialized variable of type Any in numeric context in method foo at /tmp/nsrgsOzr35:10» | ||
masak | r: class A { has $.foo = 21; method show-foo { say $.foo } }; class B is A { method foo { callsame() * 2 } }; B.new.show-foo | ||
p6eval | rakudo 1c9939: OUTPUT«42» | ||
masak | FROGGS: I believe that sums it up. | 21:23 | |
FROGGS | since when does that work? | ||
masak | FROGGS: because .show-foo uses $.foo, not $!foo, B can indirectly override its behavior. | ||
FROGGS: since always. | |||
FROGGS | hmmm, weird :o) | ||
masak | not really. | 21:24 | |
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 | ||
masak | LlamaRider: yes. | ||
dalek | p: 47effd6 | jnthn++ | src/QAST/Operations.nqp: nqp::gethllsym and nqp::bindhllsym Like getcurhllsym/bindcurhllsym, but with the HLL specified. |
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. | ||
masak | it doesn't create any new fields in the class. | 21:29 | |
you have to declare any attributes you want in the class. if you don't declare them, they don't exist. | |||
you don't get attributes you don't declare. undeclared attributes don't exist. they don't exist if you don't declare them. | |||
if you want them to exist, you have to declare them. | 21:30 | ||
LlamaRider | :D | ||
masak | hope that helps. :) | ||
LlamaRider | so what is bless doing with its arguments? | 21:31 | |
it helps, but I am not yet reaching the "aha" moment :) | |||
21:31
ElDiabolo left
|
|||
masak | bless maps any named arguments to any attributes in the class(es). | 21:32 | |
21:33
labster joined
|
|||
masak | if the pairing comes away with attributes or named args unmatched to each other, it doesn't care much. | 21:33 | |
21:33
prammer joined
|
|||
LlamaRider | but.. it should throw an error and give me inner peace | 21:34 | |
arguments disappearing into nothingness is troubling, that's one of the reasons I was so confused right now | |||
r: class B { method new(%opt) { self.bless(*,|%opt); };}; B.new({"key"=>"val"}); | 21:35 | ||
p6eval | rakudo 1c9939: ( no output ) | ||
LlamaRider | I'm thinking of a " attribute key was never declared! " error, or something on those lines | 21:36 | |
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 | ||
and create "has" declarations for them | |||
which is impossible for $self->{shift} = " Who knows what key this is" | 21:38 | ||
masak | LlamaRider: there has been talk about that kind of error. | ||
LlamaRider: it'd have to be at runtime, though. | |||
LlamaRider | masak: runtime is quite ok, as long as it's there | ||
masak | LlamaRider: if you want objects with keys that don't really have to be declared, maybe you really want a hash? | 21:39 | |
LlamaRider | Sure, am extra level of indirection always solves the problem :) | 21:41 | |
but then I am losing all of P6 OO nice-ness | |||
since all my attributes need to end up inside that has | |||
hash* | |||
masak | I guess you could start MOPing around, too. | 21:42 | |
and create a custom kind of class that didn't have to declare attributes. | |||
but that's unexplored territory, I believe. | |||
LlamaRider | I don't know enough to be OOPing yet, let alone MOPing :) | 21:43 | |
masak | *nod* | ||
LlamaRider | Of course I would immediately agree $self->{shift} is bad style and should've never been allowed in there in the first place. | ||
so maybe I would port with a vengeance | 21:44 | ||
masak++ at least now I know you can't do the old tricks anymore | |||
21:45
ElDiabolo joined
21:48
ElDiabolo left
21:49
kaleidic left
21:59
SmokeMachine left
22:01
cognominal left
22:05
Sifr joined
22:10
PacoAir left
22:17
bluescreen10 left
|
|||
dalek | rl6-roast-data: de88f80 | coke++ | / (4 files): today (automated commit) |
22:19 | |
22:19
spider-mario left
|
|||
[Coke] | rakudo down to 9 failures, niecza 8, pugs 7 | 22:21 | |
here's a new rakudo one: +integration/weird-errors.t 7 - Typed, non-internal exception | |||
jnthn | Hm, wonder what that is | 22:23 | |
LlamaRider | r: class A {my $.counter; method new() {$.counter++; self.bless(*); }; }; A.new; A.counter.say; | 22:24 | |
p6eval | rakudo 1c9939: OUTPUT«1» | ||
LlamaRider | r: class A {my $.counter; multi new() {$.counter++; self.bless(*); }; }; A.new; A.counter.say; | ||
p6eval | rakudo 1c9939: OUTPUT«===SORRY!===Variable $.counter used where no 'self' is availableat /tmp/ASxhJ10i8L:1------> A {my $.counter; multi new() {$.counter⏏++; self.bless(*); }; }; A.new; A.counte expecting any of: statement list … | ||
[Coke] | r: say '1X08'..'1X12' | ||
p6eval | rakudo 1c9939: OUTPUT«"1X08".."1X12"» | ||
LlamaRider | Is this a bug or is there a multi-method difference? | ||
[Coke] | r: say '1X08'..'1X12'.list | 22:25 | |
p6eval | rakudo 1c9939: OUTPUT«"1X08"..("1X12",).list.item» | ||
[Coke] | r: say ('1X08'..'1X12').list | ||
p6eval | rakudo 1c9939: OUTPUT«1X08 1X09 1X10 1X11 1X12» | ||
[Coke] | eval: print '1X08'..'1X12' | ||
that's different from the p5 behavior, which doesn't rangify all strings. | 22:26 | ||
TimToady | LlamaRider: that's not a multi-method; you wrote a multi-sub instead | 22:27 | |
try 'multi method new' | 22:28 | ||
LlamaRider | r: class A {my $.counter; multi method new() {$.counter++; self.bless(*); }; }; A.new; A.counter.say; | ||
p6eval | rakudo 1c9939: OUTPUT«1» | ||
LlamaRider | \o/ | ||
TimToady++ thanks! | |||
wait, class variables aren't visible in subs? That could also be a bug | |||
jnthn | $.foo is $(self.foo) | 22:29 | |
TimToady | $.foo is is a method call | ||
LlamaRider | maybe I need masak to repeat this another 10 times to me :D sorry, got it now | ||
masak | no, you're fine. | 22:38 | |
you're onto other issues now :P | |||
dalek | ast: 4bd5589 | (Timo Paulssen)++ | S05-substitution/subst.t: test for RT #83552 |
22:44 | |
22:53
skids joined
|
|||
dalek | kudo/md-nqp: e3db648 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Eliminate some get_root_global usages. |
22:54 | |
kudo/md-nqp: cf49051 | jnthn++ | src/ (3 files): Typed exceptions for multi-dispatch failure. |
|||
jnthn | moritz: I suspect the approach in ^^ will work out as an approach for typed exceptions from MOP stuff, fwiw. | ||
dalek | ast: b9fb830 | (Timo Paulssen)++ | S32-exceptions/misc.t: a test for RT #78314 |
22:58 | |
timotimo | i just closed a bug ending in 3 14 on the 14th of march :) | ||
jnthn | timotimo++ # attention to detail :) | 22:59 | |
timotimo: rt.perl.org/rt3/Ticket/Display.html?id=117125 may be closable | 23:00 | ||
timotimo: I think you added a test | |||
timotimo | oh yes indeed | 23:01 | |
thank you | |||
masak | 'night, #perl6 | 23:07 | |
TimToady | o/ | ||
LlamaRider | o/ masak | 23:21 | |
FROGGS | gnight all | 23:22 | |
jnthn | o/ FROGGS | ||
23:55
Chillance left
|
|||
jnthn | 'night, #perl6 | 23:59 |