Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-03-11

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:00 lue I can't grep hold of this pun factory right now :D
00:00 lue Ack! stop the puns!
00:00 hercynium joined #perl6
00:00 jnthn They're synful!
00:01 lue can someone help us? man! :D
00:02 astrojp left #perl6
00:04 lue I can't find the rakudo directory. I've tried the cd! :D
00:05 m6locks which directory?
00:05 lue m6locks: just kidding. It's a continuation of our pun factory :)
00:05 m6locks oh :D
00:08 * diakopter barely escapes to the fun pactory
00:08 masak lue: pretending to need help is dangerously close to crying wolf :)
00:09 lue silly diakopter! that's a spoonerism! :D
00:09 * masak .oO( s-pun-erism )
00:09 lue masak: sorry. Was grasping for a pun. :)
00:10 masak don't get on your toes for them, grasp the low-hanging ones :)
00:12 lue http://xkcd.com/192/ the tooltip is priceless :)
00:13 lue er, title-text
00:14 masak I sometimes forget not everyone knows the secret of levitation.
00:14 masak er.
00:14 masak I mean "ha ha" :)
00:15 masak now if you'll excuse me, I'll just float into bed.
00:15 masak o/
00:15 jnthn .oO( oh, so he can levitate? I thought it was all the beer I'd had! )
00:16 lue bye masak (you dirty backlog reader) :) o/
00:16 lue I would levitate, but I'm in a no-fly zone right now (somewhere around Proxima Centauri)
00:17 lue strictly unpowered floating :/
00:18 lue But that's only because the steering is great w/o motorized movement. Gravity flucuations and all :)
00:33 cotto_w0rk joined #perl6
00:37 jaldhar joined #perl6
00:37 snarkyboojum joined #perl6
00:37 lue oi sb o/
00:38 jnthn sleep time
00:38 jnthn o/
00:39 lue o/
00:40 m6locks o/ ->
00:42 snarkyboojum joined #perl6
00:48 eternaleye joined #perl6
00:50 lue All For Knowledge (AFK)
01:03 yinyin joined #perl6
01:14 patspam joined #perl6
01:19 ShaneC joined #perl6
01:20 _jaldhar joined #perl6
01:23 snarkyboojum joined #perl6
01:47 agentzh joined #perl6
02:13 supernovus joined #perl6
02:17 supernovus Well, lesson #1: A Persistent Perl 6 SCGI daemon running on a VPS with only 128 MB of RAM == Not a good idea!
02:20 am0c joined #perl6
02:25 supernovus But, initial problems aside, through some really dark magicks, I now have a very simple website being powered by Perl 6.
02:27 PerlJam supernovus++ sweet
02:29 perpetrator_ joined #perl6
02:34 ash_ joined #perl6
02:36 supernovus I have a few more plugins to write, and it will actually have enough user-facing functionality to replace it's Perl 5 based predecessor that currently powers my primary website.
02:39 lue rakudo: say sqrt(9);
02:39 p6eval rakudo 0a0469: OUTPUT«3␤»
02:40 lue rakudo: say sqrt(-1);
02:40 p6eval rakudo 0a0469: OUTPUT«NaN␤»
02:40 lue rakudo: say e**(pi*sqrt(-1))
02:40 PerlJam lue: that's too complex
02:40 p6eval rakudo 0a0469: OUTPUT«NaN␤»
02:40 lue :/ humbug
02:40 lue perl6 say sqrt(-1)
02:40 lue perl6: say sqrt(-1)
02:40 p6eval elf 30021: OUTPUT«Undefined subroutine &GLOBAL::sqrt called at (eval 123) line 3.␤ at ./elf_h line 5881␤»
02:40 p6eval ..pugs, rakudo 0a0469: OUTPUT«NaN␤»
02:41 lue alpha: say sqrt(-1)
02:41 p6eval alpha 30e0ed: OUTPUT«NaN␤»
02:41 lue bargh!
02:42 PerlJam perl6: say 3+4i
02:42 p6eval elf 30021: OUTPUT«7␤»
02:42 p6eval ..pugs, rakudo 0a0469: OUTPUT«3 + 4i␤»
02:42 PerlJam elf: you have strange ideas.
02:42 p6eval elf 30021: OUTPUT«Parse error in: /tmp/aC7JBGUA80␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: you have strange ideas.␤WHERE:/\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤  STD_red/std.rb:224:in `comp_unit'␤
02:42 p6eval ..STD_red/std.rb…
02:42 lue perl6: say i
02:42 p6eval elf 30021: OUTPUT«Undefined subroutine &GLOBAL::i called at (eval 123) line 3.␤ at ./elf_h line 5881␤»
02:42 p6eval ..rakudo 0a0469: OUTPUT«Could not find non-existent sub &i␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
02:42 p6eval ..pugs: OUTPUT«*** No such subroutine: "&i"␤    at /tmp/IKmO1zJLdc line 1, column 5 - line 2, column 1␤»
02:42 lue rakudo: say 1i
02:42 p6eval rakudo 0a0469: OUTPUT«0 + 1i␤»
02:43 spinclad supernovus: how do you keep it small enough to run?  give up on persistence, restart periodically or every time?
02:43 lue rakudo: say e**(pi*1i)
02:43 p6eval rakudo 0a0469: OUTPUT«-1 + 1.22464679914735e-16i␤»
02:43 lue I suppose it does kinda equal -1...
02:44 patspam joined #perl6
02:44 spinclad rakudo: say ln(-1+0i)
02:44 p6eval rakudo 0a0469: OUTPUT«Could not find non-existent sub &ln␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
02:45 spinclad rakudo: say log(-1+0i)
02:45 p6eval rakudo 0a0469: OUTPUT«0 + 3.14159265358979i␤»
02:46 lue pi! \o/
02:46 supernovus spinclad: Actually, the SCGI daemon is still running persistently (for speed reasons) but is running on my home computer which is a LOT more powerful than the VPS. Reverse proxy using OpenSSH makes it seem "local" to the VPS.
02:46 lue imaginary pi! :(
02:47 lue rakudo: my $cake=3; my $inum=1+2i; say real($inum); say imag($inum);
02:47 p6eval rakudo 0a0469: OUTPUT«Could not find non-existent sub &real␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
02:47 lue aw. How can you extract the real and imaginary parts?
02:49 PerlJam $c.re $c.im
02:49 lue thanks.
02:49 lue rakudo: my $inum=1+2i; say $inum.re; say $inum.im;
02:49 p6eval rakudo 0a0469: OUTPUT«1␤2␤»
02:50 supernovus Anyway, for comparison sake: http://huri.net/ is running Perl 5. http://ww6.huri.net/ is running Perl 6. They aren't identical (in appearance or speed) but they are pretty close (other than content, which I haven't ported over yet, since I didn't make backwards compatibility a goal...)
02:51 lue rakudo: my $cake=pi; say log(-1+0i); log(-1+0i).im~~pi ?? say "no!" !! say "phew";
02:51 p6eval rakudo 0a0469: OUTPUT«0 + 3.14159265358979i␤Method 'ACCEPTS' not found for invocant of class 'Num'␤current instr.: 'infix:<~~>' pc 229607 (src/gen/perl6-actions.pir:17310)␤»
02:51 lue rakudo: my $cake=pi; say log(-1+0i); log(-1+0i).im~~$cake ?? say "no!" !! say "phew";
02:51 p6eval rakudo 0a0469: OUTPUT«0 + 3.14159265358979i␤Method 'ACCEPTS' not found for invocant of class 'Num'␤current instr.: 'infix:<~~>' pc 229607 (src/gen/perl6-actions.pir:17310)␤»
02:52 lue rakudo: my $cake=pi; say log(-1+0i); my $num = log(-1+0i); $num.im~~$cake ?? say "no!" !! say "phew";
02:52 p6eval rakudo 0a0469: OUTPUT«0 + 3.14159265358979i␤Method 'ACCEPTS' not found for invocant of class 'Num'␤current instr.: 'infix:<~~>' pc 229607 (src/gen/perl6-actions.pir:17310)␤»
02:52 lue alpha: my $cake=pi; say log(-1+0i); my $num = log(-1+0i); $num.im~~$cake ?? say "no!" !! say "phew";
02:52 p6eval alpha 30e0ed: OUTPUT«0 + 3.14159265358979i␤no!␤»
02:52 lue the cake IS a lie! :D
02:52 lue it's imaginary!
02:53 lue (that would be a good thing to code/test for in 楽土.
02:54 snarkyboojum joined #perl6
02:54 lue hello snarkyboojum! o/
02:54 snarkyboojum lue: g'day \o
02:55 sorear hello... I'm trying to use the MOP to help me learn, and when I tried "say 2.^methods()" in git rakudo I got a hang.  Did I do something wrong or should I file a bug somewhere?
02:55 lue rakudo: say 2.^methods()
02:55 lue #just checking
02:55 p6eval rakudo 0a0469: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 13697 (src/builtins/Block.pir:19)␤»
02:56 lue oooh O.O  I would help you with this predicament, but I honestly do not know. (this seems like a bug to me, personally)
02:56 PerlJam sorear: it's a known bug
02:56 sorear Oh, sorry
02:56 PerlJam no worries.  It really needs fixing.
02:57 lue yummy recursion is yummy recursion is yummy... :)
02:57 * sorear is trying to find something like Python's dir or Perl5's keys %::
03:00 lue .xkcd(http://xkcd.com/138/ the pun doesn't work as well with Perl, but still)
03:01 * lue --watch-tv --show="psych" &
03:01 PerlJam lue++ thanks for reminding me :)
03:08 * PerlJam looks forward to the day when "make spectest" doesn't take forever
03:19 Tene PerlJam: you could always delete some tests...
03:19 patspam joined #perl6
03:23 snarkyboojum PerlJam: when will be that day?
03:31 supernovus Well, I think I'll finish the last of the user-facing stuff in my CMS, then give the web stuff a rest for a few days. Next up on my Perl 6 TODO list: helping masak with the Temporal Flux project.
03:36 doublec joined #perl6
03:40 TimToady sigh, there seems to be a pervasive assumption on the part of test suite writers that undefined types and functions are merely run-time errors...
03:40 TimToady they keep testing it with dies_ok
03:41 vamped joined #perl6
03:42 vamped o/ all
03:42 TimToady \o
03:44 eternaleye joined #perl6
03:45 patspam joined #perl6
03:52 fda314925 joined #perl6
04:16 colomon TimToady: how would you suggest undefined types and functions should be tested?
04:16 colomon lue: try finding the sqrt of (-1 + 0i)   :)
04:17 TimToady well, best we can do at the moment is eval_dies_ok
04:18 colomon Hmmmm... so eval_dies_ok actually does eval, whereas dies_ok just does try?
04:18 TimToady to do better would either require separate files that are tested to destruction, or more cooperation from the parser to tell it that, say, the following line shouldn't compile, but start up again on the line after
04:20 mberends joined #perl6
04:21 * colomon hopes he is not responsible for propagating incorrect tests....
04:22 TimToady one problem with eval is that it can't test that something fails in the same scope
04:23 gfx joined #perl6
04:25 colomon It almost seems like the right solution would be to make a separate file.... hmmm.
04:31 mberends (backlogging) that amazing jnthn++ may have converted some beer into exactly the code I 'required' (or maybe 'need'), which I shall try to 'use' immediately after I 'import' his additions :)
04:50 pmichaud good evening, #perl6
04:50 mberends good late-evening, pmichaud
04:50 pmichaud yes, late-evening here, definitely.
04:50 pmichaud almost very-early-morning.
04:51 mberends we haz that in Europe now
05:05 tuxdna joined #perl6
05:20 Exodist joined #perl6
05:24 buubot joined #perl6
05:32 mberends module loading sorta wfm now, hacking during commute will be lotsa -Ofun :)
05:33 dalek rakudo: e634b58 | (Martin Berends)++ | src/Perl6/Module/Loader.pm:
05:33 dalek rakudo: [Perl6/Module/Loader.pm] patch by jnthn++ need's %name_adverbs argument optional
05:33 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​634b58ea8d3b686b27a32d3585726d855d9cb11
05:34 mberends ^^ candidate for most unclear commit message
05:35 mberends shower && commute &
05:38 lue hello!
05:39 lue rakudo: say sqrt(-1+0i)
05:39 p6eval rakudo 0a0469: OUTPUT«0 + 1i␤»
05:40 lue (wow, big raocow laugh/moment right there)
05:40 lue rakudo: say (-1+0i)**2
05:40 p6eval rakudo 0a0469: OUTPUT«1 + -2.44929359829471e-16i␤»
05:40 lue should be -1, methinks :/
05:41 lue oh no, it's 1, but w/o the imaginary part
05:42 vamped rakudo: say (0+1i)**2
05:42 p6eval rakudo 0a0469: OUTPUT«-1 + 1.22464679914735e-16i␤»
05:42 lue again, correct except for the imaginary part :)
05:42 eternaleye joined #perl6
05:43 vamped has anyone said that we should be able to get 0i with our current model?
05:44 vamped ie, using rats
05:44 lue don't know. I have not learned imaginary numbers, but methinks 0*√(-1) = 0
05:45 lue rakudo: say 1.22464679914735e-16
05:45 p6eval rakudo 0a0469: OUTPUT«1.22464679914735e-16␤»
06:09 TimToady rakudo: say 1i * 1i
06:09 p6eval rakudo 0a0469: OUTPUT«-1 + 0i␤»
06:09 am0c joined #perl6
06:09 lue if I remember from last time, someone convinced me on the importance of keep 0i. Reconvince me please :)
06:10 TimToady rakudo: say sqrt(1i * 1i)
06:10 p6eval rakudo 0a0469: OUTPUT«0 + 1i␤»
06:10 TimToady rakudo: say sqrt(-1)
06:10 p6eval rakudo 0a0469: OUTPUT«NaN␤»
06:11 lue rakudo: say sqrt(-1)**2
06:11 p6eval rakudo 0a0469: OUTPUT«NaN␤»
06:11 TimToady rakudo: say sqrt(-1+0i)**2
06:11 p6eval rakudo 0a0469: OUTPUT«-1 + 1.22464679914735e-16i␤»
06:12 sorear lue: Fractions are not infinitely precise in computing; if a very small imaginary number underflows, we should at least try to remember the phase
06:13 sorear also, it would be inconsistant to allow -0 but not 0i
06:14 lue what confuses me is that if the computation is (0+1*√(-1))**2 it doesn't come out just -1 :/
06:15 TimToady rakudo: multi sub sqrt(Real $x) { return sqrt($x+0i) }; say sqrt(-1)
06:15 p6eval rakudo 0a0469: OUTPUT«Invalid typename in parameter declaration at line 11, near " $x) { ret"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
06:15 TimToady rakudo: multi sub sqrt(Num $x) { return sqrt($x+0i) }; say sqrt(-1)
06:15 p6eval rakudo 0a0469: OUTPUT«No applicable candidates found to dispatch to for 'sqrt'␤current instr.: 'sqrt' pc 215 (EVAL_1:81)␤»
06:15 TimToady rakudo: multi sub sqrt(Int $x) { return sqrt($x+0i) }; say sqrt(-1)
06:15 p6eval rakudo 0a0469: OUTPUT«No applicable candidates found to dispatch to for 'sqrt'␤current instr.: 'sqrt' pc 215 (EVAL_1:81)␤»
06:16 TimToady rakudo: multi sub sqrt(Num $x) { return sqrt($x+0i) }; say sqrt(-1e0)
06:16 p6eval rakudo 0a0469: OUTPUT«No applicable candidates found to dispatch to for 'sqrt'␤current instr.: 'sqrt' pc 221 (EVAL_1:83)␤»
06:16 lue Can rakudo do that yet? It should.
06:16 lue (multi sub that is)
06:16 TimToady oughta work
06:16 TimToady alpha: multi sub sqrt(Num $x) { return sqrt($x+0i) }; say sqrt(-1e0)
06:16 p6eval alpha 30e0ed: OUTPUT«0 + 1i␤»
06:16 TimToady just a regression
06:17 TimToady but the point is, the default behavior is easy to override
06:17 TimToady if you want sqrt to promote reals to complex
06:17 lue I'm just stumped on the fact that this does not return -1:
06:17 lue rakudo: say (0+1i)**2
06:18 p6eval rakudo e634b5: OUTPUT«-1 + 1.22464679914735e-16i␤»
06:18 lue NQ -1 :)
06:18 hejki awesome! :)
06:18 TimToady ** is only approximate; probably done with logs
06:18 lue you can ignore it with .re but then you'd be assuming you would never need the imaginary part (which isn't good)
06:19 TimToady usually math packages trap **Int and just optimize to multiplication, but obviously not here
06:19 TimToady if it did that optimizaiton, it'd get the exact result:
06:19 TimToady rakudo: say sqrt(1i * 1i)
06:19 p6eval rakudo e634b5: OUTPUT«0 + 1i␤»
06:20 TimToady rakudo: say 1i * 1i
06:20 p6eval rakudo e634b5: OUTPUT«-1 + 0i␤»
06:20 TimToady like that
06:20 TimToady rakudo: say (1i * 1i) ** 0.5
06:20 p6eval rakudo e634b5: OUTPUT«6.12323399573677e-17 + 1i␤»
06:20 hejki rakudo: say (2+1i)**2
06:20 TimToady same problem in reverse
06:20 p6eval rakudo e634b5: OUTPUT«3 + 4i␤»
06:20 hejki :)
06:20 lue now see, that's better. (again, ignoring +0i would be great, but I remember there being a good reason to keep it)
06:21 TimToady we try to keep reals real, and complexes complex, to preserve sanity of people with poor imaginations
06:22 lue oh :/ ! that's not -Ofun. That's -Opracticality and -Oletsavoidanypossibleconfrontations :)
06:22 TimToady 'course, just having negatives would drive your average Roman nuts
06:23 lue multiplication would drive your average Roman nuts :) (actually, numbers greater than 3 can start to get on their nerves :D )
06:24 TimToady the flip side of easy type widening is having to decide when it's reasonable to unwiden, which is a much harder issue
06:24 TimToady my Num $x = (0+1i)**2;  # does this throw away the tiny imaginary part?
06:25 hejki rakudo: my Num $x = (0+1i)**2; say $x;
06:25 lue just like use strict and use warnings in P5, maybe there could be a use precisionmath :)
06:25 p6eval rakudo e634b5: OUTPUT«Type check failed for assignment␤current instr.: '&die' pc 16804 (src/builtins/Junction.pir:373)␤»
06:25 TimToady so generally better to stick to complex consistently once you get there, and try not to go there accidentally
06:26 TimToady likewise for FatRat
06:26 hejki rakudo: say ((0+1i)**2).WHAT
06:26 p6eval rakudo e634b5: OUTPUT«Complex()␤»
06:26 hejki nicey
06:26 TimToady rakudo: say (1+0i).WHAT
06:26 p6eval rakudo e634b5: OUTPUT«Complex()␤»
06:27 lue .oO(I fancy the idea of being able to "configure" the interpreter before you run code. ie. C<use hexint> would display integers in hex by default (and so on))
06:27 TimToady hence we can have sqrt do mind reading based on the input type
06:27 hejki rakudo: say ((2+1i)**2).Num
06:27 p6eval rakudo e634b5:  ( no output )
06:27 TimToady lue:  not if it means action at a distance
06:27 hejki hmm.. is there a method to extract the real or img part out of a complex? :)
06:27 TimToady it's okay in a lexical scope though
06:28 TimToady sure
06:28 TimToady use .re and .im
06:28 hejki rakudo: say ((2+1i)**2).re
06:28 p6eval rakudo e634b5: OUTPUT«3␤»
06:28 hejki ahh.. wonderful
06:28 lue you can avoid this fuss by doing some simple checking, but checking for 0 is easier than 1.22464679914735e-16
06:28 snarkyboojum joined #perl6
06:28 hejki this channel is nice since it actually makes me passively learn more about p6 :>
06:29 TimToady yeah, well, it's a tradeoff; the fact that we're talking to you means we're not actually working on it...
06:29 lue stay here long enough, and you'll passively learn secrets about 楽土 and potentially other implementations.
06:31 TimToady rakudo: say (1,1,{$^a+$^b}...*)[10]
06:31 p6eval rakudo e634b5: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
06:33 TimToady rakudo: say (1,2,4...*)[10]
06:33 p6eval rakudo e634b5:  ( no output )
06:34 TimToady rakudo: say (1,2,4...*).batch(10)
06:34 p6eval rakudo e634b5: OUTPUT«1248163264128256512␤»
06:34 vamped left #perl6
06:35 TimToady rakudo: say ~(1,2,4...*).batch(10)
06:35 p6eval rakudo e634b5: OUTPUT«1 2 4 8 16 32 64 128 256 512␤»
06:35 TimToady rakudo: say ~(1,1, {$^a+$^b}...*).batch(10)
06:35 p6eval rakudo e634b5: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
06:35 hejki :<
06:35 TimToady though colomon did arity-2 from remarks earlier
06:35 TimToady *thought
06:36 lue he did, but on his own machine (from my memory)
06:36 TimToady ah
06:36 snarkyboojum in the series subbranch?
06:37 TimToady rakudo: say [(1,2,4...*).batch(10)][9]
06:37 snarkyboojum breanch even
06:37 p6eval rakudo e634b5: OUTPUT«512␤»
06:37 snarkyboojum branch
06:37 TimToady rakudo: say [(1,2,4...*).batch(11)][10]
06:37 p6eval rakudo e634b5: OUTPUT«1024␤»
06:37 TimToady there we go :)
06:37 TimToady but bare [10] should work
06:37 TimToady methinks
06:38 lue ラクダの死亡星 is fully functional, operator-nal, and OOP-nal. 楽土の死亡星 is almost only functional and operator-nal :)
06:38 TimToady meaning a subscript should promote an iterator to a Seq
06:38 snarkyboojum http://justrakudoit.wordpress.c​om/2010/03/10/series-progress/
06:38 lue (i am bored)
06:38 snarkyboojum rakudo: (1, 1, { $^a + $^b } ... *).batch(20).perl.say
06:38 p6eval rakudo e634b5: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
06:38 snarkyboojum looks like it's not in master
06:41 TimToady rakudo: say ~[\+] (1,2,4...*).batch(10)
06:41 p6eval rakudo e634b5: OUTPUT«You can't backslash that at line 11, near "+] (1,2,4."␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
06:41 TimToady alpha: say ~[\+] (1,2,4...1024)
06:41 p6eval alpha 30e0ed: OUTPUT«say requires an argument at line 10, near " ~[\\+] (1,"␤in Main (file src/gen_setting.pm, line 2593)␤»
06:41 TimToady hmm
06:41 TimToady alpha: say ~[\+] (1,2,4,*...1024)
06:41 p6eval alpha 30e0ed: OUTPUT«say requires an argument at line 10, near " ~[\\+] (1,"␤in Main (file src/gen_setting.pm, line 2593)␤»
06:42 lue Now THAT is an error message "You can't backslash that at..." :)
06:42 TimToady alpha: say ~[+] (1,2,4...1024)
06:42 p6eval alpha 30e0ed: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in Main (file <unknown>, line <unknown>)␤»
06:42 TimToady std: say ~[\+] (1,2,4...*).batch(10)
06:43 p6eval std 30021: OUTPUT«ok 00:01 108m␤»
06:43 TimToady std sez you *can* backslash that :)
06:43 TimToady alpha: say ~[\+] 1,2,4,8,16,32
06:44 p6eval alpha 30e0ed: OUTPUT«say requires an argument at line 10, near " ~[\\+] 1,2"␤in Main (file src/gen_setting.pm, line 2593)␤»
06:44 TimToady pugs: say ~[\+] 1,2,4,8,16,32
06:44 p6eval pugs: OUTPUT«1 3 7 15 31 63␤»
06:44 lue That's the kind of error that's -Ofun and not -Oplayitsafe :)
06:45 TimToady pugs: say ~[\+] 1,3,5,7,9,11.13
06:45 p6eval pugs: OUTPUT«1 4 9 16 25 36.13␤»
06:45 TimToady pugs: say ~[\+] 1,3,5,7,9,11,13
06:45 p6eval pugs: OUTPUT«1 4 9 16 25 36 49␤»
06:45 TimToady pugs likes it...
06:47 TimToady alpha: say [+] 1,2,3
06:47 p6eval alpha 30e0ed:  ( no output )
06:47 lue well hmph! º.º
06:48 TimToady I thought alpha did reductions alreaqdy
06:48 TimToady alpha: say [*] 1,2,3
06:48 p6eval alpha 30e0ed: OUTPUT«6␤»
06:49 TimToady alpha: say [\*] 1,2,3,4,5
06:49 p6eval alpha 30e0ed: OUTPUT«Confused at line 10, near "1,2,3,4,5"␤in Main (file <unknown>, line <unknown>)␤»
06:49 snarkyboojum silly question - but what does the \ do?
06:49 TimToady returns all the intermediate result
06:49 snarkyboojum ah
06:49 TimToady which usually makes it look like a triangle :)
06:49 TimToady hence the visual metaphor of |\
06:50 snarkyboojum er.. ok :)
06:50 snarkyboojum rakudo: say [*] ^5
06:50 TimToady 0
06:50 lue /\ is a better visual :D
06:50 p6eval rakudo e634b5:  ( no output )
06:51 TimToady rakudo: say [*] ^5
06:51 snarkyboojum rakudo: say ^5
06:51 p6eval rakudo e634b5: OUTPUT«one([!whatever_dispatch_helper], 5)␤»
06:51 p6eval rakudo e634b5: OUTPUT«01234␤»
06:51 snarkyboojum no result is bizarre
06:51 TimToady rakudo doesn't parse reduce yet, so it thinks its an array of Whatever
06:51 rv2733 joined #perl6
06:52 TimToady alpha: say [*] ^5  # 0
06:52 p6eval alpha 30e0ed: OUTPUT«0␤»
06:52 TimToady 0 times anything is 0
06:52 snarkyboojum rakudo: say [*] 1..^5
06:52 p6eval rakudo e634b5: OUTPUT«Confused at line 11, near "say [*] 1."␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
06:52 snarkyboojum heh
06:53 TimToady rakudo won't parse any reduce yet
06:53 TimToady alpha will parse some of htem
06:53 TimToady *them even
06:53 TimToady std will parse all of them, but not do them :)
06:54 TimToady perl6: say [\*] 1,2,3,4,5
06:54 p6eval pugs: OUTPUT«12624120␤»
06:54 p6eval ..rakudo e634b5: OUTPUT«Confused at line 11, near "say [\\*] 1"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
06:54 p6eval ..elf 30021: OUTPUT«/home/p6eval/pugs/mi​sc/STD_red/match.rb:117:in `block in to_dump0': undefined method `to_dump0' for nil:NilClass (NoMethodError)␤      from /home/p6eval/pugs/misc/STD_red/match.rb:117:in `map'␤        from /home/p6eval/pugs/misc/STD_red/match.rb:117:in `to_dump0'␤   from
06:54 p6eval ../home/p6eval/pugs/misc/S…
06:54 TimToady pugs ftw
06:55 lue not for long hopefully >:)
06:55 sorear If Rakudo complains about "Null PMC access in invoke()", is that an internal bug diagnostic or a user error message
06:56 TimToady that's more or less equivalent to 'core dump'
06:56 TimToady but less friendly, since you don't actually get a core dump
06:57 lue it should print "core disabled. Blame Luke."
07:00 sorear worth filing a ticket for?  it's trivially reproducable (last git pull: yesterday)
07:01 kaare joined #perl6
07:02 TimToady if it's trivial we might already have it, but the volleyball principle says better too many going for the ball than too few
07:02 sorear okay
07:07 lue night all o/
07:12 sorear hmm, I'm not finding any documentation on the proper formatting of rakudo bug reports
07:12 sorear or is it completely freeform and all bugs are hand-copied into the queue
07:12 TimToady masak usually just copy/pastes some trials from the evalbot on irc
07:13 TimToady if you can reproduce it here as a one-liner
07:13 sorear p6eval: say Foo::x
07:14 TimToady rakudo: say Foo::x
07:15 TimToady hmm
07:15 p6eval rakudo e634b5:  ( no output )
07:15 TimToady std: say Foo::x
07:15 p6eval std 30021:  ( no output )
07:15 TimToady odd, maybe server is overloaded
07:15 TimToady odd, maybe server is overloaded
07:15 TimToady std: say Foo::x
07:16 p6eval std 30021: OUTPUT«Undeclared name:␤      'Foo::x' used at line 1␤ok 00:01 104m␤»
07:16 TimToady rakudo: say Foo::x
07:16 p6eval rakudo e634b5: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
07:16 TimToady rakudo: say Foo
07:16 p6eval rakudo e634b5: OUTPUT«Could not find non-existent sub &Foo␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
07:16 * sorear has insufficient clue what he is doing, and instead fuzz-tests the parser :)
07:17 TimToady rakudo: say Int::x
07:17 p6eval rakudo e634b5: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
07:17 TimToady I daresay someone didn't check a return value for error somewhere
07:17 TimToady maybe they should rewrite rakudo in Perl 6  :)
07:19 TimToady std: say Int::x
07:19 p6eval std 30021: OUTPUT«Undeclared name:␤      'Int::x' used at line 1␤ok 00:01 104m␤»
07:20 uniejo joined #perl6
07:20 sorear should I file, then, or do you want more tests?
07:20 TimToady std: class Foo {}; say Foo::x
07:20 p6eval std 30021: OUTPUT«Undeclared name:␤      'Foo::x' used at line 1␤ok 00:01 105m␤»
07:20 TimToady you can file it
07:20 TimToady std: class Foo {}; say Foo::<$x>
07:20 p6eval std 30021: OUTPUT«ok 00:01 105m␤»
07:21 TimToady std: class Foo {}; say Foo::<&x>
07:21 p6eval std 30021: OUTPUT«ok 00:01 105m␤»
07:22 sorear what does that syntax do?
07:22 TimToady looks up &x in the Foo package
07:23 TimToady but it doesn't reject it because Foo is modifiable at run-time, so someone might add a &f to it
07:23 TimToady Foo::<$x> is the same as $Foo::x in p5
07:23 TimToady you can also use that syntax in p6
07:24 TimToady std: class Foo {}; say $Foo::x
07:24 sorear but $Foo::x is early bound?
07:24 TimToady no
07:24 p6eval std 30021:  ( no output )
07:24 TimToady package vars are basically run-time lookups
07:25 TimToady we only complain about lexical vars, types, and functions at compile time
07:25 TimToady but unlike in p5 foo() is always compile-time lookup
07:26 TimToady if there's no foo defined lexically by the end of the file, it fails
07:26 TimToady std: foo 1,2,3; sub foo {...}
07:26 p6eval std 30021: OUTPUT«ok 00:01 106m␤»
07:26 TimToady std: foo 1,2,3;
07:26 p6eval std 30021: OUTPUT«Undeclared routine:␤   'foo' used at line 1␤ok 00:01 106m␤»
07:27 Su-Shee joined #perl6
07:27 IllvilJa joined #perl6
07:27 Su-Shee good morning
07:27 TimToady or in the terms masak was using earlier today, we know the $Foo::x symbol, but we don't necessarily no the container or value at compile time
07:27 TimToady *know
07:27 TimToady o/
07:29 TimToady std: our $y; { { GLOBAL::<$y> }; my $y }
07:29 p6eval std 30021: OUTPUT«ok 00:01 107m␤»
07:30 TimToady std: our $y; { { UNIT::<$y> }; my $y }
07:30 p6eval std 30021: OUTPUT«ok 00:01 105m␤»
07:30 TimToady std: our $y; { { $y }; my $y }
07:30 p6eval std 30021: OUTPUT«ok 00:01 105m␤»
07:30 TimToady std: my $y; { { $y }; my $y }
07:30 p6eval std 30021: OUTPUT«[31m===[0mSORRY![31m===[0m␤Lexical symbol '$y' is already bound to an outer symbol (see line 1);␤  the implicit outer binding at line 1 must be rewritten as OUTER::OUTER::<$y>␤  before you can unambiguously declare a new '$y' in this scope at /tmp/QnRjY1W2WN line 1:␤------>
07:30 p6eval ..[3…
07:31 TimToady std: my $y;␤{ { $y };␤my $y }
07:31 p6eval std 30021: OUTPUT«[31m===[0mSORRY![31m===[0m␤Lexical symbol '$y' is already bound to an outer symbol (see line 1);␤  the implicit outer binding at line 2 must be rewritten as OUTER::OUTER::<$y>␤  before you can unambiguously declare a new '$y' in this scope at /tmp/Qt7UPoJcNu line 3:␤------>
07:31 p6eval ..[3…
07:31 TimToady std: my $y;␤{ { OUTER::<$y> };␤my $y }
07:31 p6eval std 30021: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable OUTER::<$y> is not predeclared at /tmp/grbpImCMy0 line 2:␤------> [32m{ { OUTER::<$y>[33m⏏[31m };[0m␤    expecting any of:␤        POST␤   postfix␤  postfix_prefix_meta_operator␤FAILED 00:01 105m␤»
07:32 TimToady std: my $y;␤{ { OUTER::OUTER::<$y> };␤my $y }
07:32 p6eval std 30021: OUTPUT«ok 00:01 105m␤»
07:32 TimToady std: my $y;␤{ { OUTER::OUTER::OUTER::<$y> };␤my $y }
07:32 p6eval std 30021: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable OUTER::OUTER::OUTER::<$y> is not predeclared at /tmp/LiyoCLmlHt line 2:␤------> [32m{ { OUTER::OUTER::OUTER::<$y>[33m⏏[31m };[0m␤    expecting any of:␤    POST␤   postfix␤  postfix_prefix_meta_operator␤FAILED 00:01 105m␤»
07:32 TimToady std: my $y;␤{ { MY::OUTER::OUTER::<$y> };␤my $y }
07:32 p6eval std 30021: OUTPUT«ok 00:01 105m␤»
07:33 TimToady std: my $y;␤{ { UNIT::<$y> };␤my $y }
07:33 p6eval std 30021: OUTPUT«ok 00:01 105m␤»
07:34 TimToady rakudo: my $y;␤{ { MY::OUTER::OUTER::<$y> };␤my $y }
07:34 p6eval rakudo e634b5: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 12␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
07:35 TimToady rakudo: my $y;␤{ { $MY::OUTER::OUTER::y };␤my $y }
07:35 p6eval rakudo e634b5:  ( no output )
07:35 TimToady rakudo: my $y;␤{ { $OUTER::OUTER::y };␤my $y }
07:35 p6eval rakudo e634b5:  ( no output )
07:35 sorear the rakudobug@ autoresponder claims to be adding bugs to the "perl" queue
07:35 sorear scared me for a bit
07:35 sorear (did I just report a bug against Perl 5 / the 6 spec?)
07:36 TimToady if you sent to rakudobug it should be fine
07:36 sorear yeah, checked sent folder to be sure
07:37 TimToady rakudo: my $y;␤{ { $y };␤my $y }
07:37 p6eval rakudo e634b5:  ( no output )
07:37 TimToady rakudo: my $y;␤{ { $y };␤my $y }; say "ok"
07:37 p6eval rakudo e634b5: OUTPUT«ok␤»
07:37 TimToady rakudo: my $y;␤{ { $OUTER::y };␤my $y }; say "ok"
07:37 p6eval rakudo e634b5: OUTPUT«ok␤»
07:37 TimToady hmm
07:39 TimToady rakudo: my $y;␤{ { $OUTER::OUTER::y };␤my $y }; say "ok"
07:39 p6eval rakudo e634b5: OUTPUT«ok␤»
07:39 TimToady rakudo: my $y;␤{ { $OUTER::OUTER::OUTER::y };␤my $y }; say "ok"
07:39 p6eval rakudo e634b5: OUTPUT«ok␤»
07:40 TimToady um, at least three of the last four shoulda failed...
07:41 TimToady alpha: my $y;␤{ { $OUTER::OUTER::OUTER::y };␤my $y }; say "ok"
07:41 p6eval alpha 30e0ed: OUTPUT«ok␤»
07:41 TimToady alpha: my $y = 42;␤{ { say $OUTER::OUTER::OUTER::y };␤my $y }; say "ok"
07:41 p6eval alpha 30e0ed: OUTPUT«Use of uninitialized value␤␤ok␤»
07:42 TimToady ah, caught rakudo doing run-time lookups on things known at compile time
07:42 TimToady alpha: my $y = 42;␤{ { say $OUTER::y };␤my $y }; say "ok"
07:42 p6eval alpha 30e0ed: OUTPUT«Use of uninitialized value␤␤ok␤»
07:42 TimToady alpha: my $y = 42;␤{ { say $y };␤my $y }; say "ok"
07:42 p6eval alpha 30e0ed: OUTPUT«Null PMC access in type()␤in Main (file <unknown>, line <unknown>)␤»
07:43 TimToady alpha: my $y = 42;␤{ { say $y };␤my $x}; say "ok"
07:43 p6eval alpha 30e0ed: OUTPUT«42␤ok␤»
07:45 TimToady alpha: my $y = 42;␤{ { say $OUTER::y };␤my $y = 43; }; say "ok"
07:45 p6eval alpha 30e0ed: OUTPUT«Use of uninitialized value␤␤ok␤»
07:45 TimToady std: my $y = 42;␤{ { say $OUTER::y };␤my $y = 43; }; say "ok"
07:45 p6eval std 30021: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $OUTER::y is not predeclared at /tmp/sLUcz2NlsC line 2:␤------> [32m{ { say $OUTER::y[33m⏏[31m };[0m␤    expecting any of:␤        POST␤   postfix␤  postfix_prefix_meta_operator␤FAILED 00:01 106m␤»
07:46 TimToady well, bedtime
07:46 TimToady zzz &
07:48 iblechbot joined #perl6
07:56 [synth] joined #perl6
08:03 sorear suppose I want to find a complete list of methods valid on a number.  Where in the Rakudo sources should I look?
08:17 felipe joined #perl6
08:19 JimmyZ joined #perl6
08:19 JimmyZ sorear: like this?
08:20 JimmyZ rakudo: Num.^method().join(' ').say
08:20 p6eval rakudo e634b5: OUTPUT«Method 'method' not found for invocant of class 'ClassHOW'␤current instr.: '!dispatch_.^' pc 410 (src/glue/dispatch.pir:100)␤»
08:20 JimmyZ rakudo: Num.^methods().join(' ').say
08:20 p6eval rakudo e634b5:  ( no output )
08:20 JimmyZ rakudo: Num.^methods(:local).join(' ').say
08:20 p6eval rakudo e634b5: OUTPUT«WHICH perl cotan atan2 Complex sec log tan log10 cos sin pred Int acosec sinh asinh cosech abs acosech acotan Str asec cotanh acotanh unpolar sech asech atan acos Rat sqrt asin tanh Bool atanh exp cosh cosec acosh succ Num sign␤»
08:21 JimmyZ sorear: Is this what you want?
08:27 sorear yes
08:27 sorear I tried that earlier without the local and got a lovely crash #( Known bug ), I was expecting I'd have to fall all the way back to the sources
08:29 sorear excellent, JimmyZ++
08:29 mssm joined #perl6
08:31 JimmyZ the codes are in core/*Num.pm or builtins/Num.pir
08:37 sorear hmm, metaclasses don't seem to like ^methods
08:38 * sorear goes off and reads some stuff in src/metamodel
08:42 M_o_C joined #perl6
09:09 iay joined #perl6
09:09 iay hello
09:14 mathw Hello
09:19 m6locks good morning
09:22 iay hh
09:22 iay good evening
09:24 krakan joined #perl6
09:24 iay go
09:30 SJH_ joined #perl6
09:31 SJH_ I want to help to develop perl6. How can I start?
09:32 iay Me too
09:32 iay what's time perl6 will release?
09:32 SJH_ I don't know. Seems not decided yet
09:33 baest have you read the links on http://rakudo.org/how-to-help
09:33 baest ?
09:33 SJH_ Not yet.
09:33 iay Not yet
09:34 SJH_ I'm reading
09:34 ewilhelm http://www.perlfoundation.org/perl5/index.cgi?gsoc if you're a college student
09:34 baest Rakudo * is scheduled to be released in April/May. Otherwise, about Perl 6, it's an open question :)
09:35 ewilhelm where's the "how can I help?" page for perl6.org?
09:36 sorear I want to *understand* Perl 6
09:36 sorear I think that's a prereq for helping
09:36 baest ewilhelm: I don't think the links on that rakudo page is rakudo specific
09:36 moritz_ sorear: if you already know how to program in other languages, http://github.com/perl6/book/ might be a good start
09:36 iay where to start?
09:36 baest ewilhelm: but yes, it might be good to have that link on perl6.org
09:36 dakkar joined #perl6
09:37 moritz_ if you know perl 5, http://perlgeek.de/en/article/5-to-6 is also a good start
09:37 m6locks moritz_: i'd say that perl5 to perl6 blogpost is even better ;)
09:37 sorear moritz_: I'm a perl 5 occasional corehacker
09:37 moritz_ sorear: that's great
09:37 moritz_ m6locks: thanks
09:37 sorear I've skimmed through the 5-to-6 stuff but I don't really do tutorials
09:38 sorear it would be awesome if there were a perlguts6.pod floating around somewhere... I do better with bottom-up explanations
09:38 SJH_ I am a freshman for perl.
09:38 m6locks well then look at the synopsis
09:38 ewilhelm baest, yeah, something with low-hanging fruit like spectests and such?
09:38 moritz_ sorear: the guts are not part of the spec, and differ from implementation to implementation
09:38 * sorear checks out the book
09:38 m6locks or read the spectests
09:38 pugssvn r30022 | moritz++ | [t/spec] tests for RT #69608: nextwidth() when no more candidates are available
09:39 saschi joined #perl6
09:39 pugssvn r30023 | moritz++ | [t/spec] test for RT #69482: type constraints on arrays leaked to subsequent arrays
09:39 pugssvn r30024 | moritz++ | [t/spec] fudge meta-class.t for rakudo; test for RT #69322: 4.HOW.HOW
09:39 pugssvn r30025 | moritz++ | [t/spec] test for RT #69320
09:39 pugssvn r30026 | moritz++ | [t/spec] sigils-and-types.t looked rather broken; try to fix it, and fudge it for rakudo
09:39 saschi hello
09:39 dalek rakudo: 9786b03 | moritz++ | t/spectest.data:
09:39 dalek rakudo: enable passing test files
09:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​786b03ee228de1eb76adab5a91c89d7f0983a49
09:39 dalek rakudo: 9ef3c7c | moritz++ | src/core/Parcel.pm:
09:39 dalek rakudo: methods ACCEPTS in class Parcel
09:39 dalek rakudo: It is a bit incomplete since the spec doesn't really say what it should
09:39 dalek rakudo: do; this patch just implements the case where the invocant has no items, which
09:39 dalek rakudo: is also known as Nil.
09:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​ef3c7c51e498964a959cec60496e4cb31444094
09:39 dalek rakudo: 04ad775 | moritz++ | build/Makefile.in:
09:39 dalek rakudo: install Test.pir, since we can't load .pm modules right now
09:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​4ad775644666559d2e604073d88ed99c60eb081
09:39 pugssvn r30027 | moritz++ | [t/spec] tests for RT #69318
09:39 pugssvn r30028 | moritz++ | [t/spec] remove tests from nil.t that assume that Nil is a type; also change fudging for rakudo
09:39 pugssvn r30029 | moritz++ | [t/spec] tests for RT #69254, role composition can transport inheritance
09:39 pugssvn r30030 | moritz++ | [t/spec] test for RT #69240, &a as a named parameter
09:39 pugssvn r30031 | moritz++ | [t/spec] refudge my.t; test for RT #72328
09:39 moritz_ sorry for the flood
09:39 saschi np ^^
09:39 pugssvn r30032 | moritz++ | [t/spec] test for RT #71514
09:39 pugssvn r30033 | moritz++ | [t/spec] tests for RT #71810
09:39 pugssvn r30034 | moritz++ | [t/spec] fudge names.t for rakudo; test for RT #71194: can call a sub self()
09:40 iay so many stuff
09:40 sorear moritz_: not necessarily the perl 6 guts, but seeing how *one* implementation (it could even be a fictional one) works in detail would help me to form a coherent model
09:41 sorear like how C is defined in terms of an abstract machine
09:42 sorear "this expression gives this answer" doesn't do it for me :/
09:42 moritz_ the closest thing is probably the meta model in Perl 6
09:42 ewilhelm a recent talk I gave for an overview of perl6:  http://scratchcomputing.com/tmp/perl6.2010-02.html
09:43 sorear can you tell me where that's kept?
09:43 sorear I've been combing through a rakudo checkout most of today
09:43 ewilhelm sorear, rakudo  src/metamodel/ClassHOW.pir docs/metamodel.pod
09:44 moritz_ and there's docs/metamodel.pod
09:45 ewilhelm also, Moose.pm on the CPAN for a perl5 implementation
09:45 sorear Moose was my gateway drug, I'm trying to understand the real thing :)
09:54 ewilhelm as I understand it, moose *is* the real thing, except where perl 6 is able to streamline some things at the language level to take the bumps out of the syntax and eliminate some of the weird cases
09:55 moritz_ ewilhelm: does moose allow different object representations? (ie storing objects by a foreign library instead of as blessed hash)?
09:57 ewilhelm moritz_, I think a blessed thing is kosher, but it might be swimming uphill
10:03 moritz_ lolishazblogged: http://perlgeek.de/blog-en/per​l-6/copenhagen-hackathon.html
10:05 moritz_ phenny: tell mberends I gave my girlfriend some of these waffels, her first comment was "delicious", and the second (in a quite demanding voice) "more" :-) Thanks again.
10:05 phenny moritz_: I'll pass that on when mberends is around.
10:05 sorear moritz_: yes, yes, Moose does, I'm trying to figure out how to do something similar in perl6
10:06 sorear mostly as an exercise to study the implementations and specs
10:08 moritz_ sorear: see http://perlcabal.org/syn/S12.html​#Construction_and_Initialization
10:08 moritz_ sorear: iin that case $class.CREATE() would create an object of a different representation
10:08 moritz_ (though not yet implemenetd in Rakudo)
10:10 jnthn o/
10:11 * moritz_ has lost one of his bags during the travel home
10:11 jnthn :-(
10:12 moritz_ I still have hopes though; I know the train and rough location where I forgot it
10:17 sorear moritz_: How would that work?  It looks like the $!foo syntax is hard-coded to the Parrot opaque node code
10:18 moritz_ sorear: probably by some hooks in parrot that override getattribute/setattribute and forward that to an external implementation
10:19 sorear How would a hook like that work?
10:19 moritz_ not sure; that's somethiing you have to ask the parrot devs
10:19 sorear mm
10:22 jnthn The whole thorny issue of representations isn't addressed yet.
10:23 jnthn (In Rakudo)
10:23 jnthn All package construction is done through meta-model stuff though.
10:23 jnthn Representations are kinda less immediately interesting.
10:25 masak joined #perl6
10:27 masak good morning, #perl6
10:27 sorear hello
10:27 moritz_ \o/
10:28 moritz_ masak: just closed a particularly nice ticket of yours, RT #69254
10:28 masak yeah, I noticed. moritz_++
10:29 masak oh! and it's not only no longer an error, but it works? whoa!
10:29 masak jnthn++!
10:29 moritz_ indeed
10:30 masak (note that that's the postfix factorial applied to the regular karma autoincrement... :)
10:32 jnthn ooh, which ticket was that.. :-)
10:32 * jnthn just managed to find all the bits of his coffee machine and re-assemble it.
10:32 moritz_ increment by one, and return the factorial of the previous karma in void context. How vicious
10:32 masak jnthn: http://rt.perl.org/rt3/Tic​ket/Display.html?id=69254
10:32 masak moritz_: sink context... :)
10:33 jnthn masak: oh, yes
10:33 moritz_ a role that inherits from a class passes that inheritance on to the class it is composed into
10:33 jnthn masak: That woulda been a real pain to do in alpha...and with the metamodel re-works in master became trivial.
10:34 masak huh. need to study this 'metamodel' thing of yours. seems useful.
10:34 moritz_ :-)
10:36 jnthn I always had this dream where I metamodel...
10:36 jnthn :-)
10:36 * masak would listen to a music genre named 'Heavy Metamodel'...
10:42 moritz_ btw our recent discussion about pugs has inspired me to a clean-up action
10:42 mssm joined #perl6
10:43 moritz_ the idea is as follows: surely audrey keeps her pugs sources in a repo somewhere
10:43 moritz_ whereas the pugs sources in the pugs repo are out of date
10:43 masak yeah.
10:43 moritz_ so it would be nice to remove them, and instead point to an up-to-date repo
10:43 moritz_ (or maybe merge the two)
10:43 masak moritz_: maybe privmsg audreyt and ask her?
10:44 moritz_ so as an experiment I deleted all pugs specific things from the pugs repo in a local git branch
10:44 moritz_ masak: I emailed her today
10:44 masak oki, good.
10:44 moritz_ the result is a much smaller checkout: 98M compared to about 125M
10:44 masak \o/
10:45 masak we need to stop thinking about it as 'the Pugs repo'...
10:45 moritz_ aye
10:45 moritz_ it's "the Perl 6 repo"
10:45 masak aye.
10:45 masak it's basically STD.pm, the spectests, a number of implementations, and some stale Pugs-biased modules.
10:46 moritz_ the README in my branch reflects that
10:46 masak s/some/a quite impressive amount of/
10:47 pnu joined #perl6
10:48 masak rakudo: say (1,1,{$^a+$^b}...*)[10] # uncovered by TimToady++
10:49 p6eval rakudo 9786b0: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
10:49 * masak submits rakudobug
10:49 pnu joined #perl6
10:49 masak generally, I'm a bit surprised when I find that a type evaluates to GatherIterator. I'd expect something like List.
10:49 masak if GatherIterator our new List?
10:49 masak rakudo: say (1,1,{$^a+$^b}...*).WHAT
10:50 p6eval rakudo 9786b0: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
10:50 moritz_ s/List/Seq/ please
10:50 masak oh, the error is different from what I thought.
10:50 moritz_ this Block thing usually comes from Whatever star not working
10:50 moritz_ it tries to evaluate * as a number
10:50 masak rakudo: say (1,2,4...*)[10]
10:50 p6eval rakudo 9786b0:  ( no output )
10:51 masak there's the bug.
10:51 colomon right now there is no new List type
10:51 colomon Iterator might sort of be it.
10:51 masak 'List' is shorter than 'GatherIterator' :)
10:51 colomon and you're trying to do a modern-style series, but those only work on the series branch.  :)
10:52 masak oh.
10:52 moritz_ colomon: is there a reason for doing it in a branch? does it regress on some tests or so?
10:52 payload joined #perl6
10:52 moritz_ I understand that you wanted it in a branch as long as it was not called infxi:<...> but had the name of some helper function
10:53 pnu joined #perl6
10:54 colomon I was worried about it regressing, but it probably works well enough to merge now.
11:00 masak would it help if I tried merging locally to see what spectests break?
11:01 colomon I'm trying it right now, but my time this morning is very limited....
11:03 colomon moritz_++ # blog post and making me realize I'm not the only one who has never been to a perl conference b efore...
11:04 masak blog post? where?
11:04 moritz_ colomon: I've been to one, but not traveled to one, because it happend to be in my home town :-)
11:04 colomon hah!
11:05 colomon I'm just eagerly awaiting YAPC:NA....
11:05 * jnthn way very happy that moritz_++ came. :-)
11:05 jnthn It was a fun and productive few days.
11:07 moritz_ mabut it was "just" a German Perl Workshop with very little Perl 6 contents
11:07 moritz_ I do remember jnthn++ implemting grammars in Rakudo in those days :-)
11:07 moritz_ s/^ma/
11:08 * masak .oO( Look hands, no ma! )
11:08 jnthn I didn't understand most of the talks, I had to do *something*. :-)
11:09 masak jnthn: apparently we should send you to more conferences with talks you don't understand :P
11:12 moritz_ masak: http://perlgeek.de/blog-en/per​l-6/copenhagen-hackathon.html btw
11:12 snarkyboojum joined #perl6
11:12 masak moritz_: gracias.
11:13 masak snarkyboojum: oh hai, you're still up? I'm just going to lunch, but I'm happy to have a brief talk when I get back, if you're still here.
11:18 colomon okay, series branch merged.
11:18 colomon and pushed
11:19 colomon series still needs significant work, mind you, it's just off on the right track here.
11:22 dalek rakudo: 26a9a3e | (Solomon Foster)++ | src/core/ (2 files):
11:22 dalek rakudo: Merge branch 'series'
11:22 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​6a9a3ebbce34b0a2792c8d40c286c6160a1b889
11:23 m6locks oh a merge, gotta build my rakudo then
11:30 moritz_ I tried to build after a local merge here, and parrot used up all memory during compilation
11:30 moritz_ which it did not before
11:30 m6locks whoa, that's something
11:31 m6locks well it's almost a given that parrot needs to be built with rakudo
11:31 m6locks i had make complain something about cheats.pir
11:31 m6locks so i'm going all over with that
11:34 moritz_ killall parrot
11:34 moritz_ sorry about that
11:34 m6locks np :)
11:35 m6locks parrot builds so much faster than building rakudo with parrot, though ;P
11:35 m6locks it's a real stress test of my machine to build rakudo, nearly freezes my whole laptop
11:36 m6locks but i like to run those tests always with a new build to see how it's going :)
11:37 moritz_ same here :-)
11:43 masak moritz_: at the beginning of one paragraph, there's a single word 'implement' sitting on its own line. is that intentional?
11:44 moritz_ probably not
11:44 masak otherwise, awesome post.
11:45 masak moritz_++
11:45 dalek rakudo: 595ec0e | (Solomon Foster)++ | t/spectest.data:
11:45 dalek rakudo: Turn on basic series test files.
11:45 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​95ec0e326f81a75cf11db2705f9387a94cb831c
11:45 moritz_ masak: did you make any progress on the book?
11:45 masak moritz_: apart from the review of half of the grammar chapter on the Tuesday before I left, no.
11:46 masak my mind shut off on the train, so I watched a movie and had nom.
11:46 moritz_ nom++
11:46 m6locks nom is good, imma had some now too
11:46 m6locks s/had/have/
11:46 masak when it came back online, I implemented the rest of the Tardis tests.
12:08 masak I seem to be quickly building up a post-conference cold. :/
12:08 k23z__ joined #perl6
12:08 moritz_ masak: same here - the train from copenhagen to the ferry was icy cold
12:09 jnthn masak: I have one too. :-(
12:09 masak I don't remember being cold anywhere during the journey. but I might have cheated a bit on sleep, tbh.
12:09 jnthn Woke up with very sore throat.
12:09 jnthn I certainly blame mine on sleep deprivation. I did two nights with only a couple of hours of sleep in the days before the hackathon.
12:09 masak nod.
12:10 masak boring $work meeting &
12:10 cognominal joined #perl6
12:10 moritz_ offline again &
12:13 m6locks http://www.youtube.com/watch?v=PsPX0nElJ0k
12:19 arthur-_ joined #perl6
12:21 bluescreen joined #perl6
12:36 ruoso joined #perl6
12:39 m6locks Files=289, Tests=28314, 1672 wallclock secs (13.91 usr  3.81 sys + 1388.48 cusr 184.10 csys = 1590.30 CPU)
12:39 m6locks Result: PASS
12:40 iblechbot joined #perl6
12:41 colomon \o/
12:41 m6locks :)
13:04 takadonet morning all
13:06 colomon o/
13:10 jnthn morning, takadonet
13:10 takadonet how is everyone doing?
13:12 jnthn Slight cold, settling into new country, have a cup of tea and a stroopwafel so all is well.
13:12 takadonet good to hear
13:16 takadonet We are getting lots of tests back!
13:18 jnthn Yes!
13:32 arthur-_ joined #perl6
13:49 masak joined #perl6
13:53 PerlJam greetings all
13:54 masak hi, PerlJam!
14:00 SmokeMachine joined #perl6
14:05 mathw hi!
14:05 jnthn oh hai mathw/masak/PerlJam
14:06 PerlJam good $localtime jnthn
14:09 masak hi mathw! do you have a cold, too?
14:09 jnthn It's the latest Perl 6 fashion!
14:10 Sunil joined #perl6
14:16 * masak had forgotten how fun it is to have a runny nose :(
14:18 mathw no I don't have a cold
14:18 mathw but I'm not quite completely well
14:18 bluescreen joined #perl6
14:18 mathw my mind is very sluggish today, and low energy
14:18 mathw it appears undentable in any useful fashion with caffeine
14:20 masak :/
14:21 masak I am currently thinking how to represent pads in a SIC way.
14:22 masak I increasingly like "assign '$a', 42" and "bind '$a', '$b'". but they completely ignore the issue of pads.
14:22 masak how does PIR do it?
14:25 * mathw has been reading about template metaprogramming in C++, which is scaryawesomecrazy
14:25 mathw although the book had a very amusing sentence in it
14:25 mathw something along the lines of "Imagine how strange it would be if you could write a function which was only callable if the value of its argument was odd"
14:26 arnsholt In Perl 6, we can do that =D
14:26 mathw yup
14:26 mathw and my background in dependently typed functional programming leads me to say 'what's odd about that?'
14:27 mssm joined #perl6
14:28 PerlJam mathw: If that was a serious point in the book, I'd suggest the author(s) are lacking a little experience :)
14:29 mathw Well it's what they said
14:29 mathw They seem fairly familiar with functional programming in general and Haskell in particular
14:29 mathw and clearly know C++ inside-out
14:30 mathw Maybe it's a function of addressing an audience of C++ programmers not expected to know anything else
14:30 arlinius joined #perl6
14:30 PerlJam perhaps
14:30 mathw But it did make me chuckle
14:30 mathw I got a strange look for that
14:30 mathw I was reading it on the tram, and I think the person next to me thought it looked far too dry to be chuckled at
14:33 PerlJam Is there some easy-ish way to know if a particular bug has had tests written?
14:33 arnsholt Grep for the RT ticket number_
14:33 arnsholt s/_/?
14:33 PerlJam for instance, I was just looking at RT67862 and it seems to be fixed, but that RT# doesn't appear in t/spec
14:34 PerlJam :)
14:37 am0c joined #perl6
14:37 arnsholt In that case, you'll have to dig in some plausible test files I think
14:37 mathw The other strategy would presumably be to... do what arnsholt typed faster
14:38 payload joined #perl6
14:51 PerlJam Of the 338 tickets labeled [BUG], only 64 ticket numbers appear in files in t/spec  :(
14:53 payload joined #perl6
14:55 colomon joined #perl6
14:56 colomon o/
14:57 takadonet o/
14:57 colomon hello from Urban Toddler!  since my wife is here too, she can watch Henry and I can work.  :)
14:57 takadonet !!
14:58 masak woot! we need all the colomon we can get :)
14:58 * PerlJam read that as "she can watch Henry and I work" initially
14:58 colomon awww....  blush
14:58 colomon he's only 18 months old, he can't handle Perl 6 programming yet.
14:59 PerlJam Are you sure?
14:59 colomon give him another couple of years, though.... ;)
14:59 PerlJam Have you tried teaching him?
14:59 Su-Shee colomon: he can do vi though. just press escape and let him hit some keys ;)
14:59 colomon he's very good at hitting random keys.
14:59 [particle] that's perl 5.
14:59 colomon also all the specially marked keys, like the power button.
14:59 masak 18-month-olds already have quite an advanced mental parser.
15:00 xinming joined #perl6
15:00 Su-Shee colomon: the son of a (geek-) friend of mine could start firefox and open his favorite website before he was three.
15:01 PerlJam humans learn gestures faster than symbology (for the most part), so all we need is a gestural interface to produce perl 6 code and Henry can help us out
15:01 PerlJam :)
15:01 colomon Su-Shee: I suspect Henry will have figured out how to launch videos in iTunes before he is three.  He loves watching musicians play...
15:02 Su-Shee colomon: remove the "suspect" - he just will.
15:02 colomon :)
15:02 * Su-Shee has seen a super cute video of a bunch of pre-school girls soldering (!) little butterflies which blinked :)
15:04 masak Su-Shee: URL? :)
15:04 Su-Shee I don't remember, sadly. google for "blinky bugs" or "blinken bugs" - it was a father with three daughters or something and the bugs where all fluffy and cutsy and plushy.
15:05 Su-Shee (and an amazing example of what kids/girls can do..)
15:06 masak could be related to this page: http://www.blinkybug.com/
15:06 masak but I am finding no such video.
15:06 PerlJam Su-Shee: why did you separately mention girls there?
15:07 masak PerlJam: because ours is a world where it's uncommon for the kids to be girls in that situation?
15:08 PerlJam it's uncommon for girls to do amazing things?
15:08 Su-Shee PerlJam: because it was specifically in the context of "girls and technology" and the bugs were immensely girly which was interesting what girls do go for if they start soldering.
15:08 PerlJam ;)
15:08 masak in a mirror world, it'd've been motivated to write 'kids/boys'.
15:09 Su-Shee masak: blinkybug is essentially the inventor I think.
15:09 masak gotcha.
15:10 jnthn "it'd've" :-D
15:11 Psyche^ joined #perl6
15:11 colomon hmmm, maybe we need Camelia toy soldering kits...  ;)
15:12 CokeGod PerlJam: ask yourself why you fixedated on the fact that she happened to mention girls instead of going super generic.
15:12 CokeGod *fixated
15:12 Sarten-X joined #perl6
15:12 PerlJam CokeGod: I just thought it curious.
15:12 CokeGod you mean, "one might think it curious". wouldn't want to be too specific. =-)
15:13 PerlJam Just like I find it curious that I read masak's sentence just now but the compound contraction didn't seem strange at all until jnthn highlighted it.
15:13 masak it wasn't, until jnthn highlighted it :P
15:13 PerlJam (I actually interpolated "it would have" when I read the sentence and didn't even notice there *was* a contraction)
15:14 jnthn masak: I've not sure I've seen it before.
15:14 jnthn masak: It's completely logical and understandable.
15:14 PerlJam though I'm not sure why Su-Shee is suddenly genderless
15:14 masak jnthn: we talked about I'd'ven't here on #perl6 a week or so ago.
15:14 masak jnthn: and I'dn't've.
15:15 Su-Shee me what? :) I'm so very much not genderless.. :)
15:15 jnthn I like them.
15:15 masak thought you would :)
15:16 mathw It appeals in a twisted sort of way
15:16 mathw Why shouldn't we have multi-point contractions in appropriate situations?
15:18 colomon wow, lots of kids here today.
15:18 masak colomon: for a while, I thought you meant on #perl6 :P
15:18 colomon :p
15:18 rgrau joined #perl6
15:18 colomon it feels really weird to be here and not be keeping an eye on Henry, too.
15:18 PerlJam masak: he did!
15:18 PerlJam we're all young again!
15:19 masak PerlJam: were that but true. :)
15:19 mssm joined #perl6
15:20 PerlJam as soon as physicists figure out how to reverse that entropy arrow, the time arrow can't be much further behind.
15:27 * colomon wonders if his $work code is working or just looping forever more ... hey, it produced results!  o/
15:32 nihiliad joined #perl6
15:36 alester joined #perl6
15:43 mssm joined #perl6
15:48 k23z__ joined #perl6
15:48 k23z__ joined #perl6
15:56 masak std: y/A-Za-z/N-ZA-Mn-za-m/
15:56 p6eval std 30034: OUTPUT«[31m===[0mSORRY![31m===[0m␤Missing term at /tmp/0RuyJiG8fM line 1 (EOF):␤------> [32my/A-Za-z/N-ZA-Mn-za-m/[33m⏏[31m<EOL>[0m␤    expecting any of:␤    POST␤   argument list␤      bracketed infix␤  infix or meta-infix␤      postfix␤        postfix_prefix_meta_operator␤
15:56 p6eval .. prefix or term␤ term␤Undecla…
15:56 masak ...could use a friendlier error message...
15:57 masak std: tr/A-Za-z/N-ZA-Mn-za-m/
15:57 p6eval std 30034: OUTPUT«ok 00:01 105m␤»
15:57 TimToady hmm
15:57 masak ...dashes don't work anymore, do they?
15:57 TimToady STD doesn't care about that yet
15:58 TimToady it will eventually
15:58 * araujo should probably take some time to play a bit with perl6
15:58 masak araujo: definitely. now's the time.
15:58 PerlJam everyone should take some time to play with perl6
15:58 * araujo almost bought a copy of "Mastering Perl" in Chinese to continue practicing
15:59 araujo but probably to mix chinese and perl in same book is too much for my brain at this time
15:59 araujo masak, many things moving around these days right?
15:59 masak I'm glad the series of blog posts at http://www.catonmat.net/blog/perl​-one-liners-explained-part-five/ is being produced, because we can use it as a template for what things Perl 6/Rakudo need to focus on to become good for one-liners.
15:59 masak araujo: yes and no. mostly falling into place.
16:01 araujo I see
16:02 colomon heh.  do we really want perl 6 to be good for one-liners?
16:02 PerlJam yes!
16:02 * araujo hope so :P
16:03 * araujo is pretty much a one liner
16:03 PerlJam at least as long as the concept of a "command line" is around
16:03 PerlJam one-liners are the bread and butter for unix command line
16:03 masak colomon: it will perhaps not beat Perl 5 in every respect, but it's an important area for sure.
16:03 masak s/Perl 5/Perl 5 one-liners/
16:04 masak I'm hoping Perl 6 will develop its own style wrt one-liners.
16:04 masak and that it'll be relatively painless to switch from Perl 5-think to Perl 6-think when writing one-liners.
16:04 colomon I guess I've never understood the appeal.  I'd always rather code a five line Perl script than try to cram it all in on the command line.
16:04 masak colomon: I'm a big fan of one-liners.
16:05 masak most of my scripts start their life on the command line.
16:05 PerlJam colomon: it's not that you try "to cram it all in", it's that the language allows that one line to flow out naturally.
16:05 frettled perl6 -e '@÷≈‘›»—–`≤$…’'
16:05 masak frettled: 42.
16:06 frettled \o/
16:06 k23z__ joined #perl6
16:06 k23z__ joined #perl6
16:07 PerlJam and I guess as what masak just said ... once the volume of language gets too big or the flow too unweildy, you transition to a file.
16:07 frettled mm
16:08 frettled I often do that with my Perl 5 one-liners.
16:09 masak I threw together 'pun' (the Perl 6 project) so that I could have -p and -n flags before they were implemented in Rakudo.
16:09 masak unfortunately, I think the project has bitrotted.
16:10 jnthn Rakudo is pretty weak on the command line front.
16:10 jnthn :-(
16:13 mathw I virtually never write one-liners
16:13 mathw the closest I get is throwing stuff at p6eval
16:14 PerlJam I write perl6 one-liners for tests all the time.
16:14 PerlJam occasionally using the repl
16:15 colomon hmmm... I love repl / p6eval one-liners.  But they're almost always to test the language, not to do something useful.
16:15 colomon BTW...
16:15 colomon rakudo: (1, 1, { $^a + $^b } ... 100).perl.say
16:15 p6eval rakudo 595ec0: OUTPUT«GatherIterator.new()␤»
16:15 masak imagine being able to do a grammar-aware replacement with a Perl 6 one-liner... wow.
16:15 colomon darn it.
16:15 colomon rakudo: (1, 1, { $^a + $^b } ... 100).eager.perl.say
16:16 p6eval rakudo 595ec0: OUTPUT«(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89)␤»
16:16 jnthn Wow.
16:16 TimToady \o/
16:17 jnthn Perl 6. Making it easy to fib.
16:17 jnthn colomon++
16:17 colomon still has a lot of issues to get up to spec, I must admit.
16:17 mathw That is awesome
16:18 TimToady 万才!
16:18 colomon rakudo: (1, 1, 1, { $^a + $^b + 2*$^c } ... 400).eager.perl.say
16:18 p6eval rakudo 595ec0: OUTPUT«(1, 1, 1, 4, 10, 25, 64, 163)␤»
16:18 colomon gotta go now, please find bugs!  ;)
16:18 mathw colomon++
16:19 TimToady rakudo: (1,2,4...*)[10]
16:19 p6eval rakudo 595ec0:  ( no output )
16:19 TimToady rakudo: say (1,2,4...*)[10]
16:19 p6eval rakudo 595ec0:  ( no output )
16:20 TimToady rakudo: say ~(1,2,4...*).batch(10)[^10]
16:20 p6eval rakudo 595ec0: OUTPUT«1 2 4 8 16 32 64 128 256 512␤»
16:20 TimToady rakudo: say ~(1,2,4...*)[^10]
16:21 p6eval rakudo 595ec0:  ( no output )
16:21 TimToady maybe that's trying to eagerify the list
16:22 TimToady rakudo: say ~(1,2,4...*).Array.[^10]
16:22 p6eval rakudo 595ec0: OUTPUT«Method 'Array' not found for invocant of class 'GatherIterator'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
16:22 jnthn Try .Seq maybe
16:22 TimToady rakudo: say ~(1,2,4...*).Seq.[^10]
16:22 TimToady nope
16:22 p6eval rakudo 595ec0:  ( no output )
16:22 mathw how does it figure out what the lhs implies in terms of sequence generation?
16:22 TimToady rakudo: say ~[(1,2,4...*)][^10]
16:23 p6eval rakudo 595ec0:  ( no output )
16:23 TimToady S03:1814
16:24 TimToady more specifically, S03:1896
16:26 mathw aaah
16:26 TimToady and yes, it was considered whether to intuit more serieseses than that, and we decided not to
16:26 mathw probably a good idea
16:26 mathw since people can always provide a closure
16:26 Sarten-X joined #perl6
16:26 TimToady eventually fibonacci is just:
16:27 TimToady rakudo: say ~(1,1,*+*...*).batch(10)
16:27 p6eval rakudo 595ec0: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
16:27 mathw yes I liked that particularly
16:27 masak that's almost pretty.
16:27 mathw * is going to enable some lovely code
16:27 payload joined #perl6
16:27 TimToady but I don't think rakudo turns the 2nd * into $^b yet
16:32 jnthn No, I'm pretty sure that doesn't happen yet.
16:34 REPLeffect joined #perl6
16:35 mathw I seem to be spending most of today being amazed by cool programming-language-related technology
16:37 mantovani joined #perl6
16:46 mathw rakudo: ("' ello " x 5).say
16:46 p6eval rakudo 595ec0: OUTPUT«' ello ' ello ' ello ' ello ' ello ␤»
16:48 masak rakudo say [x] ("' ello " xx 5)
16:48 masak rakudo: say [x] ("' ello " xx 5)
16:48 p6eval rakudo 595ec0: OUTPUT«Confused at line 11, near "say [x] (\""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
16:48 masak std: say [x] ("' ello " xx 5)
16:48 p6eval std 30034: OUTPUT«ok 00:01 108m␤»
16:51 mathw shouldn't that output an empty string?
16:51 mathw obviously 'Confused at line 11' is not so good :)
16:52 * mathw goes home
16:54 TimToady rakudo doesn't parse reduce ops yet
16:55 TimToady so it's parsing it like this:
16:55 TimToady std: say [1] ("' ello " xx 5)
16:55 p6eval std 30034: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row (preceding is not a valid reduce operator) at /tmp/1y0XBzNXhe line 1:␤------> [32msay [1] [33m⏏[31m("' ello " xx 5)[0m␤    expecting any of:␤    bracketed infix␤  infix or meta-infix␤      statement modifier loop␤FAILED 00:01
16:55 p6eval ..105m␤»
17:02 pugssvn r30035 | lwall++ | [STD] add in a q-like sublanguage for tr/// string parsing
17:02 pugssvn r30035 | awesomeization of y/// and tr/a-z/A-Z/ messages for masak++
17:04 masak \o/ TimToady++
17:05 masak class Kitten { has $.flavor }; http://www.flickr.com/photos/rhodamine/513534092/
17:06 TimToady obviously not a kitten from her majesty's commonwealth...
17:08 TimToady unless british lolcat misspells words americanly...  :)
17:08 masak there is that.
17:10 iblechbot joined #perl6
17:10 jnthn I can haz Americanisation?
17:10 TimToady you can also haz Aermicanization fail
17:11 * TimToady has speeling fail
17:11 jnthn I was spelling Americanization the British way. :-P
17:12 TimToady I noticed
17:14 jnthn By now, my writing seems to end up being some mixture of the two.
17:14 jnthn Unless I make effort to go one way or the other.
17:14 TimToady you mean a mixture of the three
17:14 * jnthn is more likely to write what keeps the spell checker happy than he is to change the spell checker...
17:15 masak swimming &
17:15 TimToady str: y///
17:15 TimToady std: y///
17:15 jnthn .oO( I hope he's not doing that in sink context )
17:15 p6eval std 30034: OUTPUT«[31m===[0mSORRY![31m===[0m␤Regex missing terminator at /tmp/KV0HFFXnpJ line 1 (EOF):␤------> [32my///[33m⏏[31m<EOL>[0m␤Undeclared routine:␤    'y' used at line 1␤FAILED 00:01 108m␤»
17:15 TimToady ETOOIMPATIENT
17:24 Helios joined #perl6
17:37 japhb phenny, tell pmichaud PerlJam tells me he's waiting for your approval on his NQP-rx => changes (allowing quoted strings also, instead of just idents on the LHS) before he snapshots NQP-rx into Parrot.  fperrad++ and I are waiting on that feature for some installer magic.  Can you take a look?  Thanks in advance!
17:37 phenny japhb: I'll pass that on when pmichaud is around.
17:43 quietfanatic joined #perl6
17:45 rgrau joined #perl6
17:50 snarkyboojum joined #perl6
17:55 bkeeler_ joined #perl6
17:56 m6locks rakudo: say $pi
17:56 p6eval rakudo 595ec0: OUTPUT«Symbol '$pi' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
17:56 m6locks rakudo: say pi
17:56 p6eval rakudo 595ec0: OUTPUT«3.14159265358979␤»
17:56 bkeeler_ Hi-diddly-ho perlerinos!
17:58 m6locks hi
17:58 colomon joined #perl6
18:01 mberends joined #perl6
18:05 colomon I'm afraid the fail on (1 ... *)[10] is probably my fault -- I think it tries to eagerly grab the entire series rather than just the first 11 elements.
18:06 diakopter rakudo: say pi//pi
18:06 p6eval rakudo 595ec0: OUTPUT«3.14159265358979␤»
18:06 colomon how do you know which pi you got?  ;)
18:07 diakopter std: say pi//||pi
18:07 p6eval std 30035: OUTPUT«ok 00:01 106m␤»
18:07 diakopter rakudo: say pi//||||pi
18:07 p6eval rakudo 595ec0: OUTPUT«3.14159265358979␤»
18:18 mberends for a while in Copenhagen, pi was weighing in at around 3.8 on beast's computer ;)
18:18 phenny mberends: 10:05Z <moritz_> tell mberends I gave my girlfriend some of these waffels, her first comment was "delicious", and the second (in a quite demanding voice) "more" :-) Thanks again.
18:22 mberends jnthn++ also shares the credit for collaborating on stroopwafels in Arnhem. In fact his talk included class Stroopwafel is Cake { ... } and the Dutch Perl Mongers presented him with a nice box of them :-)
18:23 jnthn Spread the lov^Wstroop!
18:26 mberends jnthn: Perl6/Module/Locator.pm has a little buglet, that I found with module loading. Shall I leave in but comment out some debugging pir::say()  statements that were useful in troubleshooting?
18:27 jnthn mberends: oops, did I leave in debug code? :-/
18:27 jnthn Anyway yes, comment them out.
18:27 mberends jnthn: no, just some buggy code ;-)  I added the debugging.
18:27 jnthn oh, I see!
18:28 jnthn So I only semi-fail. :-)
18:28 jnthn Did you manage to patch it?
18:28 jnthn Anyway, feel free to comment out but leave in troubleshooting code for now.
18:28 mberends yes, on balance it's still a big win. Still figuring out the fix, should be ok.
18:28 jnthn We'll probably need to hunt a few buglets in that area.
18:29 * jnthn is glad it's in NQP, so it's easier for @other to fix buglets :-)
18:40 IllvilJa joined #perl6
18:43 Sarten-X2 joined #perl6
18:56 synth joined #perl6
19:04 mikehh joined #perl6
19:08 PerlJam hello again #perl6
19:10 Chillance joined #perl6
19:15 ive joined #perl6
19:24 jonasbn joined #perl6
19:29 xomas joined #perl6
19:29 xomas joined #perl6
19:31 dalek rakudo: d07f647 | (Martin Berends)++ | src/Perl6/Module/Locator.pm:
19:31 dalek rakudo: [Perl6/Module/Locator.pm] insert a / between path and filename if the name occurs after a :: separator
19:31 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​07f647bd2c3d163a7227470dbcb9395d3f8b91c
19:34 PerlJam mberends: doesn't that add an extra / ?
19:34 mberends PerlJam: I took 2 other /'es off to compensate ;)
19:37 mberends well, 1 other, old line 19 in http://github.com/rakudo/rakudo/commit/d​07f647bd2c3d163a7227470dbcb9395d3f8b91c
19:37 mberends the second removal was only out of the troubleshooting pir::say()
19:38 PerlJam oh, I see, you just moved the / around following the conservation of slashes principle  :)
19:38 mberends a very good principle :)
19:38 mberends aka waterbed theory
19:39 mberends don't slash waterbeds though
19:40 TimToady leaky abstraction...
19:41 mberends :-)
19:42 mberends there is probably an opportunity to optimize performance by converting a readdir() to a stat(), but there are likely to be other future changes that make such a minor tweak redundant.
19:47 pmichaud good afternoon, #perl6
19:47 phenny pmichaud: 17:37Z <japhb> tell pmichaud PerlJam tells me he's waiting for your approval on his NQP-rx => changes (allowing quoted strings also, instead of just idents on the LHS) before he snapshots NQP-rx into Parrot.  fperrad++ and I are waiting on that feature for some installer magic.  Can you take a look?  Thanks in advance!
20:00 SmokeMachine joined #perl6
20:03 TimToady std: y///
20:03 p6eval std 30035: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unsupported use of y///; in Perl 6 please use tr/// at /tmp/YyT4qazDyX line 1:␤------> [32my[33m⏏[31m///[0m␤FAILED 00:01 106m␤»
20:04 TimToady std: tr!a-z!A-Z!
20:04 p6eval std 30035: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unsupported use of - as character range; in Perl 6 please use .. at /tmp/8MvrkBSBUR line 1:␤------> [32mtr!a-[33m⏏[31mz!A-Z![0m␤FAILED 00:01 105m␤»
20:04 ShaneC joined #perl6
20:08 mberends std: tr!a..z!A..Z!
20:09 p6eval std 30035: OUTPUT«ok 00:01 105m␤»
20:11 avar Who's the maintainer of http://irclog.perlgeek.de/perl6 ? Is it possible to download the complete log in text format
20:12 mberends avar: moritz_++ does it, and he might be willing to do a mysqldump if you ask him nicely
20:13 takadonet avar: and give him coffee
20:13 avar I was pondering making a TimToady bot using Hailo :)
20:14 mberends who says it hasn't already been done? ;)
20:14 avar I'd probably know about it :)
20:17 M_o_C joined #perl6
20:18 TimToady just make it capricious and arbitrary, and no one will know the difference
20:22 chromatic joined #perl6
20:23 chromatic I'm working on a series of interviews/articles for next month to promote Rakudo Star on Perl Pub.
20:23 takadonet hey chromatic
20:23 chromatic Hello.
20:25 * jnthn back for a while
20:25 jnthn chromatic: Cool. :-)
20:25 jnthn pmichaud: o/
20:26 chromatic I'm looking for answers from people like jnthn, pmichaud, masak, moritz, PerlJam, colomon, and whoever else feels so inclined: http://nopaste.snit.ch/19918
20:28 jnthn chromatic: Can do. Feel free to bug me if I forget.
20:28 jnthn (Should be able to do this today/tomorrow.)
20:28 mberends chromatic: yes, I feel so inclined, it's a good spread of topics. Where would you prefer submissions to go?
20:29 jnthn mberends: Email address is in the nopaste :-)
20:29 mberends ah.
20:29 mberends reading fail.
20:30 chromatic I hope to get at least a couple of articles out of it around the right time period, but if there's more that's fine too.
20:36 rgrau joined #perl6
20:38 lichtkind joined #perl6
20:39 avar TimToady bot, see if you can tell the difference: http://hailo.nix.is/ :)
20:40 meppl joined #perl6
20:44 TimToady heh, I said howdy. and it complained that my . wasn't concat in p6
20:45 TimToady that's so...capricioius and arbitrary...
20:49 ft_ joined #perl6
20:49 * pmichaud looks at answers
20:51 * pmichaud downloads a copy of chromatic's questions to work on answers a bit later
20:53 ive joined #perl6
20:54 PerlJam TimToady: that actually bit me the other day.  I was using $s .= $v; and it kept saying something like "method name requires parens" and I kept thinking "why is it carping about a method name? I just want to concat"
20:54 PerlJam switching out of perl 5 context is hard sometimes
20:54 pmichaud phenny:  tell japhb  I'm going to to likely revert PerlJam's NQP-rx changes for fatarrow, because it diverges too far from the Perl 6 specification.  In particular, the fatarrow rule should only parse identifiers on the lhs, not quoted expressions.  (Quoted expressions would be handled by infix:«=>».)
20:54 phenny pmichaud: I'll pass that on when japhb is around.
20:56 PerlJam doh!  I didn't even think of infix:«=>».
20:56 PerlJam A little fatarrow myopia there.
20:57 pmichaud but more to the point,    unless the spec has changed,    foo('a' => 'b')  doesn't have a named argument.
20:57 jnthn Correct.
20:57 pmichaud and the changes made to fatarrow in nqp would treat that as a named argument.
20:57 jnthn ouch
20:58 jnthn Yes, that'd be rather inconsistent with Perl 6.
20:58 jnthn I guess they're after a way to :flat :named or some such?
20:58 PerlJam and this is exactly why I wanted some non-PerlJam person to look over it :)
20:58 lichtkind pmichaud: i was loughing my ass of when reading in parrot quotes the p6objects stands for patrick :)
20:59 lichtkind pmichaud: would you please have a look at http://www.perlfoundation.​org/perl6/index.cgi?parrot   and tell me what to add? thanks
20:59 justatheory joined #perl6
20:59 pmichaud lichtkind: perhaps others claim that, but I don't.  For me, "p6object" was always meant to be "perl-6 like objects"
20:59 pmichaud and I used "p6" instead of "Perl6" to explicitly designate that this was a lightweight version.
20:59 jnthn p6object has been serving us well. :-)
21:00 pmichaud jnthn: I think they're after a way to have computed named arguments
21:00 jnthn pmichaud: Perhaps best is a cheating form of prefix:<|>, as we used to have in Rakudo.
21:00 pmichaud or to have argument naems that aren't identifiers
21:00 jnthn The non-cheating version is too heavy for NQP.
21:00 PerlJam pmichaud: I think it's hash literals
21:01 pmichaud PerlJam: that's possible, but how/where do term:<fatarrow> get put into a hash?
21:01 pmichaud i.e., what does it construct?
21:01 pmichaud if it's constructing a named argument, that's.... wrongish.
21:02 PerlJam pm: sub hash(*%h) { %h };   my %config = hash( "alpha" => "foo", "beta" => "bar" );
21:02 PerlJam pmichaud: japhb had a pastebin with something like that in it.
21:02 PerlJam er, s/=/:=/
21:02 pmichaud right.  In Perl 6, the call to hash(...)  there has zero named arguments, so %h would be empty.
21:03 pmichaud (and we'd get complaints about too many positionals to hash())
21:03 pmichaud rakudo:  sub hhh(*%h) { %h };  my %config = hhh('abc' => 'def');
21:03 p6eval rakudo d07f64: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤current instr.: 'hhh' pc 233 (EVAL_1:89)␤»
21:03 pmichaud rakudo++ jnthn++
21:04 PerlJam I guess we need to back track even further.
21:04 pmichaud we probably need to find some way to make curlies create hashes
21:04 pmichaud that's a bit trickier in nqp than it is in rakudo.
21:10 wolf2k_ubuntu joined #perl6
21:11 avar joined #perl6
21:13 m6locks umm how do i make a variable name non-interpolating
21:14 PerlJam pmichaud: Here's the pastebin if you have any ideas on how to make it better
21:14 PerlJam http://paste.lisp.org/display/96186
21:14 avar joined #perl6
21:15 PerlJam m6locks: what do you mean?
21:16 PerlJam m6locks: you have a $var in a double quoted string and you don't want it to interpolate?
21:16 m6locks aye
21:17 PerlJam m6locks: "\$bar is $bar" should work
21:17 PerlJam or you could do:   '$bar is ' ~ $bar
21:17 m6locks rakudo: my $bar = 42; say "\$bar is $bar"
21:17 p6eval rakudo d07f64: OUTPUT«\42 is 42␤»
21:18 m6locks hmm imma use the single quotes
21:18 m6locks rakudo: my $bar = 42; say '$bar is ' ~ $bar
21:18 p6eval rakudo d07f64: OUTPUT«$bar is 42␤»
21:19 jnthn grrr...wish people wouldn't add ability to parse stuff with no actions behind it
21:21 lichtkind pmichaud: so you found nothing?
21:23 ive joined #perl6
21:35 CokeGod joined #perl6
21:36 CokeGod question. if I have : my enum Months <<jan feb mar>>, is it possible to create a type that has those elements as fields? (something like $a.jan = 'foo')
21:39 Tene If there is, I'd expect you'd use something like 'handles'
21:39 jnthn Can't think of a really neat way off hand.
21:39 jnthn Of course, you can introspect the enum and use the metamodel to build such a type. :-)
21:40 jnthn .oO( use Enum::Typify; )
21:40 TimToady .oO(STD is almost entirely parsing without actions... :)
21:41 jnthn :-P
21:42 jnthn TimToady: Yes, the issue is more than instead of getting a "oh no, can't parse" error, instead we end up with the AST tree containing a null, followed by a Really Weird Error. Meanwhile, the guy who wrote the patch that made it parse *and* work gets a merge conflict. :-)
21:42 k23z__ joined #perl6
21:47 colomon joined #perl6
21:49 ash_ joined #perl6
21:51 snarkyboojum joined #perl6
21:58 pjcj joined #perl6
22:02 nacho joined #perl6
22:03 ash_ so... are IO::Socket::INET possible workable right now? with some pir work?
22:04 jnthn May well be possible to get that back in place.
22:04 mberends ash_: it should not be very different from alpha
22:05 ash_ cool, i'll see if i can just port alpha's into master
22:05 jnthn mberends: Your patch broke use/need for me, but I think that's because readdir on Win32 had a bug.
22:05 jnthn mberends: (Trailing slash on the directory name upset it.)
22:06 mberends jnthn: sorry about that, it was spectest clean on Linux :-/
22:06 jnthn oh, damm
22:06 kfo_ joined #perl6
22:06 jnthn also stat returns false on Win32 for "is this a directory" with the trailing / :-(
22:07 jnthn Thus why I had it the other way around.
22:07 ash_ is it stat's fault? (is that the proper behavior of stat?)
22:07 jnthn dunno
22:07 jnthn probably a difference between win32 and linux
22:07 pugssvn r30036 | colomon++ | [t/spec] Minor improvements to the series tests.
22:08 mberends jnthn: there is a case for eliminating readdir() from Locator.pm:19 in favour of stat()
22:08 ash_ http://support.microsoft.com/kb/168439
22:09 ash_ on windows, that is the correct behavior i guess
22:09 mberends Rakudo uses only forward slashes; win32 does not mind
22:09 jnthn mberends: Why?
22:09 jnthn mberends: We need to look for all the Foo.n.pm variants.
22:10 thowe joined #perl6
22:10 mberends jnthn: you're right, only readdir does the .n. part :)
22:11 jnthn I didn't think relying on there being always Foo.pm was wise.
22:11 mberends jnthn++
22:14 jnthn mberends: Just patching Parrot's readdir on Win32 to still work if there's a trailing slash. For now, I'll strip it for the stat calls.
22:15 jnthn Not sure what to do, if anything, at a Parrot level about those.
22:16 mberends jnthn: ok, I'll cross check as soon as you commit. It would be nicer if Parrot had a glob() opcode.
22:16 jnthn Aye.
22:16 jnthn Well, method maybe.
22:16 jnthn Don't really need stuff like that as opcodes.
22:16 jnthn There's plenty enough of those already.
22:17 ash_ awww, i just got: Sorry, for now you must manually compile .pm modules to .pir (missing for IO::Socket). so, it won't automattically do that for now?
22:17 Tene ash_: That's right, it's still broken.
22:18 jnthn ash_: I've got an in-progress patch locally for that.
22:18 ash_ oh, okay, well i can deal with making them .pir, just thought that was odd it wouldn't run a .pm file
22:19 mberends it's worth having a little Makefile with perl6 --target and --output options
22:20 jnthn ash_: oh heh. I not only have a patch. I have a *working* patch. :-)
22:21 mberends oooh!
22:21 ash_ omg someone stop him
22:21 aindilis` joined #perl6
22:21 ash_ who makes working patches
22:21 spinclad PerlJam, pmichaud: (in nqp) just a thought, would it be any easier to parse a hash literal  { ... }  if it began with a keyword  HASH{ ... }  ?  so it wouldn't have to parse { ... } and then decide which it is, block or hash.
22:22 ash_ can you have a hash literal { ... } ? I thought ... was used more as a placeholder for functions
22:22 jnthn That won't make a hash.
22:22 jnthn { } will.
22:22 spinclad sorry, my ... was metapunctuation
22:22 jnthn I think spinclad was using ... in the meta term rather than...right.
22:23 ash_ oh
22:23 ash_ oops
22:23 nihiliad joined #perl6
22:24 ash_ jnthn: have you gotten opcode 'setattribute_ic_sc_p' (setattribute<3>) was not found. Check the type and number of the arguments errors in parrot before?
22:24 jnthn Yes. And if you're porting alpha code to master and you're using inline PIR, the answer is that you need to add at the top
22:24 jnthn .local pmc self
22:25 jnthn self = find_lex 'self'
22:25 jnthn To make it work again.
22:25 nacho joined #perl6
22:25 jnthn .oO( If I've guessed this one wrong, I've probably just created epic confusion :-) )
22:25 ash_ nope, thats what it was, thanks
22:26 jnthn :-)
22:26 jnthn 'fraid we're gonna have to have another PARROT_REVISION bump.
22:27 mberends c'est la vie
22:27 jnthn Though it only impacts anyone on Win32.
22:28 stepnem joined #perl6
22:28 dalek rakudo: eac348a | (Solomon Foster)++ | src/core/operators.pm:
22:28 dalek rakudo: CHEAT: Directly implement Whatever versions of the most common &infix:<+> and &infix:<-> operations, so that we have them available even though the full Whatever closure code is not done.
22:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​ac348a12e75694966a6d45d588874346b8ae629
22:28 dalek rakudo: 2cdf434 | (Solomon Foster)++ | t/spectest.data:
22:28 dalek rakudo: Turn on series.t.
22:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​cdf434cc7035c5ea6e7a8d67e768267ca361360
22:28 dalek rakudo: 6e6096d | (Solomon Foster)++ | src/Perl6/Module/Locator.pm:
22:28 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
22:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​e6096d8cf837b41e56396f56797ac5acc05ac11
22:29 arnsholt Do we have any kind of data on what kind of systems people use Rakudo on?
22:29 arnsholt Or which are the most common, for that matter
22:31 PerlJam arnsholt: it's probably a few windows people, a few mac people and a bunch of linux people  (with a slight sprinkle of *bsd and other OSes)
22:32 jnthn For Rakudo *, we really should build an MSI for the Windows folks.
22:32 spinclad a mix of 32 and 64 bit, x86/ppc/dunno
22:32 jnthn I suspect the vast majority of folks will be on x86.
22:32 spinclad arnsholt: (^^)
22:33 jnthn With a smattring of PPC, but that's getting rarer now Apple switched to x86.
22:33 mberends yep, azawawi++ is keen to have a .MSI for Padre too
22:33 jnthn \o/
22:33 arnsholt Good points all
22:34 jnthn R*/Perl 5/Padre bundle?
22:34 jnthn With Blizkost?
22:34 jnthn That'd rock.
22:34 arnsholt Although it was interesting to see how many Macs were on display in Copenhagen =)
22:34 PerlJam jnthn++ x 10
22:34 PerlJam :)
22:34 jnthn Heh, I didn't get Blizkost in shape beyond compiling again yet.
22:35 PerlJam you can already get strawberry and padre bundled, so you just have to add Rakudo and Blizkost
22:35 jnthn If there's anyone out there with Perl 5 guts knowledge and interested in working on Blizkost, by the way, I'm hoping to ramp it up over the next couple of weeks.
22:36 jnthn (My Perl 5 guts foo is teh weak.)
22:36 mberends (how hard can it be?)
22:36 mberends ;)
22:36 jnthn mberends: Thanks! Welcome to the team!
22:36 jnthn ;-)
22:36 mberends jnthn: are you currently spectesting your Parrot version bump?
22:37 jnthn oh f**k
22:37 ash_ Blizkost is your thing that embeds perl5 into perl6 right?
22:37 jnthn no, because it segfaulted during the build.
22:37 * jnthn nukes his Parrot source tree, realcleans Rakudo and tries again.
22:37 chromatic What kind of Perl 5 guts fu do you need?
22:38 jnthn ash_: s/Perl 6/Parrot/
22:38 PerlJam jnthn: looks like you've got another volunteer!  :)
22:38 jnthn chromatic: Fimiliarity with embedding for one. Last time I got some stuff working, but was ending up with the Perl 5 stack pointer getting corrupted somehow.
22:38 ash_ does it embed it as a callable language? or as some sort of NCI to libperl?
22:39 jnthn ash_: It does for example marshalling args from Parrot callsig PMCs to the Perl 5 stack and vice versa, wrapping Perl 5 thingies in PMCs, etc.
22:39 ash_ got ya, cool
22:39 jnthn And an attempt to implement the Parrot compiler library interface so it works like any other Parrot language, from the outside.
22:40 jnthn chromatic: Beyond that, I guess tying/magic knowledge will come in handy.
22:40 chromatic Magic knowledge... that's deep stuff.
22:40 jnthn Since we'd need that - at least iiuc - to be able to have method calls from Perl 5 space back into Parrot to work.
22:40 jnthn Heh, and there I was thining it was just a bunch of pointer callbacks. :-)
22:41 jnthn The round-tripping would be nice, but just being able to call Perl 5 modules at all even in the simple case would be cool.
22:42 jnthn I did vaguely have CGI.pm working-ish from Perl 6 at one point.
22:42 ash_ so, if you get Blizkost working, are you going to try to have "use v5" switch from rakudo to Blizkost?
22:43 jnthn I hadn't considered that...
22:43 jnthn Well
22:43 jnthn Not immediately.
22:43 jnthn I was more after
22:43 jnthn use Foo:from<perl5>;
22:44 ash_ okay, that would be awesome too, use CPAN:from<perl5>;
22:44 ash_ :P
22:44 jnthn Right. :-)
22:44 jnthn If we can get something like that working-ish in Rakudo *, it'll make it a very different offering, imo.
22:45 jnthn Since it opens up a huge body of existing code.
22:46 * mberends must sleep. good night o/
22:46 ash_ if rakudo* had open working kinda like perl 5's open then that would be awesome too
22:46 jnthn night o/
22:46 cognominal joined #perl6
22:47 lichtkind mberends: good night
22:50 ash_ constant doesn't work yet, does it?
22:50 thowe Man.  It's probably old news to most guys here, but reading some of these Apocalypse docs is a difficult-to-describe joy.
22:51 thowe Somebody sent me a funny email today, and I didn't crack a smile (and it was funny).  This thing has me feeling like I am staring at the shark tank at the Shed Aquarium for the first time.
22:52 thowe I feel smarter now.
22:53 jnthn :-)
22:55 thowe I gotta get Rakudo back on my home machine.  I haven't played with it since January...
22:57 doublec Is there an ffi for rakudo? Some means to load shared libraries and call functions in them?
22:58 jnthn doublec: Yes - it's at an early stage, but we've used it to get a working MySQL client written.
22:59 jnthn doublec: See http://github.com/jnthn/zavolaj/
22:59 doublec jnthn, great, thanks!
23:01 jnthn phew, after nuking my Parrot tree and getting a new one, Rakudo builds again. \o/
23:02 ash_ does NCI only work for C libraries? or can i call a C++ library as well?
23:02 jnthn ash_: spectesting patch for using .pm
23:03 jnthn ash_: Not sure - I guess problem is that C++ mangles names?
23:03 ash_ since C++ does name mangling, i can see why it would be harder to support C++
23:03 ash_ yeah, i imagine it would be more difficult
23:03 jnthn But really I know nothing about C++ in detail.
23:03 jnthn (Thus meaning I still have a shred of sanity.)
23:03 jnthn So I'm the wrong person to ask. :-)
23:04 ash_ for C you can look at the header file and know the name of the library call you need to make, C++ on the other hand, is compiler dependent for its mangling
23:04 jnthn Ugh.
23:04 jnthn That sounds...tricky.
23:05 ash_ i know someone made one for proto at one point
23:05 arnsholt jnthn: There's a reason all the NCI interfaces are in C =)
23:06 doublec It's why so few C++ libraries have wrappers in other languages
23:06 ash_ but i think it only worked on unix machines (it was making system calls to unix calls to check the library symbol tables and do some testing for what compiler you used)
23:06 ash_ s/unix calls/unix commands/
23:06 arnsholt doublec: To make it work they probably wrapped the C++ in extern "C" {}
23:06 doublec You can use swig to get a C wrapper
23:07 doublec In Factor a contributor wrote a library that allowed calling C++ by generating a C wrapper that called the C++, compiled it to a shared library, loaded that and called it.
23:07 rv2733 joined #perl6
23:08 ash_ I am working on a project that uses OpenCV (Open Computer Vision) it does image analysis, but parts of it are in C++, there are C calls for most of the C++ stuff, but all the machine learning libraries are in C++, if NCI worked with C++ i'd probably try to do all of my coding in perl6/parrot
23:08 jnthn The lack of a standard way to mangle would seem to make it a very tough cookie.
23:09 ash_ http://github.com/quietfanatic/link-c does that i think
23:09 ash_ i have no idea if that works anymore though
23:09 arnsholt jnthn: IIRC the standards actually encourage different name-mangling strategies
23:09 quietfanatic joined #perl6
23:10 jnthn arnsholt: ouch.
23:10 quietfanatic ash_: The main thing it lacks is support for struct objects.
23:10 quietfanatic which, I presume, also precludes support for C++ objects.
23:11 ash_ probably
23:12 quietfanatic I even had somewhere a working struct model in Perl 6, but my C parser is not robust enough to figure them out.
23:12 japhb PerlJam, pmichaud, jnthn, spinclad: Yes, my use case for quoted string on LHS of => is building hashes in NQP-rx with non-ident keys, since there is no anonymous hash syntax in NQP-rx and I'm forced to hack it with 'sub hash(*%h) { %h }'.  Honestly, I don't care what the hack is, as long as it only puts a small amount of extra text at the beginning of the hash construction phrase, and the individual key/value pairs are easy to read.  So HAS
23:12 phenny japhb: 20:54Z <pmichaud> tell japhb  I'm going to to likely revert PerlJam's NQP-rx changes for fatarrow, because it diverges too far from the Perl 6 specification.  In particular, the fatarrow rule should only parse identifiers on the lhs, not quoted expressions.  (Quoted expressions would be handled by infix:«=>».)
23:12 japhb H{ k=> v, ... }, hash(k => v, ...), %{ k, v, k, v, ...}, whatever.  Just want something working before I'm back slammed by work and life (only have so much hacking days at a stretch!)
23:13 ShaneC joined #perl6
23:13 cognominal joined #perl6
23:14 masak joined #perl6
23:14 masak oh hai, #perl6
23:14 jnthn lolitsmasak
23:14 masak Damian's Regexp::Grammar really is very cool.
23:14 masak I've been using the debugging feature today.
23:14 masak it was even cooler than I had realized.
23:14 jnthn Nice :-)
23:15 jnthn Would be awesome get that into nqp-rx (and thus Rakudo) some day. :-)
23:15 masak or GGE :)
23:15 ash_ quietfanatic: did you try nm + c++filt?
23:17 jnthn masak: Or both.
23:17 masak well, yes, it was an inclusive 'or' :)
23:17 jnthn :-)
23:18 jnthn Commit fest!
23:18 * jnthn pushes
23:18 quietfanatic ash_: No.  I wanted to have complete C support before working on C++
23:18 * masak tries to be inclusive, despite worrying tendencies to reinvent the wheel lately
23:18 ash_ quietfanatic: if you do that, it should display a section of typeinfo with unmangled names, like: S typeinfo for cv::RowSum<double, double>
23:19 ash_ quietfanatic: thats cool, it might be worth looking into, most unix platforms should ship with nm, so it should work on other platforms that aren't ELF formatted
23:19 quietfanatic ash_: Does it get type info for C programs as well?
23:20 ash_ yeah
23:20 quietfanatic nm, huh?
23:20 quietfanatic I haven't heard of it before
23:20 quietfanatic I was using readelf
23:20 dalek rakudo: 73cc9f2 | jonathan++ | src/Perl6/ (2 files):
23:20 dalek rakudo: Implement need and import, and make use just boil down to calls to the two of them.
23:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​3cc9f251cd82b7f19893d3a1970763d9ea6f2d0
23:20 dalek rakudo: 5faf418 | jonathan++ | build/PARROT_REVISION:
23:20 dalek rakudo: Bump PARROT_REVISION to get Win32 readdir fix.
23:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​faf41895617f94d61485e0ca22b69faf5e6d737
23:20 dalek rakudo: dab10dd | jonathan++ | src/Perl6/Module/Locator.pm:
23:20 dalek rakudo: Fix for Win32 - stat with a trailing / on Win32 doesn't work out so well.
23:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​ab10dd9362aa08b1de90d0a480b0f5235d40735
23:20 dalek rakudo: 69ce6d7 | jonathan++ | src/Perl6/Module/Loader.pm:
23:20 dalek rakudo: If there's no PIR pre-compiled file to hand, use the .pm instead. Still need to do checks for which is newer, and generating the PIR file if we can haz write access. Also, awesomize module not found error to show any version and authority if they are passed.
23:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​9ce6d76a0a83bab2ed215a558785461ab815c81
23:20 jnthn To clarify, "use Foo;" now works even if you haven't pre-compiled to PIR.
23:21 m6locks OMG
23:21 * masak notices chromatic++'s questions in the backlog.
23:21 m6locks need to download immediately
23:21 quietfanatic_ joined #perl6
23:21 ash_ quietfanatic: at one point when i saw your project, i started seeing if i could make it use nm instead so it would work on my machine (i am on os x), i never really got it fully functional, but i think it should be possible to do what you did with nm instead of readelf
23:21 masak jnthn++
23:21 jnthn We also for the first time have support for need and import as stand-alone keywords.
23:21 jnthn use is - very literally - made up of the two of them.
23:22 quietfanatic ash_: Cool.  If you make it work before I do, feel free to fork or something
23:22 ash_ yeah, sure, i might look into it, it would be nice to do my work not in C :p
23:23 dual joined #perl6
23:24 colomon joined #perl6
23:26 masak thowe: for what it's worth, I know *exactly* what you mean with the Apocalypses. I re-read most of them a while ago.
23:27 ash_ i like the Exegesi? (how do you pluralize that word?)
23:28 chromatic Exegeses
23:29 chromatic ... but I have the advantage of knowing a bit of Greek.
23:30 masak hm. I mostly came online to push a tardis commit, and to see if snarkyboojum was available.
23:30 masak Exigeses.
23:30 masak right. what chromatic said.
23:30 masak I really should learn that.
23:31 snarkyboojum masak: hello!
23:33 masak snarkyboojum: oh hai there! :)
23:33 masak snarkyboojum: I'm almost unable not to think about Tardis right now. :)
23:33 masak snarkyboojum: I just pushed a little p5 prototype of an extremely simple Perl 6 compiler. it doesn't compile yet, but it can separate correct programs from incorrect ones.
23:33 arnsholt ash_: -i is a valid plural for latinate words though =)
23:34 masak I'll have to sleep on how to properly serialize the AST into SIC.
23:34 ash_ i don't claim to speak english well, but sadly its the only (non-programming) language i speak
23:34 snarkyboojum masak: heh excellent :) what's SIC?
23:34 CokeGod left #perl6
23:34 masak snarkyboojum: it's in docs/plans. basically, it's a simple assembly-like instruction code, a lot like PIR.
23:35 snarkyboojum masak: oic - reads docs/plans
23:35 masak snarkyboojum: I'm increasingly deciding that executing directly off the AST is less than enjoyable.
23:36 japhb tardis?
23:36 snarkyboojum masak: too difficult?
23:36 japhb Damn, no factbot
23:36 masak japhb: indeed.
23:36 Tene masak: you might look at POST in PCT
23:37 japhb masak, url?
23:37 masak japhb: http://github.com/masak/tardis
23:37 masak Tene: thanks. I will.
23:37 masak snarkyboojum: yes, essentially.
23:37 masak japhb: besides the one I gave you? :)
23:37 japhb masak, lagswap I suspect.  :-)
23:37 lichtkind masak: hej
23:38 masak japhb: probably. I'm on a neighbour's crappy connection.
23:38 masak lichtkind: moin.
23:38 lichtkind masak: actually im going to  sleep soon :)
23:38 japhb masak, and thanks.  :-)
23:38 Tene masak: Want me to email you my home connection to use?  I'm at work, so not using it right now.
23:39 masak lichtkind: me too.
23:39 masak Tene: I don't understand... are you aiming for being understood by saying that?
23:39 Tene masak: No, I'm not.
23:39 jnthn lol
23:39 masak phew. :)
23:40 snarkyboojum masak: translating from AST to SIC seems complex too.. ? (naivety on display) or is the translation not needed
23:42 lichtkind masak: i would really like to be there because i fell in love with denmark, but $work you know
23:42 * masak has a cold and might not be at 100% performance
23:42 masak asking about whether people are serious sure helps. :P
23:42 masak snarkyboojum: it is needed. that's the step I'm hesitating on right now.
23:42 masak snarkyboojum: basically though, that step will absorb some of the complexity, letting later steps focus on runtime stuff.
23:42 masak snarkyboojum: anyway, I'd love to get together on IRC for a longer hacking session some day.
23:42 masak lichtkind: it'd've been nice to meet you again.
23:43 snarkyboojum masak: agreed - let's set up a time :)
23:43 masak snarkyboojum: ok. basics first. it's nearing on 00:00 UTC. right now is ~23:45 UTC, I think.
23:43 ash_ left #perl6
23:44 thowe masak, Cool.  I was starting to feel like I was getting funny looks =P
23:44 masak snarkyboojum: I'm available here-evenings, so between 17:00 and 00:00 UTC at least.
23:44 * jnthn awesomizes another error
23:44 masak snarkyboojum: Friday and Saturday here-evenings work for me. how about you.
23:45 snarkyboojum masak: where are you in the world again?
23:45 masak thowe: lately I feel like a Perl 6 historian, because I want to read and write about how Perl 6 used to be, in the early days.
23:45 masak snarkyboojum: opposite form you. :) Sweden.
23:45 masak s/form/from/
23:46 snarkyboojum masak: late evening your time works for me
23:47 masak look, a new one! http://swtch.com/~rsc/regexp/regexp3.html
23:47 masak snarkyboojum: ok, how about Friday?
23:48 masak that's, hm, tomorrow.
23:48 lichtkind masak: yes but it would be a bit heavy to travel, now that i have more to do and + a course I attend starts, i learned not to do more that 2 or 3 things at once :)
23:48 jnthn masak: Technically, it's today.
23:48 snarkyboojum masak: friday your time (later today) is fine.. prob early sat for me
23:48 masak jnthn: :P
23:48 masak snarkyboojum: excellent.
23:49 masak I'll go to sleep now. need to work on disarming my cold.
23:49 masak o/
23:49 jnthn o/
23:50 lichtkind o/

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

Perl 6 | Reference Documentation | Rakudo