Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-04-24

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:08 BenGoldberg parrot links to libtommath, which has an implementation of miller-rabin, which uses (where appropriate) expmod and sqrmod.
00:10 BenGoldberg Hopefully rakudo uses that for it's implementation of is-prime.
00:11 drbean joined #perl6
00:16 BenGoldberg Hmm, rakudo's is-prime makes use of nqp::isprime_I
00:18 diakopter BenGoldberg: https://github.com/perl6/nqp/blob/bfb36697aad07737a0bf416972447458edc57b84/src/vm/parrot/QAST/Operations.nqp#L1725
00:19 diakopter https://github.com/perl6/nqp/blob/e93a51d2789d85d39cd9dbf5cbe0327cf9205b25/src/vm/parrot/ops/nqp_bigint.ops#L209
00:19 diakopter https://github.com/perl6/nqp/blob/3370a7d103e20c290bfd2028b54921459a5394e7/3rdparty/libtommath/bn_mp_prime_is_prime.c#L25
00:22 diakopter hmm, there is a line missing in that comment
00:22 diakopter also in nearly every other fork/inclusion of that comment on the 'net
00:23 diakopter http://gpl.back2roots.org/source/routertech/fw/source/nsp/src/libtommath-1.0/bn_mp_prime_is_prime.c
00:23 BenGoldberg mp_prime_is_prime doesn't check if the number of trials is bigger than the prime table
00:23 BenGoldberg err, nevermind it does
00:23 diakopter Probability of error after t rounds
00:23 diakopter is the line preceding the one missing
00:24 diakopter maybe someone removed it b/c it was wrong
00:24 diakopter but left the sentence dangling
00:35 ifimbres joined #perl6
00:49 woosley joined #perl6
01:03 anuby joined #perl6
01:07 skids joined #perl6
01:16 raiph r: say "1,2,3,5,8,9,10,11" ~~ s/ <digit>* % ',' / $<digit> /
01:16 camelia rakudo ef73eb: OUTPUT«Cannot modify an immutable value␤  in sub infix:<=> at src/gen/CORE.setting:12891␤  in block  at /tmp/bh_bR0tRr3:1␤␤»
01:17 raiph r: $_ = "1,2,3,5,8,9,10,11"; tr/ <digit>* % ',' / $<digit> /; .say
01:17 camelia rakudo ef73eb: OUTPUT«[31m===[0mSORRY![31m===[0m�Non-declarative sigil is missing its name�at /tmp/za6O7olr0C:1�------> [32m$_ = "1,2,3,5,8,9,10,11"; tr/ <digit>* %[33m�[31m ',' / $<digit> /; .say[0m�    expecting any of:�        postfix�        infix stopper�        infix or me…
01:17 raiph r: $_ = "1,2,3,5,8,9,10,11"; s/ <digit>* % ',' / $<digit> /; .say
01:17 camelia rakudo ef73eb: OUTPUT« 1 2 3 5 8 9 1 0,11␤»
01:19 raiph r: $_ = "1,2,3,5,8,9,10,11"; s/ <digit>+ % ',' / $<digit> /; .say
01:19 camelia rakudo ef73eb: OUTPUT« 1 2 3 5 8 9 1 0,11␤»
01:19 raiph r: $_ = "1,2,3,5,8,9,10,11"; s/ <digit>** % ',' / $<digit> /; .say
01:19 camelia rakudo ef73eb: OUTPUT«[31m===[0mSORRY![31m===[0m�Quantifier quantifies nothing�at /tmp/YAtcz1GwVz:1�------> [32m$_ = "1,2,3,5,8,9,10,11"; s/ <digit>** [33m�[31m% ',' / $<digit> /; .say[0m�    expecting any of:�        postfix�        statement end�        statement modifier�    Ã¢â‚¬Â¦
01:19 raiph r: $_ = "1,2,3,5,8,9,10,11"; s/ <digit> ** 2..* % ',' / $<digit> /; .say
01:19 camelia rakudo ef73eb: OUTPUT« 1 2 3 5 8 9 1 0,11␤»
01:27 wswiss joined #perl6
01:29 wswiss my question is should i keep learning perl 5, or start following perl 6?
01:30 wswiss left #perl6
01:35 geekosaur perl5 won't go away because of perl6, any more than python2 stopped being used when python3 was released
01:42 dalek tablets: 3764ccc | (Herbert Breunung)++ | docs/appendix-a-index.txt:
01:42 dalek tablets: more links to glossary in intro of A
01:42 dalek tablets: review: https://github.com/perl6/tablets/commit/3764cccbdd
01:46 FROGGS_ joined #perl6
01:59 flussence just playing around with some code, .DUMP seems a little bit slow: https://gist.github.com/flussence/5449017
02:10 lustlife joined #perl6
02:14 drbean joined #perl6
02:19 japhb flussence, DUMP has not been speed-optimized
02:19 japhb Also, it is likely to be MUCH larger output than the others.
02:20 japhb You might want to compare the length of each output as well.
02:24 flussence yeah, it's 4 times the size of the .perl... having a readable tree is really useful though.
02:26 japhb r: say 1382.5 / (86.8 * 4)
02:26 camelia rakudo ef73eb: OUTPUT«3.981855␤»
02:26 japhb So perhaps 1/4 of the speed one would expect merely from difference in output size.
02:28 diakopter or quadratic
02:29 japhb diakopter, true.  I haven't done a real analysis of the code looking for that sort of stuff.
02:30 japhb (Though there are a couple places I build up arrays and join, rather than doing piecemeal concatenation, I haven't tried to make sure the latter never happens -- and as someone discovered a week or two ago, join isn't necessarily performant either, SIGH)
02:31 flussence I guess there's not much point worrying about it as long as the other two are also processing text about as fast as a 2400 baud modem...
02:32 xinming joined #perl6
02:32 diakopter .oO(  what's slower than a camel?  )   .oO(  a butterfly flying underwater  )
02:33 japhb Part of me is annoyed that some of the basic operations on which we build things like DUMP are so damned slow -- making it really hard to make something like DUMP even vaguely performant -- at the same time I recognize that building a VM takes LOTS OF WORK and I can't really expect "fast" before "complete" and "correct"
02:34 japhb (That said, "correct" would be awfully nice ...)
02:34 diakopter japhb: I'm looking forward to your yapc talk where you identify all the little bits that are so much slower individually
02:34 japhb Oh man, that's going to be "fun"
02:34 diakopter alternatively,  .oO(  a butterfly flying in a vacuum  )
02:37 diakopter .oO(  also, a butterfly flying in a vacuum cleaner is pretty slow too  )
02:39 diakopter er, s/butterfly/parrot/g
02:39 orafu joined #perl6
02:42 DrEeevil a spherical parrot flying in a vacuum on a frictionless plane?
02:42 diakopter yes, with no gravity
02:49 Targen joined #perl6
03:10 eternaleye joined #perl6
03:15 raiph r: $_ = "1,2,3,5,8,9,10,11"; s/ [<digit>+]+ % ',' / $<digit> /; .say
03:15 camelia rakudo ef73eb: OUTPUT« 1 2 3 5 8 9 1 0 1 1 ␤»
03:45 orafu joined #perl6
04:19 adu joined #perl6
04:24 Psyche^ joined #perl6
04:26 diakopter r: $_ = "1,2,3,5,8,9,10,11"; s/ [$<digit> = (<digit>+)]+ % ',' / $<digit> /; .say
04:26 camelia rakudo ef73eb: OUTPUT« 1 2 3 5 8 9 10 11 ␤»
04:27 diakopter raiph: ^
04:35 lue r: $_ = "1,2,3,5,8,9,10,11"; s/ [$<num> = (<digit>+)]+ % ',' / $<num> /; .say # just for slight increase in readability
04:35 camelia rakudo ef73eb: OUTPUT« 1 2 3 5 8 9 10 11 ␤»
04:44 drbean joined #perl6
04:57 SamuraiJack joined #perl6
05:09 Nom- cls
05:09 Nom- oops
05:10 diakopter .oO(  command.com or cmd.exe?  )
05:11 Nom- me?
05:11 diakopter yes :)
05:11 Nom- That was me trying to do a screen shotcut in tmux and typing ahead without noticing it didn't work :P
05:36 SamuraiJack_ joined #perl6
05:43 Nom- I thought the answer to this question would be obvious, but doesn't seem to be.... is there a simple way one can run the nqp compiler from source? ... ie use a built version of nqp to run the unbuilt source so I can make quick changes and test
05:49 arnsholt If you're hacking on NQP, you have to recompile to test
05:49 Nom- bugger :(
05:50 arnsholt A couple of exceptions if you're doing stuff with the C code, mind
05:50 arnsholt Yeah, it's a bit impractical
05:50 Nom- I'm coming back to a project I started looking at last weekend... want to look at starting NQP running on the Rubinius VM
05:51 arnsholt Oh, right. I have no idea how to best do that
05:51 arnsholt Take a look at the early history of jnthn's nqp-jvm-prep perhaps?
05:51 Nom- Yeah, I've looked at that before
05:51 Nom- Maybe i'll have to look again
05:52 Nom- It makes me wish the parser & lexer were written in C though since that'd be much easier to hook into pretty much anything
05:52 Nom- C'est la vie
05:54 census joined #perl6
05:56 arnsholt The problem is that it has to been extensible, more or less arbitrarily, at run-time
05:56 arnsholt Which is less fun when it's in C =)
05:57 arnsholt If it's any consolation, the parser code is a lot more manageable these days
05:57 arnsholt It used to be all in PIR (lots and lots of it), but now it's in NQP =)
05:57 adu nqp++
06:01 frdmn joined #perl6
06:03 diakopter rn: <~~>~~/<~~>/
06:03 camelia rakudo ef73eb: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 111391 (src/gen/CORE.setting.pir:50074) (src/gen/CORE.setting:9712)␤called from Sub '!cursor_start_all' pc 10320 (src/stage2/QRegex.pir:4270) (src/stage2/QRegex.nqp:542)␤called from Sub '' pc 155…
06:03 camelia ..niecza v24-37-gf9c8fc2: OUTPUT«[31m===[0mSORRY![31m===[0m��Action method assertion:sym<~~> not yet implemented at /tmp/qUXJoTPxEC line 1:�------> [32m<~~>~~/<~~[33m�[31m>/[0m��Unhandled exception: Unable to resolve method oplift in type Any�  at /home/p6eval/niecza/src/RxOp.pm6 …
06:04 diakopter pugs: <~~>~~/<~~>/
06:04 camelia pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120717/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
06:18 Nom- Yeah, I think I'm starting to see how jnthn did it all, so it's just a matter of putting in the hours now
06:18 diakopter o_O
06:19 Nom- If I can get to something that will generate something similar to his original JAST intermediate format this weekend I'll be on my way I think :)
06:19 diakopter O_O :D
06:27 diakopter Nom-: there's a fairly frequent pattern of folks starting nqp implementations for one VM/platform or another but losing interest after a while.. I don't think anyone's tried Rubinious though
06:28 diakopter er
06:28 diakopter Rubinius
06:41 Nom- Yeah, I've got a pretty good idea why they give up :P
06:41 Nom- It's not exactly easy to quickly iterate on changes
06:42 Nom- I've actually gotten further from an implementation perspective writing a parser/lexer from scratch than using the existing ones
06:42 Nom- But obviously that's not what would be needed for a proper implementation
06:43 diakopter the way it's been done before is to use nqp on parrot as a cross compiler
06:43 jerome_ joined #perl6
06:43 Nom- Yeah.. getting that set up seems to be the hard part, but once that hurdle it crossed...
06:43 diakopter yeah.
06:43 diakopter depending on how big you're defining "getting that set up"
06:44 diakopter I mean, if you include "make the bootstrap work" .... ;)
06:44 diakopter but to get it to generate *something* your runtime can run shouldn't be horribly hard
06:44 Nom- Way further down the track than I'm targeting for now :P
06:44 Nom- Step 1 is to get some kind of IR which I can parse and turn into bytecode on the Rubinius side
06:45 diakopter if I were you, I'd compile to the bytecode in the cross compiler
06:45 diakopter (initially)
06:45 Nom- Well I have to bridge the parrot-rubinius bridge first :)
06:46 Nom- That's why I was targeting some simple IR like the JAST stuff
06:46 diakopter don't run 'em in the same process :P no one's made a cross compiler that fancy ;)
06:46 diakopter yeah... RAST
06:46 Nom- Already created the folder ;)
06:47 diakopter heh.
06:47 diakopter well, your awakeness seems to indicate you're not in Europe
06:47 diakopter well.
06:47 diakopter actually, it's morning there now
06:47 Nom- 'Straya
06:47 Nom- Australia for those who don't understand 'straylian stang typed out :P
06:48 SamThomas joined #perl6
06:48 quester joined #perl6
06:48 diakopter .oO(  stang  )
06:48 Nom- *slang
06:49 Nom- t is just an l with an extra - :P
06:49 diakopter r: my stang Foo is Perl6 { }
06:49 camelia rakudo ef73eb: OUTPUT«[31m===[0mSORRY![31m===[0m�Type 'stang' is not declared�at /tmp/DMWmhLsIoA:1�------> [32mmy stang[33m�[31m Foo is Perl6 { }[0m�Malformed my�at /tmp/DMWmhLsIoA:1�------> [32mmy [33m�[31mstang Foo is Perl6 { }[0m�    expecting any of:�        scoped decla…
06:50 SamThomas ls
06:51 diakopter .
06:51 diakopter ..
06:53 diakopter haha
06:58 dickinsm joined #perl6
06:59 baest joined #perl6
07:03 pupoque joined #perl6
07:06 autumn joined #perl6
07:06 kurahaupo left #perl6
07:06 domidumont joined #perl6
07:08 daxim joined #perl6
07:09 Nom- Hopefully I do make some progress... I think a Rubinius implementation could actually be useful... it's a solid VM that's in use in production today
07:09 sorear słang?
07:09 Nom- I'm sure I'll be back here later though once I really dive into it... need to pretend to do some work for the day job for now :)
07:12 Rix joined #perl6
07:21 diakopter r: my Int|Str $a;
07:21 camelia rakudo ef73eb: OUTPUT«[31m===[0mSORRY![31m===[0m�Type 'Int' is not declared. Did you mean 'int'?�at /tmp/gMKUoEcH5P:1�------> [32mmy Int[33m�[31m|Str $a;[0m�Malformed my�at /tmp/gMKUoEcH5P:1�------> [32mmy Int[33m�[31m|Str $a;[0m�    expecting any of:�        scoped declarat…
07:21 diakopter r: my int|Str $a;
07:21 camelia rakudo ef73eb: OUTPUT«[31m===[0mSORRY![31m===[0m�Type 'int' is not declared. Did you mean 'Int'?�at /tmp/oaeowoKE49:1�------> [32mmy int[33m�[31m|Str $a;[0m�Malformed my�at /tmp/oaeowoKE49:1�------> [32mmy int[33m�[31m|Str $a;[0m�    expecting any of:�        scoped declarat…
07:21 diakopter hee
07:24 labster good *, *
07:24 diakopter *
07:27 rindolf joined #perl6
07:27 FROGGS joined #perl6
07:27 FROGGS morning
07:28 census morning FROGGS and rindolf!
07:28 FROGGS hi census
07:28 labster r: sub infix:<is> (\a,\b) {a ~~ b};    if $*PERL is Cool and all(',') { say Whatever }
07:28 camelia rakudo ef73eb: OUTPUT«(Whatever)␤»
07:30 rindolf census: morning.
07:30 rindolf FROGGS: morning.
07:30 rindolf census, FROGGS : what's up?
07:32 FROGGS rindolf: $work
07:32 census $coding
07:32 census rindolf: $coding
07:32 FROGGS well, ya, $coding :o)
07:32 census :)
07:33 rindolf census: what are you coding?
07:34 rindolf census: please stop /msg ing me.
07:34 census rindolf: oh i msged you because i know this channel does not like me directly discussing non-perl6 topics in here ...
07:34 census i'm doing some p5 work ...
07:35 rindolf census: OK.
07:35 FROGGS rindolf: you should've asked 10-12 hours ago though :o)
07:35 diakopter if anyone would like to help census, please join #help-census
07:35 census ;:)
07:36 domidumont joined #perl6
07:41 kaleem joined #perl6
07:42 FROGGS labster: how is the state about IOs and Paths and Specs within rakudo?
07:42 FROGGS are there issues left or is there just the open question about core modules?
07:43 labster Well, I think I'm going to need to move File::Spec stuff into core.  At least, it needs to be available to the setting, so I think it makes the most sense there.
07:44 labster Compiling it in seems to infinite loop on me, so there's more debugging in my future...
07:44 labster https://github.com/rakudo/rakudo/pull/129  is literally an open issue :)
07:47 labster that makes changes IO to IO::Handle (but leaves .IO, because I don't see a real reason to change that), and makes IO an empty tagging class -- I'm not sure I can do it as a role as in S32::IO, because IO::subclasses need someplace to live for lookups.
07:47 moritz r: role Foo { }; class Foo::Bar { }; say Foo::Bar.new
07:47 camelia rakudo ef73eb: OUTPUT«Foo::Bar.new()␤»
07:48 moritz labster: is there any reason the same couldn't work for IO?
07:48 moritz r: role Foo { }; class Foo::Bar does Foo { }; say Foo::Bar.new
07:48 camelia rakudo ef73eb: OUTPUT«Foo::Bar.new()␤»
07:48 labster r: my role Foo { }; my class Foo::Bar { }; say foo::Bar.new
07:48 camelia rakudo ef73eb: OUTPUT«Could not find symbol '&Bar'␤  in method <anon> at src/gen/CORE.setting:10834␤  in any  at src/gen/Metamodel.nqp:2504␤  in any find_method_fallback at src/gen/Metamodel.nqp:2492␤  in any find_method at src/gen/Metamodel.nqp:939␤  in block  at /tmp/3I0QZrQv_X:1␤␤»…
07:48 labster because they're lexically scoped.
07:48 moritz r: my role Foo { }; my class Foo::Bar { }; say Foo::Bar.new
07:48 camelia rakudo ef73eb: OUTPUT«Foo::Bar.new()␤»
07:49 moritz works if you spell it correctly :-)
07:49 moritz foo vs. Foo
07:49 labster wait... my damn IRC client... those are not URLs!
07:50 labster okay, I'll look at that some more
07:50 rindolf joined #perl6
07:50 crab2313 joined #perl6
07:51 labster But I think the thing that really needs some work is S16.
07:51 cognominal joined #perl6
07:52 labster I'm not sure -- do we really want qp//?
07:54 diakopter r: class foo { method blah { our $bar = 33 }; method boo { say $bar } }; foo.boo; foo.blah; foo.boo
07:54 camelia rakudo ef73eb: OUTPUT«(Mu)␤33␤»
07:56 FROGGS quote path?
07:56 FROGGS hmmm, where is the problem with qp/q:p ?
07:57 rindolf joined #perl6
07:57 labster There's not much problem, I just wonder about the use case being significant enough.
07:59 FROGGS labster: well, I like qq very much, but you usually dont have " and ' in paths
08:00 FROGGS but maybe there are cases where you have both, and that'd be ugly without qq
08:00 moritz labster: qp is a feature that everybody so far has refused to implement
08:00 FROGGS moritz: but why?
08:00 labster One more thing:  I'd like a function to do readlink.  I'm too stupid in C to do it myself, and parrot doesn't have an op for it.  But if we ever want something like Path::Class->resolve()
08:00 labster ...we'd need it
08:00 dalek joined #perl6
08:00 [Coke] joined #perl6
08:01 FROGGS labster: maybe I can help you there
08:01 moritz labster: you can open a parrot issue requesting that feature
08:01 moritz FROGGS: because it's mostly stupid (more)
08:01 moritz 1) UNIX paths are actually bytes, but literals are Str
08:01 labster n: say qp/foo/ # not everyone
08:01 camelia niecza v24-37-gf9c8fc2: OUTPUT«"foo".IO␤»
08:02 moritz 2) there's not much point in having an extra quoting construct if you don't do anything special with it, in the parser
08:02 moritz but it's spec, so if you feel like, implement it
08:03 moritz labster: I didn't know that
08:04 kresike joined #perl6
08:05 kresike hello all you happy perl6 people
08:05 labster qp:win// might be nice due to the lack of double-backslashes, I suppose
08:07 rindolf joined #perl6
08:10 diakopter heh. rakudo disallows @_
08:10 diakopter std doesn't
08:11 moritz where?
08:11 diakopter r: my @_
08:11 camelia rakudo ef73eb: OUTPUT«[31m===[0mSORRY![31m===[0m�Cannot use placeholder parameter @_ in the mainline�at /tmp/HaTvSzCyen:1�------> [32mmy @_[33m�[31m<EOL>[0m�»
08:11 diakopter std: my @_
08:11 camelia std 86b102f: OUTPUT«ok 00:00 41m␤»
08:13 labster okay, sent in a Parrot issue about readlink, I hope it gets some attention.
08:17 labster I'm tempted to rename File::Spec to IO::Spec because it goes with those classes thematically.
08:18 FROGGS diakopter: STD isnt perfect in all cases :o)
08:19 moritz I guess this time it's rakudo that isn't perfect
08:19 moritz std: @_
08:19 camelia std 86b102f: OUTPUT«[31m===[0mSORRY![31m===[0m�Placeholder variable @_ may not be used outside of a block at /tmp/btONj2CC9M line 1:�------> [32m<BOL>[33m�[31m@_[0m�Check failed�FAILED 00:00 41m�»
08:19 moritz that error should only appear in declarational context
08:19 diakopter r: { say "@_" }()
08:20 camelia rakudo ef73eb: OUTPUT«@_␤»
08:20 FROGGS moritz: if only unix paths are bytes, then a qp{} should still be a Str, no?
08:20 diakopter whaaaaaaa
08:20 FROGGS diakopter: email address parsing?
08:20 diakopter n: { say "@_" }()
08:20 camelia niecza v24-37-gf9c8fc2: OUTPUT«@_␤»
08:20 diakopter oh.
08:20 FROGGS r: { say "@_[]" }()
08:20 camelia rakudo ef73eb: OUTPUT«␤»
08:21 diakopter n: { say "@_[]" }()
08:21 camelia niecza v24-37-gf9c8fc2: OUTPUT«␤»
08:21 salv0 joined #perl6
08:21 berekuk joined #perl6
08:21 diakopter rn: { @_ := [5,6]; say "@_[]" }()
08:21 camelia niecza v24-37-gf9c8fc2: OUTPUT«5 6␤»
08:21 camelia ..rakudo ef73eb: OUTPUT«[31m===[0mSORRY![31m===[0m�Cannot use bind operator with this left-hand side�at /tmp/xO6AzI6g30:1�------> [32m{ @_ := [5,6][33m�[31m; say "@_[]" }()[0m�    expecting any of:�        postfix�»
08:21 diakopter rn: { @_ = [5,6]; say "@_[]" }()
08:21 camelia rakudo ef73eb: OUTPUT«5 6␤»
08:21 camelia ..niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Unable to resolve method LISTSTORE in type List␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/5IoG7VkKGk line 1 (ANON @ 2) ␤  at /tmp/5IoG7VkKGk line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3)…
08:23 diakopter r: { @_ = 5,6; say "@_[].elems" }()
08:23 camelia rakudo ef73eb: OUTPUT«5 6.elems␤»
08:23 diakopter o_O
08:23 diakopter r: { @_ = 5,6; say "@_[].elems()" }()
08:23 camelia rakudo ef73eb: OUTPUT«2␤»
08:23 labster r: str ~~ Str
08:23 camelia rakudo ef73eb:  ( no output )
08:23 labster r: say str ~~ Str
08:23 camelia rakudo ef73eb: OUTPUT«True␤»
08:23 diakopter r: say Str ~~ str
08:23 camelia rakudo ef73eb: OUTPUT«False␤»
08:23 diakopter r: say str ~~ Stringy
08:24 camelia rakudo ef73eb: OUTPUT«False␤»
08:25 moritz labster: I have a local patch on top of your pull request that makes IO a role; spectesting it now
08:25 moritz it builds, which is a good sign :-)
08:25 labster oh, good
08:25 rindolf joined #perl6
08:25 moritz one pitfall to avoid was that class IO is stubbed before it's declared
08:25 moritz r: class A { ... }; role A  { }
08:25 camelia rakudo ef73eb: OUTPUT«[31m===[0mSORRY![31m===[0m�Redeclaration of symbol A�at /tmp/rmLsDiulnt:1�------> [32mclass A { ... }; role A  [33m�[31m{ }[0m�    expecting any of:�        argument list�        postfix�        statement end�        statement modifier�        statement mod…
08:26 moritz r: role A { ... }; role A  { }
08:26 camelia rakudo ef73eb:  ( no output )
08:26 moritz r: package A { ... }; role A  { }
08:26 camelia rakudo ef73eb: OUTPUT«[31m===[0mSORRY![31m===[0m�The following packages were stubbed but not defined:�    A�at /tmp/xFdpARkC7u:1�------> [32mpackage A { ... }; role A  { }[33m�[31m<EOL>[0m�    expecting any of:�        statement list�        postfix�        statement end�»…
08:26 moritz so the stubbing need to be of the right kind (package/role/class)
08:26 diakopter r: sub foo { return 5,6,:foo(:foo(:foo)) }; my (*@x,*%y) := foo(); say @x; say %y
08:26 camelia rakudo ef73eb: OUTPUT«5 6␤("foo" => Mu).hash␤»
08:38 drbean joined #perl6
08:43 rindolf joined #perl6
08:43 dalek specs: 055f688 | diakopter++ | S01-overview.pod:
08:43 dalek specs: missing
08:43 dalek specs: review: https://github.com/perl6/specs/commit/055f68817f
08:43 dalek specs: 26ec6d9 | diakopter++ | S02-bits.pod:
08:43 dalek specs: tiny errs
08:43 dalek specs: review: https://github.com/perl6/specs/commit/26ec6d9365
08:45 census joined #perl6
08:46 pupoque joined #perl6
08:47 quester left #perl6
08:48 dakkar joined #perl6
08:53 MrMeek-afk joined #perl6
08:57 domidumont joined #perl6
08:59 rindolf joined #perl6
09:00 diakopter r: $_ = macro foo { {{ }} }; say $()
09:00 camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Error while compiling block  (source text: "$_ = macro foo { {{ }} }; say $()"): Error while compiling op call: Error while compiling block : Error while compiling op p6store (source text: "="): Unknown QAST node type NQPMu␤»
09:00 diakopter r: $_ = macro { };
09:00 camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Error while compiling block  (source text: "$_ = macro { };"): Error while compiling op call: Error while compiling block : Error while compiling op p6store (source text: "="): Unknown QAST node type NQPMu␤»
09:00 pupoque joined #perl6
09:01 arnsholt I'm guessing the AST of a macro block doesn't have the bits an op call expects to find
09:02 diakopter r: $_ = BEGIN macro { };
09:02 camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling block  (source text: " macro { }"): Unknown QAST node type NQPMu␤»
09:02 hoelzro :sus
09:02 hoelzro damn, sorry
09:02 diakopter /kickban hoelzro
09:02 diakopter oops
09:02 FROGGS hehe
09:14 rindolf joined #perl6
09:21 tgt joined #perl6
09:23 gtodd1 joined #perl6
09:24 domidumont joined #perl6
09:24 rindolf joined #perl6
09:25 diakopter S02 makes my head hurt
09:25 hoelzro it's a bit overwhelming =/
09:26 diakopter moritz: I'm making a list of unimplemented thingies - https://ethercalc.org/i982ooyabg
09:26 diakopter anyone: please leave some row gaps and start adding things if you like
09:26 diakopter for other synopses
09:27 diakopter S02 is making me cry
09:27 Kharec joined #perl6
09:27 FROGGS .ask TimToady Should the PairSet type go too is Set gets removed? http://perlcabal.org/syn/S02.html#line_1902
09:27 yoleaux FROGGS: I'll pass your message to TimToady.
09:28 FROGGS diakopter: I'll add things later for at least S10 and S11
09:29 diakopter cool
09:35 FROGGS diakopter: btw, this is working now locally since last night: perl6 -e '{ use v5; use Test2; eval "say $^V" }; { use 5.10; say $0 };'  # Test2 will be treated as a Perl5 module, even if there is no v5 in it...
09:35 diakopter cool.
09:35 diakopter FROGGS**=FROGGS
09:35 masak good antenoon, #perl6
09:35 FROGGS ahh, and   use v6; use Test2:from<Perl5>;   is working too
09:35 hoelzro whoa, that's sweet
09:35 FROGGS hi masak
09:36 pecastro joined #perl6
09:37 rindolf joined #perl6
09:37 * diakopter decides to skip the rest of S02  ("Names")  for now, since last I remember, most of that was implemented
09:38 diakopter okay, that's nify.
09:38 diakopter nifty.
09:38 diakopter $(blah) and such are introduced 3 times in S02 as if it's the first time
09:48 rindolf joined #perl6
09:57 jaffa4 joined #perl6
09:57 rindolf joined #perl6
10:00 tadzik ello ello
10:00 tadzik apparently my h is broken
10:02 FROGGS ewww
10:02 FROGGS tadzik: you should buy a new keyboard and send timotimo you tab and left alt key :o)
10:04 spider-mario joined #perl6
10:17 diakopter r: sub infix:[/./] { say $^a, $^b }; 5@4
10:17 camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Method 'ast' not found for invocant of class 'NQPMu'␤»
10:17 diakopter heh, a genuine bug
10:19 krunen joined #perl6
10:19 diakopter r: say :99999999999999999999999('dd')
10:19 camelia rakudo ef73eb: OUTPUT«Cannot convert string to number: radix (in decimal) expected after ':' in ':⏏-2147483648<dd>' (indicated by ⏏)␤  in method sink at src/gen/CORE.setting:10837␤  in method BUILDALL at src/gen/CORE.setting:801␤  in method bless at src/gen/CORE.setting:743␤  in method …
10:19 diakopter 'nother genuine bug
10:19 diakopter where's masakbot when you need him
10:20 * masak submits rakudobug
10:21 * masak submits rakudobug
10:21 diakopter heh. try golfing that former one. :D
10:23 daxim joined #perl6
10:25 masak diakopter++ # an artist in disguise
10:26 diakopter r: sub infix:[/./]
10:26 camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Method 'ast' not found for invocant of class 'NQPMu'␤»
10:28 masak there you go.
10:28 * masak includes that in the ticket
10:38 cognominal joined #perl6
11:02 sqirrel joined #perl6
11:06 jerome_ joined #perl6
11:13 FROGGS masak++
11:18 masak why are people talking about "ripping out Set" in the backlog? what prior conversation did I miss? :)
11:24 FROGGS masak: I remember that TimToady said that Set should be removed, but it seems like this happened when ilbot was absent :/
11:26 moritz <gandalf> What madness is this? </gandalf>
11:27 masak +1
11:27 masak Set? removed? why in the world...?
11:28 xinming joined #perl6
11:28 masak of all the weird container classes we have in Perl 6, Set is by far the least useless, IMO.
11:29 FROGGS hmmm
11:29 FROGGS maybe I am thinking of BagSet?
11:31 shachaf Is Set a... Set? That doesn't sound very weird.
11:32 FROGGS damn, my braino sucks
11:33 masak shachaf: sorry, what?
11:33 FROGGS masak: https://github.com/perl6/roast/commit/03595c15de93bc8064f820ce5fc4aaab4d16c405
11:33 * masak looks
11:33 FROGGS it was Seq, not Set -.-
11:33 diakopter r: ;
11:34 masak oh, Seq!
11:34 shachaf Never mind.
11:34 FROGGS timotimo should have said: Did you mean Seq?
11:34 FROGGS :P
11:34 masak FROGGS: I feel much less confused and apprehensive now.
11:34 camelia rakudo ef73eb:  ( no output )
11:34 diakopter wait, I thought you were timotimo
11:34 FROGGS ?
11:34 diakopter kidding, nm
11:34 FROGGS hehe
11:35 FROGGS okay
11:35 FROGGS *g*
11:35 masak surely not, the Levenshtein distance between "FROGGS" and "timotimo" must be huge.
11:36 moritz just 7, if you discount case
11:37 FROGGS O.o
11:37 * masak .oO( "I'm a PC" -- "I'm a Mac. I discount case." )
11:38 diakopter both Mac and PC discount case
11:38 diakopter by default
11:39 masak oh, that is true.
11:40 * masak hugs Unix
11:40 masak oh btw.
11:40 masak I have a Perl 6 day today.
11:41 masak my plan: *finish* the t2 reviewing. blog about the #masakism course. blog about t2.
11:41 masak (yeah, $work is finally easing up.)
11:42 moritz \o/
11:45 daxim masak, here's a prediction: 4c6348acc9ce3d37ff5930209fe2eb602db64d91   I will reveal it later. this hash proves I have made the prediction at this time
11:45 masak daxim: whatever that is, using a SHA-1 for that is pretty cool.
11:46 masak daxim: though SHA-1 is cracked enough for that to be exploitable, you know that, right? :P
11:46 xinming joined #perl6
11:46 daxim everyone's free to try to crack it within the time frame it becomes moot.  you hear that, echelon?
11:47 masak daxim: in any case, I'm now very curious. :)
11:47 masak daxim: what's the time frame? when will you tell us? or is that part of the secret?
11:48 * masak .oO( or can't you tell us that *either*?! )
11:48 daxim later
11:48 arnsholt I'm thinking perhaps a git commit?
11:50 masak yeah. or any git object.
11:52 kaleem joined #perl6
11:52 * moritz used the sha-1 trick for his iterated prisoner's dilemma strategy
11:52 masak daxim++ moritz++
11:53 moritz masak: have you heard of zero-knowledge proofs?
11:53 masak sounds familiar.
11:54 * masak reads on Wikipedia
11:55 moritz http://mathoverflow.net/questions/22624/example-of-a-good-zero-knowledge-proof/22628#22628 this is a very intuitive example
11:55 masak I love the world we're living in. I can literally search for anything within the span for five seconds.
11:55 nwc10 but likely you can't find details of anything minor that happened more than 10 years ago
11:55 rindolf joined #perl6
11:56 nwc10 (which is frustrating)
11:57 moritz it only works for the body of "common knowledge". Luckily that's rather big, and growing
11:57 moritz but once you look for very specific stuff (heat conductivity of a certain alloy, for example) you quickly run into its limits :-)
11:58 tgt joined #perl6
11:58 nwc10 or historical news reports on terrorist bombs that caused no casualties
11:58 masak well, it just so happens that I'm not finished with all the common knowledge yet! :P
11:59 * masak .oO( don't rush me! )
11:59 moritz and the common knowledge probably grows faster that any single human can learn it
11:59 FROGGS there is a new problem, the available information will become to big at some point so one might isn't able to find what you want
11:59 FROGGS s/you/one/
12:00 moritz FROGGS: search engines seem to handle that nicely, and they'll also continue to progress
12:00 pupoque joined #perl6
12:02 dalek rakudo/nom: 2dca6ed | (Brent Laabs)++ | src/ (5 files):
12:02 dalek rakudo/nom: rename class IO to IO::Handle, tag IO subclasses with base class IO
12:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2dca6ed950
12:02 dalek rakudo/nom: 5630ceb | moritz++ | src/ (5 files):
12:02 dalek rakudo/nom: Merge branch 'nom' of https://github.com/labster/rakudo into nom
12:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5630ceb559
12:02 dalek rakudo/nom: 37c9956 | moritz++ | src/core/ (3 files):
12:02 dalek rakudo/nom: make IO a role
12:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/37c9956502
12:02 FROGGS moritz: I hope so
12:05 dalek roast: b60b89b | moritz++ | S (2 files):
12:05 dalek roast: chase some IO -> IO::Path spec changes
12:05 dalek roast: review: https://github.com/perl6/roast/commit/b60b89b226
12:05 masak FROGGS: there's a Swedish SF short story about how the Web evolves into the (galactic) Snarl, so enourmously huge that anything that you could conceivably think of has already been put online.
12:05 masak FROGGS: hammer mindlessly on your keyboard and hit search? hundreds of beings have already written *poems* with exactly those random letters in them.
12:06 masak it's a nice story. kinda makes one think. :)
12:15 cognominal masak: sounds like http://en.wikipedia.org/wiki/The_Garden_of_Forking_Paths
12:16 cognominal someday I will learn spanish just to learn Borges in the text
12:17 masak sounds like a plan :)
12:18 cognominal In fact the title, I searched is http://en.wikipedia.org/wiki/The_Library_of_Babel
12:21 Nom- man parrot is so slow
12:21 Nom- :P
12:22 cognominal The library of babel is a metaphor for the modern world where we are flooded by meaningless information, and if the information makes senses, it is not accurate.
12:24 kaleem joined #perl6
12:26 Nom- Method 'compunit_mainline' not found for invocant of class 'HLL::Backend::JVM' <-- anyone know if that's new?
12:28 moritz Nom-: I haven't heard it before. What did you do to trigger that error?
12:30 FROGGS Nom-: is that when building nqp-jvm? note: there is no rakudo-jvm yet
12:43 Nom- Yeah it is
12:44 Nom- It looks like it builds the files I wanted anyway... just bombs out with that error immediately after
12:46 pupoque joined #perl6
12:50 Targen joined #perl6
12:52 masak "Not only did he arguably invent the hypertext novel—Borges went on to describe a theory of the universe based upon the structure of such a novel." http://en.wikipedia.org/wiki/The_Garden_of_Forking_Paths
12:52 masak whoa.
12:55 cognominal masak: I knew you would like it
12:56 PacoAir joined #perl6
12:57 masak it sounds familiar. I've started in on Borges, and probably heard the name of that novella. but I haven't read it.
13:01 FROGGS joined #perl6
13:13 masak '"Edelweiss" is not the national anthem of Austria, but is in fact an original composition created for the musical The Sound of Music.' -- https://en.wikipedia.org/wiki/List_of_common_misconceptions
13:13 masak I think this channel might be the most informed IRC channel wrt that very misconception :P
13:14 masak (at least about "Edelweiss" not being the national anthem of Austria)
13:19 colomon joined #perl6
13:27 daxim https://www.youtube.com/watch?v=TLVIICWRbjM   # your earworm for the rest of the day
13:41 skids joined #perl6
14:01 sizz joined #perl6
14:01 araujo joined #perl6
14:03 masak daxim: what I don't even
14:03 daxim I hear it was fab
14:03 daxim back then.
14:07 masak today's autopun: https://twitter.com/ceterum_censeo/status/326634471292022786
14:27 Targen joined #perl6
14:34 xilo joined #perl6
14:36 masak this t2 solution scares me a little.
14:36 daxim_ joined #perl6
14:36 arnsholt In a good way or a bad way? =)
14:37 masak in a good way.
14:37 arnsholt Excellent!
14:38 masak two things: (a) first off, this person knows how to code Perl 6. the improvement from year to year is noticeable.
14:38 masak (b) also, the solution does it hard-core with grammar derivations.
14:38 masak I get the feeling that this *program* knows more about grammars than I do!
14:38 arnsholt =D =D
14:40 census joined #perl6
14:48 kaare_ joined #perl6
14:52 * [Coke] wonders how you'd use grammars on t2, and eagerly awaits the solution.
14:54 tgt joined #perl6
14:55 masak oh, I meant 'grammar production rules' in a very loose sense. as data structures and algorithms.
14:55 masak and here's a haiku it just produced:
14:55 masak sheep hide at bad rains
14:55 masak bitterly modest slumber
14:55 masak its star to their rains
14:55 * masak weeps happily
14:55 cognominal t2?
14:55 masak cognominal: once upon a time, I ran a contest.
14:55 masak I'm not done reviewing the solutions yet...
14:57 masak cognominal: http://strangelyconsistent.org/blog/the-2012-perl-6-coding-contest
14:58 arnsholt masak: Oh, it uses something like a CFG to generate? That's very cool!
14:58 thou joined #perl6
15:01 * moritz looks forward to seeing that solution
15:02 masak seriously, I could just spend the rest of the day pasting haikus on the channel.
15:02 masak I think I'll collect them into a gist instead... :)
15:05 arnsholt Or if you finish the reviews, you can post the code and we can generate them indefinitely =D
15:05 masak "darkness of white birds". wow.
15:05 arnsholt Might be a cool little Perl 6 demo webapp, actually =D
15:05 masak https://gist.github.com/masak/5452839
15:05 masak I'll keep filling that gist during the day :)
15:07 masak another thing: never have I been so tempted to supply my *own* solution to one of the problems.
15:07 masak knowing the best tricks of all the contestants' solutions.
15:07 masak I may still do that, in fact.
15:07 masak not to the contest, mind. even if I were eligible, the contest is closed ;)
15:09 kresike bye folks
15:11 FROGGS joined #perl6
15:22 census joined #perl6
15:22 masak moritz: "achy force dentist" :)
15:22 * masak now has a full set at https://gist.github.com/masak/5452839
15:29 * moritz can see the fun in reviewing
15:30 [Coke] edgar's definitely read better.
15:31 [Coke] as doo vvoor's.
15:31 [Coke] er, "as doo vvoorr's" (compared to mine, anyway)
15:31 [Coke] I wonder if anyone else is calculating syllable length or if they are storing that in their lexicon. (or if that's even allowed, I don't even remember anyway)
15:31 [Coke] *anymore
15:32 masak anything's allowed, including generating the same static haiku each time.
15:33 [Coke] "mimmood dispeople deed" ? Guess I should have done more than ack'd through /usr/share/dict/words . ;)
15:34 pupoque joined #perl6
15:35 masak :)
15:36 masak the two significant axes seem to be (a) speed and (b) quality/haiku-ness.
15:36 [Coke] ugh. Guess I lose on both.
15:37 masak well, your solution isn't among the fastest.
15:37 masak GlitchMr++ and moritz++ tie on speed.
15:37 [Coke] please note that my solution gets faster if you run it more than once. ;)
15:37 masak :)
15:37 [Coke] (but not much faster, no doubt.)
15:37 masak around 20 seconds each time, here on my laptop.
15:38 [Coke] the main thing to like about my solution is that it led to a module in the ecosystem, I think.
15:38 masak yeah.
15:38 masak me too.
15:39 pupoque joined #perl6
15:40 iacob joined #perl6
15:40 pupoque left #perl6
15:49 rindolf joined #perl6
15:50 MrMeek joined #perl6
16:02 timotimo in some places p6 reminds me a little bit of LINQ.
16:02 yoleaux 22 Apr 2013 20:45Z <japhb_> timotimo: re: http://irclog.perlgeek.de/perl6/2013-04-22#i_6733138 you might be able to co-opt some of the logic perl6-bench uses to build multiple versions of each compiler.  It puts special effort into keeping only *one* network-updated clone of each repo (rakudo, nqp, parrot, etc.), and doing carefully-handled local clones to make it really fast to create and build a new, independent rakudo that can coexist with  â€¦
16:02 yoleaux the others.
16:06 moritz http://qiao.github.io/PathFinding.js/visual/
16:10 Targen joined #perl6
16:11 masak srsly, we should have a ".classify Awareness Day" or something.
16:15 Chillance joined #perl6
16:16 dalek v5: 60c68f2 | (Tobias Leich)++ | STATUS.md:
16:16 dalek v5: sorted by pass/plan
16:16 dalek v5: review: https://github.com/rakudo-p5/v5/commit/60c68f251e
16:19 pmichaud good morning, #perl6
16:20 cognominal \o/
16:20 PerlJam greetings Pm
16:21 masak pmichaud! \o/
16:22 supernovus joined #perl6
16:22 timotimo (although i didn't use LINQ yet, ever)
16:34 SmokeMachine joined #perl6
16:44 FROGGS joined #perl6
16:45 supernovus Has there been any news from llamarider about refactoring the Timezone portion of DateTime? I'd be willing to do it in my spare time. I could also write a Perl 6 equivalent of DateTime::TimeZone, built with the new model in mind.
16:46 FROGGS I havn't heard anything
16:48 REPLeffect joined #perl6
16:54 FROGGS jnthn: I take that as the approve to allow all of v5.* for Perl5 ('v' required as opposed to my earlier patch): http://irclog.perlgeek.de/perl6/2013-03-23#i_6621432
17:00 SamuraiJack_ joined #perl6
17:03 GlitchMr <masak> [15:37:17] GlitchMr++ and moritz++ tie on speed.
17:03 GlitchMr Why I've a feeling it's because my entry had insanely short dictionary...
17:04 GlitchMr Actually I wonder how would it work with bigger dictionary...
17:05 GlitchMr (also, it didn't even tried to make anything good)
17:06 dalek v5: 3c28e27 | (Tobias Leich)++ | STATUS.md:
17:06 dalek v5: remove debug out, fix "features" typo in grammar
17:06 dalek v5: review: https://github.com/rakudo-p5/v5/commit/3c28e27d2e
17:06 silug joined #perl6
17:07 PacoAir joined #perl6
17:14 lizmat joined #perl6
17:16 woolfy joined #perl6
17:33 pmichaud did the qrpa (de)serialization code ever make it into nqp master?
17:33 pmichaud I might have some short burts of tuits in the next couple of weeks, and could spend some on improving lists if that's beend one.
17:33 pmichaud *been done
17:34 pmichaud I'm not particularly interested in the whole set of RPA->QRPA conversions in one massive commit, though; I'd prefer to see the serialization features added+tested, then gradual commits to move RPA->QRPA with adequate testing.
17:34 jnthn pmichaud: I suspect it's already handled. If it's not, it's probably a 10-15 minute job for me.
17:35 pmichaud I know someone was working on it in a branch.
17:35 jnthn In fact, I can check...
17:35 pmichaud when I last looked at QRPA last summer, it wasn't being handled.
17:35 supernovus Okay, I have $*TZ as an integer, representing the local offset rather than a Callable object. It now seems to return the proper offset in negative time zones. Is there any reason to keep support for using Callable objects as the Timezone?
17:35 ggoebel joined #perl6
17:35 jnthn pmichaud: Serialization?
17:35 masak supernovus: no.
17:35 pmichaud jnthn: serialization, yes.
17:35 masak supernovus: please remove all traces of such nonsense :)
17:35 masak supernovus: posterity will thank you ;)
17:35 jnthn pmichaud: Do you have an indication of what failed to work?
17:36 PerlJam supernovus: In what unit of time is $*TZ expressed?
17:36 pmichaud when I started converting serialized things to use qrpa instead of rpa, bootstraps failed
17:37 pmichaud the main one was to convert List in rakudo to use QRPA instead of RPA
17:37 pmichaud just a sec, I may be able to find a one-line patch
17:37 supernovus PerlJam: seconds
17:38 jnthn pmichaud: Ah...yeah, the serializer doesn't handle it.
17:38 supernovus It shows my Timezone as -25200 for instance. I'm planning to make friendly offset wrappers for returning the value in hours:minutes format.
17:38 jnthn But I can fix that really easy
17:38 jnthn Even on the train :)
17:38 pmichaud jnthn: that would be awesome.
17:39 PerlJam supernovus: seconds is just fine by me  :)
17:39 pmichaud I won't need it immediately; I just noticed yesterday that I had some pockets of potential hacking time where I could've played with that.
17:39 pmichaud (I played with other p6-stuff instead)
17:39 pmichaud anyway, if someone can get QRPA to play well with serialization, it unblocks me on a couple of items :)
17:39 PerlJam pmichaud: what p6-stuff is on your radar these days?
17:40 pmichaud PerlJam: some nqp-jvm stuff, Lists, and various small performance improvements and code cleanups
17:40 pmichaud well, "small performance improvements" in the sense of "small code changes that might have large impacts"
17:40 pmichaud with emphasis on "might" :)
17:41 dalek perl6-roast-data: a8eab0a | coke++ | / (4 files):
17:41 dalek perl6-roast-data: today (automated commit)
17:41 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/a8eab0ae99
17:41 pmichaud also I'll want to find time to prepare my yapc::na talks :)
17:41 PerlJam as long as you're having fun :)
17:41 * TimToady attempts to fuzz into existence again, hopefully this time without a relapse...
17:41 yoleaux 19 Apr 2013 11:53Z <FROGGS> TimToady: Should the grammar switch to Peril5 too if it detects a 'use 5.10', rather just for a 'use v5' ?
17:41 yoleaux 09:27Z <FROGGS> TimToady: Should the PairSet type go too is Set gets removed? http://perlcabal.org/syn/S02.html#line_1902
17:41 pmichaud PerlJam: I don't have time for anything else :)
17:42 diakopter TimToady: wb
17:42 * TimToady notes the Set vs Seq confusion
17:42 pmichaud TimToady: \o/
17:42 [Coke] TimToady: hio!
17:43 supernovus I guess this means all the saved-offset stuff is unneeded too, which will make it slightly cleaner.
17:44 jnthn pmichaud: Compiling a patch now. This will let you make progress, though they'll come back as RPAs.
17:44 pmichaud jnthn: okay.  will be a lot nicer when they can come back as QRPAs :)
17:44 jnthn pmichaud: I can correct that, but that's a bit of an all-or-nothing, so we may want to convert the rest.
17:44 jnthn And then switch the deserialization over.
17:44 pmichaud oh, you'll have everything convert back to an RPA?
17:44 pmichaud sorry, QRPA?
17:44 pmichaud hmmmm
17:44 pmichaud okay, I think I can live with that.
17:45 jnthn pmichaud: At the moment I'm just doing the "serialize QRPAs as if they were RPAs"
17:45 jnthn [B[A
17:45 jnthn ...darn tunnels.
17:45 pmichaud jnthn: okay, I can work with that.
17:46 jnthn pmichaud: I can switch over the deserialization when you wish.
17:46 pmichaud it may all be temporary-ish anyway :)
17:46 pmichaud to be replaced by VMarray or somesuch
17:46 jnthn Yeah, well, VMArray on JVM has the same algorithm as QRPA
17:46 TimToady .oO(tunnel carps)
17:47 jnthn Ah well, the train is heading to Skaane, which is too flat for tunnels... :)
17:47 pmichaud okay, I need to grab lunch here -- bbl.
17:47 TimToady London's pretty flat, but that doesn't stop 'em...
17:47 jnthn ;)
17:47 jnthn To be fair, there is a huge tunnel under Malmo too. But I ain't going there today.
17:47 * pmichaud quantum tunnels to a lunching place.
17:48 jnthn bah, I thought my QRPA serialization fix had busted some tests, then realized I had just built nqp-jvm instead of nqp-parrot... :)
17:54 dalek nqp: 0e0428a | jonathan++ | src/vm/parrot/6model/serialization.c:
17:54 dalek nqp: Enable serialization of QRPA.
17:54 dalek nqp:
17:54 dalek nqp: Comes back as an RPA; can switch that over when we're ready.
17:54 dalek nqp: review: https://github.com/perl6/nqp/commit/0e0428aa20
18:04 * [Coke] wonders if the serialization is the same if you're on nqp-jvm vs. nqp-parrot
18:04 jnthn [Coke]: Same format, yes.
18:05 jnthn The JVM implementation is, in some senses, a bit simpler because everything is a 6model object.
18:08 supernovus Anyone here work for the Perl Foundation, or has any way to know if they received my CLA?
18:08 [Coke] Sort of, but no.
18:08 cognominal joined #perl6
18:08 [Coke] ISTR pmichaud has keys to see those.
18:23 dalek specs: 5692ced | (Timothy Totten)++ | S32-setting-library/Temporal.pod:
18:23 dalek specs: Updated Temporal reflecting Int-only Timezones.
18:23 dalek specs: review: https://github.com/perl6/specs/commit/5692ced333
18:24 timotimo jnthn: are you integrating the QRPA work into nqp?
18:24 timotimo could any of the work froggs and me did get salvaged?
18:24 [Coke] timotimo: Ints?
18:24 [Coke] what about India?
18:25 masak TimToady! \o/
18:25 [Coke] oh, it's in seconds, not hours.
18:25 nwc10 [Coke]: India isn't quirky enough. Think Nepal
18:26 [Coke] that seems LTA.
18:28 supernovus So, given I have no read/write access to Rakudo at the moment (no idea if my CLA ever reached TPF, I never heard anything back from them), do I just submit a [PATCH] to rakudobug@perl.org ?
18:28 timotimo PR on github
18:28 timotimo is easiast
18:29 nwc10 and `git format-patch` is probably better than just a [PATCH] (but Pull Request is best)
18:29 sorear supernovus: You need a CLA only before you can apply for direct commit access.  All other channels for submitting code do not require one
18:30 timotimo and [PATCH] is better than pasting the diff into IRC line by line
18:30 supernovus sorear: Yeah, I have submitted patches before. Prior to this it was always done via 'git format-patch' and emailing it to a bug tracker. The pull request method seems a lot friendlier.
18:30 [Coke] pull requests work.
18:31 [Coke] when we first switched to git there was resistance, but I think we've had quite a few things applied via pull request in the past years.
18:34 FROGGS * TimToady notes the Set vs Seq confusion <---- Ya, was just a braino of mine :(
18:35 FROGGS jnthn: I take that as the approve to allow all of v5.* for Perl5 ('v' required as opposed to my earlier patch): http://irclog.perlgeek.de/perl6/2013-03-23#i_6621432
18:36 FROGGS jnthn: so I'll patch the grammar these days with a required 'v'
18:36 jnthn FROGGS: wtfm
18:36 jnthn *wfm even
18:37 FROGGS that is some sort of 'yes' ? :o)
18:37 jnthn "works for me" :)
18:38 jnthn (as in, I've no objections)
18:38 FROGGS ya, just wanted to make sure *g*
18:38 supernovus There, pull request sent.
18:39 dalek v5: 64cdca0 | (Tobias Leich)++ | STATUS.md:
18:39 dalek v5: "proper" fix "use feature", it still does nothing though
18:39 dalek v5: review: https://github.com/rakudo-p5/v5/commit/64cdca01d6
18:43 lizmat TimToady: since the "use" functionality in Perl 6 is conceptually very different from "use" in Perl 5, I was wondering whether we shouldn't have another name for it in Perl 6
18:44 lizmat because grokking "use" in Perl 6 is going to be hard to Perl 5 programmers
18:44 lizmat I was thinking about "enjoy" as an alternative to "use"
18:44 lizmat enjoy |ɪnˈdʒɔɪ, ɛn-| verb
18:44 lizmat 1 take delight or pleasure in (an activity or occasion):
18:44 lizmat 2 possess and benefit from:
18:44 lizmat enjoyer noun
18:45 FROGGS uhhh
18:46 FROGGS if we ever want to have a 6.0.0 we shouldn'z change things just because it may be hard when coming from "another language"
18:46 FROGGS and for me "use" is pretty much the same "use" of perl 5
18:47 lizmat "use" in Perl 5 leaks, and Perl 5 programmers are used to that
18:47 FROGGS for me that is more in the category of doing things right
18:47 lizmat leaks outside the lexical scope it is called in
18:47 FROGGS same goes for eval
18:48 lizmat indeed…
18:48 FROGGS ... not about the scope, but about "doing things right" and "beeing very different to perl5"
18:48 FROGGS because perl5's eval is a misused try/catch
18:49 lizmat agreed, and modern Perl users already use Try::Tiny and its ilk
18:50 lizmat so are already used to doing "try" versus a block eval
18:50 flussence ...use in v6 is already specced with a way to put stuff in the outer scope, it's just NYI
18:50 FROGGS flussence: how?
18:50 lizmat anyways, "enjoy" was just a thought that maybe good for an April Fool's joke if nothing else  :-)
18:50 FROGGS use Module :OUR or something like that?
18:51 FROGGS lizmat++ # :o)
18:51 lizmat and we all know that April Fool's jokes can come back to bite you  :-)
18:51 flussence lemme find it, I know it's there because I've wanted to use it several times myself...
18:52 flussence S11:132
18:52 flussence use ... :EXPORT
18:53 tgt joined #perl6
18:54 [Coke] we now have 9 outstanding pull requests.
18:54 jnthn Languages tend to re-use old words for new concepts.
18:54 jnthn When there's a clear connection.
18:54 jnthn I think there is in the case of "use"
18:54 flussence .oO( and at the opposite end of the scale, we have Rust... )
18:54 FROGGS right, it would be a big surprise if there wasnt this 'use' in perl6
18:54 jnthn You, uh, use it for the same purposes, even if the semantics are - depending on your standpoint - a little or a lot different.
18:58 pmichaud "enjoy" reminds me of Coca-Cola, now that I think about it.  :-)
18:58 jnthn But module use is generally considered healthy ;)
18:59 FROGGS coca-cola is good for cleaning
19:00 FROGGS jnthn: I'd like you to show you a diff, but you must promise not to cry, okay?
19:00 FROGGS jnthn: https://gist.github.com/FROGGS/59b7f7a890381005eda7
19:01 FROGGS jnthn: please have a look at the way I pass the adverbs around... I think it maybe be nicer to pass a hash, instead of named optionals...
19:01 FROGGS (ignore the version thingy and the Perl5 hardcoded bit)
19:02 huf ljhlksdhfkjh <- nice name :)
19:02 pmichaud "adopt"  "play"  "borrow"  "opt"  "tap"
19:02 FROGGS and pushing things inside :form(XXX) as -M isnt nice too, won't push that way
19:03 FROGGS huf: well, that is for debugging only :o)
19:03 huf :)
19:03 FROGGS huf: but it does its job well
19:03 huf as long as nobody actually defines that method
19:03 huf some little terrorist ;)
19:03 huf (if i understood the code correctly)
19:03 FROGGS huf: this will never be comitted
19:04 huf so the terrorist is you? :)
19:04 FROGGS hehe, ya, maybe :o)
19:05 moritz lizmat: I don't think 'use' is all too different in p5 and p6
19:05 pmichaud "load"  :-P
19:05 FROGGS jnthn + pmichaud: and we maybe should have to think about what :from() should actually do, even for the nqp case
19:05 FROGGS I could image that there is an nqp module, which only adds the nqp lib dirs
19:06 lizmat moritz: the strict lexicalness of -use- in Perl 6 is going to trip up many Perl 5 developers
19:07 moritz lizmat: 'use' isn't strictly lexical
19:07 moritz lizmat: it's subroutine lookup that's strictly lexical
19:07 pmichaud I suspect P5 devels will get tripped up by more than just "use"  :)
19:07 FROGGS lizmat: how often does one 'use' a module within a block in perl5?
19:07 berekuk joined #perl6
19:07 lizmat together with the NYI fact that you can have multiple versions "online"
19:08 moritz lizmat: and no matter what the rename the 'use' statement to, the lexality of the subroutine lookup will trip up p5 programmers
19:08 lizmat you wouldn't, but you would expect any submodules to be able to access anything that a main module would have loaded
19:08 supernovus Okay, so I've updated Rakudo, and the specs, now I'll update the spec tests to make sure they are using Int-only timezone offsets.
19:08 gtodd maybe using v6's use will be a way to learn to use v6 ...
19:08 lizmat perhaps…
19:08 gtodd so use will be useful
19:09 gtodd usually
19:09 FROGGS use-ually?
19:09 lizmat moritz: so what isn't strictly lexical, then?
19:09 moritz lizmat: type name lookups, for example
19:10 * lizmat tests
19:10 moritz r: { use Test }; say Test
19:10 camelia rakudo 37c995: OUTPUT«(Test)␤»
19:10 moritz r: say Test
19:10 camelia rakudo 37c995: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared name:�    Test used at line 1��»
19:11 lizmat this is according to spec?
19:12 moritz yes
19:12 masak type names are global, yes.
19:12 moritz type declarations are 'our' by default, and the 'our' worlds from modules and mainline are merged at 'use' time
19:13 moritz though of course nothing stops you from writing   my class Flurb is export { ... }
19:13 lizmat rn: say Test; { use Test }
19:13 camelia rakudo 37c995: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared name:�    Test used at line 1��»
19:13 camelia ..niecza v24-37-gf9c8fc2: OUTPUT«[31m===[0mSORRY![31m===[0m��Undeclared name:�        'Test' used at line 1��Unhandled exception: Check failed��  at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) �  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) �  at /home/p…
19:14 lizmat khmmm...
19:14 FROGGS lizmat: it checks for names at compile time too
19:14 lizmat I guess it does   :-)
19:14 FROGGS rn: say ::('Test'); { use Test }
19:14 camelia rakudo 37c995: OUTPUT«(Test)␤»
19:14 camelia ..niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤  at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] in <file…
19:15 supernovus Well, looks like none of the spec tests for Temporal used Callable timezone's anyway. :-)
19:15 FROGGS \o/ no tests no fails \o/
19:16 alester joined #perl6
19:16 raiph #perl6 and #p6p5 take on cpanish https://metacpan.org/module/Pinto and https://stratopan.com/ ?
19:18 labster good morning, all you happy perl 6 people
19:19 moritz I don't understand what stratopan is
19:19 moritz is it a code hosting service?
19:19 FROGGS good morning labster :o)
19:20 moritz or more of a SaaS thing, like heroku?
19:20 PerlJam moritz: I thought it was a cloud-based CPAN
19:20 moritz but isn't CPAN already cloud-based?
19:20 gtodd history question: did perl5 modules used to use more XS (for speed) and then evolve gradually to a more "pure perl" implementation as cpus evolved ?
19:20 moritz I mean, it has lots of mirrors, and I don't care who hosts them. Which is quite cloudy to me
19:21 PerlJam gtodd: I don't think XS existed when CPAN was first created.
19:21 moritz gtodd: I don't think so
19:21 lizmat gtodd: I think the reverse, actually, as initialiy XS was used to interface with external libraries (e.g. DBI)
19:22 gtodd ah yes of course ... just wondered if the early gains by using XS were outdone by the gains in portability maintainability of pure perl
19:22 raiph moritz: only just saw stratopan. aiui it's a SaaS pinto.
19:23 gtodd and if something similar will happen with various vms, parrot, perl6 implementations ...
19:23 raiph moritz: for pinto checkout https://metacpan.org/module/Pinto::Manual::Introduction
19:24 FROGGS gtodd: but you must keep in mind that when XS was new, the build target was just unixish
19:28 labster moritz: thanks for fixing and merging my patch
19:28 moritz labster: thanks for providing it in the first place :-)
19:29 labster I had a feeling you were wanting it
19:32 moritz indeed
19:34 * supernovus kicks off "make spectest"
19:34 pmichaud /kick make spectest
19:34 supernovus ;-)
19:35 supernovus guh apparently I need to rebuild the CORE.setting first...
19:37 dmol joined #perl6
19:42 masak rn: my $foo = { leave 42 }; say $foo
19:42 camelia niecza v24-37-gf9c8fc2: OUTPUT«[31m===[0mSORRY![31m===[0m��Undeclared routine:�     'leave' used at line 1��Unhandled exception: Check failed��  at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) �  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) �  at /ho…
19:42 camelia ..rakudo 37c995: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:�    leave used at line 1��»
19:42 masak huh. why don't we have 'leave' yet?
19:43 flussence rn: my $foo = { LEAVE 42 }; say $foo
19:43 camelia niecza v24-37-gf9c8fc2: OUTPUT«{ ... }␤»
19:43 camelia ..rakudo 37c995: OUTPUT«Block.new()␤»
19:44 jnthn masak: 'cus we don't have eats and shoots yet...
19:44 PerlJam why don't we have labels yet?
19:44 [Coke] my $foo = { take 42 } ; say $foo
19:44 [Coke] r: my $foo = { take 42 } ; say $foo
19:44 camelia rakudo 37c995: OUTPUT«Block.new()␤»
19:44 [Coke] r: my $foo = { take 42 } ; say $foo()
19:44 camelia rakudo 37c995: OUTPUT«take without gather␤  in block  at src/gen/CORE.setting:452␤  in block  at src/gen/CORE.setting:502␤  in block  at /tmp/58LPE6Tx2J:1␤␤»
19:44 [Coke] r: my $foo = { make 42 } ; say $foo
19:44 camelia rakudo 37c995: OUTPUT«Block.new()␤»
19:44 [Coke] r: my $foo = { make 42 } ; say $foo()
19:44 camelia rakudo 37c995: OUTPUT«Cannot bind attributes in a type object␤  in sub make at src/gen/CORE.setting:10941␤  in block  at /tmp/1DlDly76Vr:1␤␤»
19:47 timotimo rn: my $crit = 1; my $state = ("fleets" => ((:owner_id(1), :target(2), :eta(3)).hash, (:owner_id(1), :target(3), :eta(4)).hash)); $state<fleets>.grep(*.<owner_id> ~~ $crit).perl.say;
19:47 camelia niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Cannot use value like WhateverCode as a number␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 293 (Any.Numeric @ 6) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.se…
19:47 camelia ..rakudo 37c995: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤  in method Numeric at src/gen/CORE.setting:865␤  in sub infix:<==> at src/gen/CORE.setting:3008␤  in sub infix:<==> at src/gen/CORE.setting:3006␤  in method ACCEPTS at src/gen/CORE.setting:2…
19:48 masak PerlJam: that is another good question.
19:48 timotimo rn: say 5 ~~ 5;
19:48 camelia rakudo 37c995, niecza v24-37-gf9c8fc2: OUTPUT«True␤»
19:48 timotimo rn: (1, 2, 3, 4).grep(is-prime *).perl.say
19:48 camelia rakudo 37c995: OUTPUT«No such method 'Int' for invocant of type 'Whatever'␤  in sub is-prime at src/gen/CORE.setting:3456␤  in sub is-prime at src/gen/CORE.setting:3451␤  in block  at /tmp/cVKax5PLLL:1␤␤»
19:48 camelia ..niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Unable to resolve method Int in type Whatever␤  at /home/p6eval/niecza/lib/CORE.setting line 3965 (is-prime @ 4) ␤  at /tmp/hiqMKyUaxa line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3) ␤  at /home/p6…
19:49 timotimo rn: my $crit = 1; my $state = ("fleets" => ((:owner_id(1), :target(2), :eta(3)).hash, (:owner_id(1), :target(3), :eta(4)).hash)); $state<fleets>.grep({ $_.<owner_id> ~~ $crit}).perl.say;
19:49 camelia niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Pair␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 352 (Any.at_key @ 9) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/3byo44i2td line 1 (mainli…
19:49 camelia ..rakudo 37c995: OUTPUT«Nominal type check failed for parameter ''; expected Any but got Mu instead␤  in sub infix:<===> at src/gen/CORE.setting:1741␤  in method ACCEPTS at src/gen/CORE.setting:1334␤  in method ACCEPTS at src/gen/CORE.setting:683␤  in block  at /tmp/vmZMTZV2v5:1␤␤»…
19:49 timotimo huh
19:49 timotimo not sure what's going on
19:50 FROGGS diakopter: about the spec list, I am doing S10 now locally
19:52 PerlJam huh.  Just got "maximum recursion depth exceeded" trying to build rakudo
19:53 masak it's Rakudos all the way down.
19:53 iacob joined #perl6
19:54 PerlJam https://gist.github.com/perlpilot/5455046
19:54 PerlJam look familiar to anyone?
19:54 FROGGS hmmm, syntax error
19:55 DreamingInCode joined #perl6
19:55 PerlJam doh! never mind.  Apparently I had some unstaged changes.
19:56 jnthn Battery flat, but nearly home anyway...bbiab &
19:57 PerlJam (toying with getting rakudo to grok PERL6OPT just like p5 does with PERL5OPT and forgot my changes were still there)
20:11 nebuchadnezzar joined #perl6
20:15 tgt joined #perl6
20:17 masak out of 7 submissions, 4 manage to agree with me on the definition of "syllable".
20:17 masak or manage to implement it correctly, to be exact.
20:17 masak ...so I guess the trap worked on this one. :)
20:18 masak (making a difficult subproblem look trivial in the task)
20:23 supernovus Gah, there is a Callable timezone in the spec tests. I shall kill it with fire.
20:25 PerlJam Why did we have Callable timezones in the first place?
20:26 [Coke] masak: I wonder if I am one of the ones that did not due to bugs in the initial port of that module. :|
20:27 supernovus It was to make TimeZone objects calculate their offsets dynamically. Which is better done in a module than in the core setting, IMHO.
20:27 masak [Coke]: no, I counted you twice as "getting it".
20:28 masak [Coke]: so, it's you, you, and two others :P
20:28 masak supernovus: +1
20:32 [Coke] masak: ... you can't count me twice, can you?
20:32 [Coke] oh. I submitted 2x.
20:33 masak right.
20:33 * jnthn back
20:33 masak there's something wrong with your first submission -- it doesn't run -- but that might be Rakudo slippage.
20:34 FROGGS jnthn: do you think there is much to allow proper INIT blocks in nqp?
20:34 FROGGS jnthn: this would make my run_export hack obsolete
20:34 [Coke] masak: good thing only the second one counts?
20:35 jnthn FROGGS: NQP already has INIT blocks, no?
20:35 supernovus Hmm, there's a lot of Callable stuff in here. The reason being that converting between timezones where DST rules may differ requires knowledge of the DateTime in question.
20:35 pmichaud yeah, NQP has INIT already.
20:36 pmichaud whether it has "proper INIT blocks" is in the eye of the beholder.  Or the pumpking.  :)
20:36 FROGGS jnthn: ya, but they are not re-executed every 'use'/'need'
20:36 supernovus Changing this to a raw Int is going to require some rethinking on how to deal with daylight savings time. :-/
20:36 jnthn FROGGS: They should not be.
20:36 FROGGS S10:109 tells differently
20:36 jnthn It's importation that happens every time, not loading.
20:37 jnthn Then we should fix S10.
20:37 FROGGS :/
20:38 pmichaud S10:109 says "run to run"
20:38 pmichaud not on "each load"
20:38 pecastro_ joined #perl6
20:39 * jnthn checks
20:39 jnthn (to see it in context, to be sure he understands)
20:39 FROGGS hmmm, I see
20:40 pmichaud although in contrast with the previous paragraph, it does make it sound as though it expects INIT to be executed on each 'use' instance.
20:40 * FROGGS changes the spec quick to say "each load"
20:40 masak folks,
20:40 jnthn yes, it says run to run.
20:40 masak t2 reviewing is *finished*.
20:40 pmichaud FROGGS: no, wait, let's make sure we understand the spec, and how the "varies from run to run" should be interpreted.
20:40 FROGGS pmichaud: JOKE
20:40 FROGGS I dont change anything
20:41 masak [Coke]: "only the second one counts"? now where did you read that? :D
20:41 jnthn I'm pretty sure a lot of stuff relies on the semantics as Rakudo has them today. Certainly, a lot in NQP does.
20:41 lizmat FROGGS: that's the way INIT works in P5, no?
20:41 lizmat only when loading...
20:41 FROGGS lizmat: I'm not sure how it works there
20:41 pmichaud jnthn: is there a way to have code in a module that is executed on each 'use'?
20:41 masak [Coke]: "All solutions will be published after the conclusion of the contest. All are up for review." https://github.com/masak/p6cc2012/blob/master/rules.md
20:41 pmichaud (if so, what is it?)
20:42 supernovus You know, I think I'll pull all of the DST tests out of DateTime.t and move them into DateTime::TimeZone, as the Core setting shouldn't have to know about DST.
20:42 lizmat pmichaud: imports?
20:42 jnthn pmichaud: Yes, in Rakudo you write a sub EXPORT() { ... }
20:42 FROGGS pmichaud: making an EXPORT sub does it, but this is only executed if you provide positional imports
20:43 jnthn FROGGS: We could make that more reliable :)
20:43 FROGGS jnthn: so that it will be called indeed aways?
20:43 jnthn I mean, it probably wants to receive the positionals but I don't think a lack of them should mean "don't call it"
20:43 FROGGS always*
20:43 jnthn FROGGS: Yeah.
20:44 FROGGS hmmm, sounds pretty good to me
20:44 jnthn FROGGS: It feels to me like you write one you expect it to be called :)
20:44 jnthn *if you write one...
20:44 FROGGS ya
20:44 pmichaud jnthn: yeah, I agree with that.
20:44 FROGGS well, tbh I dont really expect something :o)
20:44 FROGGS \o/
20:44 pmichaud that feels cleaner-ish than using INIT to do it.
20:44 pmichaud which, returning to FROGGS' initial question ...
20:45 lizmat fwiw, pmichaud++
20:45 pmichaud FROGGS: so, do you need a way to have a module in NQP execute some code on each use/need ?
20:45 FROGGS yes
20:45 FROGGS my Perl5 module, which has to set the current slang
20:46 FROGGS like: { use v5; say $^O }; { use v5; say $^V }
20:47 pmichaud your v5 module is NQP, here?
20:47 jnthn I don't think it'd be hard to provide the EXPORT thingy in NQP, fwiw.
20:47 pmichaud I'd think it'd want to be Perl 6.
20:47 pmichaud it could be a thin Perl 6 wrapper around some NQP stuff, if that helps.
20:47 FROGGS pmichaud: it is at the same level like Perl6::Grammar (in fact, it inherits from it)
20:48 pmichaud but as a p6 module, it could easily provide a sub EXPORT (as well as handle other Perl6 integration-type stuff) before handling control off to a NQP-specific portion of the code.
20:48 pmichaud just a thought.
20:48 FROGGS well, that EXPORT sub already does its job
20:48 dalek roast: c07b14a | (Timothy Totten)++ | S32-temporal/ (2 files):
20:48 dalek roast: Pulled Callable Timezone related tests out, unfudged some tests.
20:48 dalek roast: review: https://github.com/perl6/roast/commit/c07b14ad02
20:49 pmichaud I'll let you and jnthn++ figure out the right abstraction layer for now.  :)
20:49 FROGGS *g*
20:50 pmichaud somehow I feel a bit better about a p6 wrapper around nqp stuff than going straight to nqp.
20:50 FROGGS I'm pretty happy with it atm
20:50 pmichaud depends on how much we want to bury p6 semantics into nqp stuff.
20:50 pmichaud *p6 module semantics
20:53 pmichaud lizmat: you can see the reality of my earlier comment that S10/S11 stuff tends to be a bit slushy as opposed to definitive :)
20:54 MrMeek-afk joined #perl6
20:56 masak hm, I see `sub nul-byte-workaround($string) { $string.subst(/\x00/, '', :g }` in my blog software code. anyone remember what that was about? something to do with Parrot IO, right?
20:56 masak I find nothing in RT.
20:57 masak maybe I just got so sick of it at that point that I fixed it but didn't submit a bug report.
20:57 flussence oh I remember that one
20:57 * masak hits the clogs
20:57 flussence socket writes or something were padding up to a multiple of 1024, or something like that.
20:57 masak I remember the frustration I felt when I discovered it, but nothing else.
20:58 masak it was like "wow, do the Parrot devs deliberately screw with us now or what? :("
20:58 masak unfair, I know. they're understaffed and doing their best, just like we are.
20:59 flussence found it :D http://irclog.perlgeek.de/perl6/2013-01-31#i_6399112
20:59 masak just found it too.
20:59 masak right. I was not amused.
21:00 masak seems I didn't file a bug report on it.
21:01 masak whatever happened to the problem? which Parrot versions have it? do we still need to take action somehow?
21:01 masak I am no longer angry, so I can put some effort into filing/fixing it if that's still needed.
21:01 jnthn masak: Do things break if you remove the hack?
21:02 masak I... I'd prefer to make a test that doesn't involve my blogging software... :)
21:02 masak Justin Case.
21:02 flussence my testcase file above there passes
21:03 flussence (guess I misremembered, it was *files* that were broken here... sockets were another thing I had a problem with [that got fixed])
21:03 masak yeah, files.
21:03 pmichaud flussence's test case fails in Rakudo Star 2013.02
21:03 flussence hm
21:03 flussence I'm on 2013.04-9-gef73eb9
21:04 masak so somehow it got fixed in the meantime, then?
21:04 pmichaud I'm thinking it's one of those Parrot IO buggies
21:04 masak yeah.
21:04 pmichaud I know that 5.0.0 had some bugs that were fixed in 5.1.0
21:04 pmichaud oh, and Rakudo Star 2013.02 was still using 4.10.0, I think.
21:04 pmichaud so it could be a fix from anywhere after 4.10
21:05 FROGGS jnthn: I updated https://gist.github.com/FROGGS/59b7f7a890381005eda7 and I almost start to like it
21:05 masak ok, but it got fixed. good.
21:05 FROGGS (except line 83)
21:05 masak I still haven't completely understood how Parrot could screw up their IO refactor so.
21:06 masak it's not a refactor if lots of things break.
21:06 FROGGS ENOTENOUGHTESTS
21:06 masak yeahbut
21:06 masak spurious NUL bytes at the end of files?
21:06 masak how is that when what I don't even
21:06 masak oh well.
21:07 silug joined #perl6
21:14 supernovus woo hoo, the spec tests pass with the new DateTime changes.
21:19 masak \o/
21:21 thou joined #perl6
21:22 FROGGS r: https://gist.github.com/FROGGS/d8f83a939e5c52d5b33c
21:23 camelia rakudo 37c995: OUTPUT«[31m===[0mSORRY![31m===[0m�Two terms in a row�at /tmp/sbkCRFKpdh:1�------> [32mhttps[33m�[31m://gist.github.com/FROGGS/d8f83a939e5c52[0m�    expecting any of:�        argument list�        postfix�        infix stopper�        infix or meta-infix�        st…
21:23 FROGGS damn
21:23 FROGGS class myPackage { }; multi CANDO ( myPackage, &:($), $name, *%args) { }; myPackage::("hurz")()
21:23 FROGGS r. class myPackage { }; multi CANDO ( myPackage, &:($), $name, *%args) { }; myPackage::("hurz")()
21:24 FROGGS r: class myPackage { }; multi CANDO ( myPackage, &:($), $name, *%args) { }; myPackage::("hurz")()
21:24 camelia rakudo 37c995: OUTPUT«===SORRY!===␤invoke() not implemented in class 'QAST::WVal'␤»
21:25 diakopter FROGGS: gotta be non-private gist
21:25 FROGGS ahh, okay
21:26 lue hello world o/
21:26 FROGGS hi lue
21:29 lue .oO(That's completely unfair. Who doesn't like data whose size is a nice round number?)
21:29 FROGGS true
21:31 lue (referring of course to the backlog around the top of the hour.)
21:32 FROGGS ya, my fellows at work dont understand my excitement when I tell'em: Your userid is 256, coll ehh?
21:35 lizmat pmichaud: yes :-)
21:35 frdmn joined #perl6
21:37 frdmn joined #perl6
21:40 FROGGS r: class bar { }; module :: is bar { }
21:40 camelia rakudo 37c995: OUTPUT«[31m===[0mSORRY![31m===[0m�Method 'add_parent' not found for invocant of class 'Perl6::Metamodel::ModuleHOW'�at /tmp/AQKrbR67vN:1�------> �»
21:40 lue another joke that's fun (which I first saw on xkcd), is to see a number, e.g. 1000, and say "that's only 24 away from a round number."
21:40 FROGGS hehe
21:41 FROGGS I am thinking more of an eight when seeing 1000
21:41 diakopter FROGGS: once you start down that fuzzing path.. forever will it dominate your destiny....
21:41 FROGGS (but that is still 24 away from a round number)
21:42 FROGGS diakopter: ohh, it is already to late to turn round :o)
21:44 frdmn joined #perl6
21:46 mavcunha joined #perl6
21:46 masak ok, given an IO::Path, how do I get the path-less filename? just the filename, after all the slashes and all?
21:47 jnthn r: say IO::Path.^methods
21:47 camelia rakudo 37c995: OUTPUT«Could not find symbol '&Path'␤  in method <anon> at src/gen/CORE.setting:10836␤  in any  at src/gen/Metamodel.nqp:2504␤  in any find_method_fallback at src/gen/Metamodel.nqp:2492␤  in any find_method at src/gen/Metamodel.nqp:939␤  in block  at /tmp/lJsT8o2b0j:1␤␤»…
21:47 jnthn ...there's an IO::Path? :)
21:47 lizmat I would suspect $path.filename ?
21:47 masak r: say dir('.')[0]
21:47 camelia rakudo 37c995: OUTPUT«IO::Path<star>␤»
21:47 masak r: say dir('.')[0].filename
21:48 camelia rakudo 37c995: OUTPUT«No such method 'filename' for invocant of type 'IO::Path'␤  in block  at /tmp/3xOz3r7g0u:1␤␤»
21:48 jnthn Oh, of course...it's protected
21:48 masak "protected"?
21:48 jnthn r: say dir('.')[0].^methods
21:48 camelia rakudo 37c995: OUTPUT«dir BUILD Bridge Int path IO open contents d e f l r s w x z modified accessed changed new Str gist Numeric <anon> <anon> <anon>␤»
21:48 jnthn masak: restricted setting
21:48 jnthn r: say dir('.')[0]
21:48 camelia rakudo 37c995: OUTPUT«IO::Path<star>␤»
21:48 jnthn r: say dir('.').path
21:48 camelia rakudo 37c995: OUTPUT«No such method 'path' for invocant of type 'Array'␤  in block  at /tmp/0FGwqqG6r_:1␤␤»
21:48 masak well, there's an IO::Path right there :)
21:49 jnthn r: say dir('.')[0].path
21:49 camelia rakudo 37c995: OUTPUT«IO::Path<star>␤»
21:49 masak this is frustrating :)
21:49 jnthn r: say dir('.')[0].dir
21:49 camelia rakudo 37c995: OUTPUT«IO::Path.dir is deprecated in favor of .directory␤  in method dir at src/gen/CORE.setting:8048␤  in block  at /tmp/z9H7RNjgPj:1␤␤»
21:49 jnthn r: say dir('.')[0].directory
21:49 camelia rakudo 37c995: OUTPUT«.␤»
21:49 masak heh.
21:49 masak yeah, I want the other part :P
21:49 masak the filename.
21:49 jnthn Why wsa .directory not in the method list?
21:49 * masak goes looking in the source
21:50 masak r: say dir('.')[0].basename
21:50 camelia rakudo 37c995: OUTPUT«star␤»
21:50 masak there we go.
21:50 dalek rakudo/jvm-support: dea4f25 | jnthn++ | src/Perl6/ (2 files):
21:50 dalek rakudo/jvm-support: Unbust build after recent World changes.
21:50 dalek rakudo/jvm-support: review: https://github.com/rakudo/rakudo/commit/dea4f25816
21:51 jnthn Phew. Now I've found that I can get useful stuff done on the porting effort tomorrow...
21:51 FROGGS ohh, the world has changed?
21:51 FROGGS to the better I hope
21:52 jnthn FROGGS: Got rid of its last pir::
21:52 jnthn Also got rid of some Q:PIR in BOOTSTRAP
21:52 FROGGS cool!
21:52 jnthn There's no more Q:PIR in src/Perl6 any more.
21:52 lizmat ++jnthn++
21:53 jnthn Still some pir::.
21:53 diakopter is it just me or is search.cpan.org not working:  http://search.cpan.org/search?query=Acme&amp;mode=all
21:54 masak ok, now my blogging software hangs.
21:54 FROGGS diakopter: no, had this issue earlier
21:56 FROGGS diakopter:  links like these work though: http://search.cpan.org/dist/SDL/
21:56 FROGGS (if you know the dist)
21:57 * lue wonders why adding six characters to the .dir method name was a good idea
21:59 FROGGS lue: maybe someone thinks .dir will give one the directories' content?
21:59 masak oh wow, something in the vicinity of string handling is *much* slower in recent Rakudos.
21:59 * lue would only expect .ls to do such a thing
22:00 masak I thought the blogging software had simply locked up, but it turns out it's processing things as it should, just very slowly.
22:00 FROGGS lue: well, jnthn might expect .dir :o)
22:01 FROGGS and I would too fwiw
22:01 lue :) I just think that getting directory/filename parts from IO::Path would be common, and thus a short name
22:02 lue (but there's always class augmentation to fix the problem externally...)
22:02 FROGGS hehe >.<
22:02 lizmat gnight #perl6!
22:02 masak 'night, lizmat
22:02 FROGGS gnight lizmat
22:03 masak I definitely need to bisect this slowness tomorrow. this will not stand.
22:03 masak I have located the block of code that got *lots* slower.
22:03 masak anyway... lol, I blogged! http://strangelyconsistent.org/blog/the-masakism-workshop
22:04 FROGGS hmmm, the only thing about string+concat is timotimo's path for [~], but I have no idea if it was applied
22:04 masak (I've run out of $day, so the t2 blog post will have to wait for tomorrow)
22:04 masak FROGGS: it can't be that.
22:04 masak FROGGS: I'm using ~=, but not [~] in that code.
22:05 FROGGS but ~= is just concat of the two plus assignment, no?
22:05 masak anyway, it's not just *significantly* slower, it's *ridiculously* slower.
22:05 masak FROGGS: yeah.
22:05 FROGGS :/
22:05 masak so slow that I thought it had locked up.
22:08 Tene masak: You voluntarily decided to inflict that pun in the title on yourself?
22:08 masak Tene: yeah, I was like "what's the worst that can happen?"
22:09 masak Tene: oh, I see what you did there.
22:09 Tene masak: ;)
22:09 masak autopun to you too, sir.
22:11 * lue sadly doesn't see the autopun :/
22:12 Tene masak: I'll be around; I'd love to help.
22:12 masak lue: "inflict X on oneself" <-> "masochism"
22:12 masak Tene: awesome.
22:12 lue geekosaur just told me :)
22:13 lue masak: would a fair definition of an autopun be "a play on situations"? (The definition itself a play on the common definition of a pun being "a play on words")
22:13 jnthn Time for some rest...my tuit supply should be good tomorrow :)
22:13 jnthn 'night o/
22:14 lue good ♞, jnthn o/
22:14 FROGGS gnight jnthn
22:15 masak lue: no, an autopun is a mixing-together of the level where we're describing things and the level where the things described are.
22:15 masak lue: often referred to as "mention" and "use", respectively.
22:19 * lue wants to say then "a play on usage", but feels that probably isn't right either
22:21 xilo joined #perl6
22:24 dalek v5: d7d2645 | (Tobias Leich)++ | STATUS.md:
22:24 dalek v5: added "use utf8" noop
22:24 dalek v5: review: https://github.com/rakudo-p5/v5/commit/d7d264582f
22:24 dalek v5: 77fe2c7 | (Tobias Leich)++ | STATUS.md:
22:24 dalek v5: update
22:24 dalek v5: review: https://github.com/rakudo-p5/v5/commit/77fe2c7e77
22:30 skids joined #perl6
22:47 BenGoldberg joined #perl6
22:48 fgomez joined #perl6
22:55 pjcj joined #perl6
23:01 BenGoldberg nqp-jvm: say("jaNQPh");
23:01 camelia nqp-jvm: OUTPUT«jaNQPh␤»
23:02 BenGoldberg nqp: say("jaNQPh");
23:02 camelia nqp: OUTPUT«jaNQPh␤»
23:03 BenGoldberg nqp-parrot: say("jaNQPh");
23:03 BenGoldberg nqp-pir: say("jaNQPh");
23:03 masak rn: sub foo { fail "this didn't go too well" }; my $a = foo(); say "still alive!"
23:04 camelia rakudo 37c995: OUTPUT«still alive!␤»
23:04 camelia ..niecza v24-37-gf9c8fc2: OUTPUT«[31m===[0mSORRY![31m===[0m��Undeclared routine:�     'fail' used at line 1��Potential difficulties:�  $a is declared but not used at /tmp/q73H_Dczy6 line 1:�------> [32m { fail "this didn't go too well" }; my [33m�[31m$a = foo(); say "still alive!"[0m�…
23:04 masak r: sub foo { fail "this didn't go too well" }; my $a = foo(); say $a; say "not alive anymore"
23:04 camelia rakudo 37c995: OUTPUT«this didn't go too well␤  in method gist at src/gen/CORE.setting:10831␤  in method gist at src/gen/CORE.setting:893␤  in sub say at src/gen/CORE.setting:7807␤  in block  at /tmp/JsLklxc7bV:1␤␤»
23:05 labster looks like niecza failed earlier
23:05 masak labster: so, &fail is like returning with a booby-trapped exception.
23:05 masak yeah, Niecza doesn't seem to do &fail yet.
23:05 masak ignore Niecza for now.
23:05 masak do you see what the example does?
23:06 masak r: sub foo { fail "this didn't go too well" }; my $a = foo(); say "still alive, before checking \$a"; say $a
23:06 camelia rakudo 37c995: OUTPUT«still alive, before checking $a␤this didn't go too well␤  in method gist at src/gen/CORE.setting:10831␤  in method gist at src/gen/CORE.setting:893␤  in sub say at src/gen/CORE.setting:7807␤  in block  at /tmp/b0E5aXorK1:1␤␤»
23:06 labster I do.  I've played around with it a little bit.
23:07 labster r: sub foo { fail "this didn't go too well" }; my $a = foo(); say $a ~~ Failure; say "alive?"
23:07 camelia rakudo 37c995: OUTPUT«True␤alive?␤»
23:08 labster r: sub foo { fail "this didn't go too well" }; my $a = foo(); say $a ~~ /foo/; say "alive?"
23:08 camelia rakudo 37c995: OUTPUT«this didn't go too well␤  in method Str at src/gen/CORE.setting:10830␤  in method Str at src/gen/CORE.setting:876␤  in any !cursor_init at src/stage2/QRegex.nqp:528␤  in method ACCEPTS at src/gen/CORE.setting:11178␤  in method ACCEPTS at src/gen/CORE.setting:683␤  â€¦
23:08 masak right. you can smartmatch on the failure, but not much else.
23:09 BenGoldberg r: my $a = Failure.new("asdf"); say "alive";
23:09 camelia rakudo 37c995: OUTPUT«alive␤»
23:09 BenGoldberg r: my $a = Failure.new("asdf");
23:09 camelia rakudo 37c995: OUTPUT«Method 'throw' not found for invocant of class 'Str'␤current instr.: 'sink' pc 390388 (src/gen/CORE.setting.pir:168820) (src/gen/CORE.setting:10839)␤called from Sub 'MAIN' pc 381 (src/gen/perl6.pir:147) (src/main.nqp src/gen/main-version.nqp:42)␤called from Sub '' …
23:09 labster wha?  oh sink context.
23:10 fgomez joined #perl6
23:11 masak yeah.
23:11 masak well, no.
23:11 masak I think it's last-statement-of-block that triggers it here.
23:11 BenGoldberg r: Failure.new("asdf");
23:11 camelia rakudo 37c995: OUTPUT«Method 'throw' not found for invocant of class 'Str'␤current instr.: 'sink' pc 390388 (src/gen/CORE.setting.pir:168820) (src/gen/CORE.setting:10839)␤called from Sub 'MAIN' pc 381 (src/gen/perl6.pir:147) (src/main.nqp src/gen/main-version.nqp:42)␤called from Sub '' …
23:12 masak it needs to return something from the mainline block, so it evaluates the thing.
23:12 BenGoldberg n: Failure.new("asdf");
23:12 camelia niecza v24-37-gf9c8fc2: OUTPUT«[31m===[0mSORRY![31m===[0m��Undeclared name:�        'Failure' used at line 1��Unhandled exception: Check failed��  at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) �  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) �  at /hom…
23:12 masak which triggers the booby-trap.
23:12 masak Niecza has neither &fail nor Failure, it seems.
23:13 labster So the failure types are just a way of handling some errors but not others?
23:14 BenGoldberg rn: Exception.new("asdf");
23:14 camelia rakudo 37c995: OUTPUT«Default constructor for 'Exception' only takes named arguments␤  in method new at src/gen/CORE.setting:731␤  in method new at src/gen/CORE.setting:726␤  in block  at /tmp/xtzLbTlbZT:1␤␤»
23:14 camelia ..niecza v24-37-gf9c8fc2: OUTPUT«[31m===[0mSORRY![31m===[0m��Undeclared name:�        'Exception' used at line 1��Unhandled exception: Check failed��  at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) �  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) �  at /h…
23:18 BenGoldberg r: Exception.new(exception => "asdf");
23:18 camelia rakudo 37c995:  ( no output )
23:18 BenGoldberg r: Exception.new(exception => "asdf").say;
23:18 camelia rakudo 37c995: OUTPUT«␤␤Error while creating backtrace: No such method 'backtrace' for invocant of type 'Any'␤  in method new at src/gen/CORE.setting:9401␤  in method new at src/gen/CORE.setting:9398␤  in method backtrace at src/gen/CORE.setting:9535␤  in code  at src/gen/CORE.setting:9…
23:23 masak labster: yeah.
23:23 labster ah, finally found what caused the setting not to compile.  apparently putting BEGIN in there was a Bad Thing.
23:23 cognominal joined #perl6
23:23 masak labster: failures are "potential problems". i.e. they will never be a problem if you don't care about the result. but as soon as you do, they're an error.
23:24 masak an exception, even.
23:24 masak 'night, #perl6
23:24 labster night
23:24 labster thanks
23:30 geekosaur joined #perl6
23:31 dalek ecosystem: 1eec48d | (Timothy Totten)++ | META.list:
23:31 dalek ecosystem: Added DateTime::TimeZone in its early form.
23:31 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/1eec48d4d3
23:37 census good night masak!
23:40 tgt joined #perl6
23:57 DreamingInCode left #perl6
23:57 thou joined #perl6

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

Perl 6 | Reference Documentation | Rakudo