Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-10-20

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 jnthn carlin: Just build 32-bit...or wait a few days...
00:01 jnthn Or debug and patch it. ;-)
00:02 carlin Heh, I think I'll wait :-)
00:03 quietfanatic joined #perl6
00:11 FullMetalHarlot joined #perl6
00:24 dalek joined #perl6
00:52 sjohnson rakudo:  $x = 1/3; print ($x == 1/3);
00:52 p6eval rakudo fca32d: OUTPUT«Symbol '$x' not predeclared in <anonymous> (/tmp/skrsGDRzVA:2)␤in Main (file <unknown>, line <unknown>)␤»
00:52 sjohnson rakudo:  my $x = 1/3; print ($x == 1/3);
00:53 p6eval rakudo fca32d: OUTPUT«1»
00:58 sjohnson rakudo:  my $a; for (1..10) { $a += 0.1; } if ($a == 1) { print "good"; } else { print "bad"; }
00:58 p6eval rakudo fca32d: OUTPUT«bad»
01:01 sjohnson rakudo: my $a = 0.0; for (1..10) { $a += 0.1; } if ($a == 1) { print "good"; } else { print "bad"; }
01:01 p6eval rakudo fca32d: OUTPUT«bad»
01:01 jnthn my $a = 0.0; for (1..10) { $a += 0.1; }; say $a;
01:01 jnthn rakudo: my $a = 0.0; for (1..10) { $a += 0.1; }; say $a;
01:01 p6eval rakudo fca32d: OUTPUT«1␤»
01:01 jnthn lol
01:01 jnthn rakudo: my $a = 0.0; for (1..10) { $a += 0.1; }; say $a == 1.0
01:01 p6eval rakudo fca32d: OUTPUT«0␤»
01:01 jnthn rakudo: my $a = 0.0; for (1..10) { $a += 0.1; }; say $a - 1.0
01:01 p6eval rakudo fca32d: OUTPUT«-1.11022302462516e-16␤»
01:02 jnthn :)
01:02 jnthn Never do exact comparrisons on floating point. It's always wrong. :-)
01:02 sjohnson i just wanted to see if perl6 had some sort of handling for this kinda stuff
01:02 jnthn It provides Rats instead, so you can choose the right tool for the job.
01:02 * sjohnson tattoo's jnthn's advice on his arm
01:03 jnthn my $a = 0.0; for (1..10) { $a += 1/10; }; say $a == 1
01:03 jnthn rakudo: my $a = 0.0; for (1..10) { $a += 1/10; }; say $a == 1
01:03 p6eval rakudo fca32d: OUTPUT«0␤»
01:03 jnthn oh wait
01:03 jnthn rakudo: my $a = 0; for (1..10) { $a += 1/10; }; say $a == 1
01:03 p6eval rakudo fca32d: OUTPUT«1␤»
01:03 quietfanatic Seems unreliable
01:03 jnthn there we are (first time I init'd $a to a Num)
01:04 jnthn quietfanatic: my $a = 0; vs my $a = 0.0
01:04 quietfanatic Yeah
01:04 jnthn Those are rather different.
01:04 quietfanatic I mean you don't know if somebody's code will pass a Num instead of an Int
01:04 jnthn Sure, though if you care you stick a type constraint in. :-)
01:05 jnthn Or coerce it.
01:05 quietfanatic right...
01:05 jnthn That's nothing more than the usual "always validate your input" though. :-)
01:05 jnthn well, unless you know you can trust it.
01:05 quietfanatic rakudo: my $a = 0.0; for (1..10) { $a += 0.1; }; say $a.Rat.perl
01:05 p6eval rakudo fca32d: OUTPUT«1/1␤»
01:05 quietfanatic huh
01:05 jnthn .oO( how magical )
01:07 quietfanatic rakudo: say 0.5.Rat.perl
01:07 p6eval rakudo fca32d: OUTPUT«1/2␤»
01:07 quietfanatic rakudo: say 0.333333333333333333.Rat.perl
01:07 p6eval rakudo fca32d: OUTPUT«1/3␤»
01:07 quietfanatic I guess it approximates a little
01:08 sjohnson rakudo: my $a = 0; for (1..1000) { $a += 1/10; }; say $a == 100
01:08 cognominal do Rakudo or parrot support non string hash keys?
01:08 p6eval rakudo fca32d: TIMED_OUT
01:08 cognominal I would have a good use of that :)
01:08 sjohnson uh oh
01:08 sjohnson i broke the compiler
01:08 quietfanatic Not yet I think, though any object can be uniquely stringified with .WHICH
01:08 sjohnson pugs: my $a = 0; for (1..1000) { $a += 1/10; }; say $a == 100
01:08 p6eval pugs: OUTPUT«1␤»
01:09 jnthn cognominal: not yet, afaik.
01:09 sjohnson pugs: say 1/10 == 0.1;
01:09 p6eval pugs: OUTPUT«1␤»
01:09 jnthn Ooh, after 3am. Sleep!
01:09 jnthn o/
01:09 cognominal $a{ [0,1] }  # that whould hash on the address?
01:09 sjohnson pugs: say (1/10).WHAT
01:09 p6eval pugs: OUTPUT«Rat␤»
01:09 cognominal or on the content?
01:09 sjohnson night jnthn !
01:10 cognominal jnthn++
01:10 quietfanatic rakudo: %a = ([0, 1] => 'thing'); .say for %a.keys
01:10 p6eval rakudo fca32d: OUTPUT«Symbol '%a' not predeclared in <anonymous> (/tmp/uhP74ubiiM:2)␤in Main (file <unknown>, line <unknown>)␤»
01:10 quietfanatic rakudo: my %a = ([0, 1] => 'thing'); .say for %a.keys
01:10 lumi joined #perl6
01:10 p6eval rakudo fca32d: OUTPUT«0 1␤»
01:10 quietfanatic err
01:10 quietfanatic yeah
01:10 quietfanatic rakudo: my %a = ([0, 1].WHICH => 'thing'); .say for %a.keys
01:10 p6eval rakudo fca32d: OUTPUT«47452219244680␤»
01:11 colomon quietfanatic: Num.Rat has an optional parameter that allows you to specify how close the approximation is.
01:11 quietfanatic Oh cool
01:11 cognominal rakudo: %a = ([0, 1] => 'thing'); say  $_.perl  for %a.keys
01:11 p6eval rakudo fca32d: OUTPUT«Symbol '%a' not predeclared in <anonymous> (/tmp/vPxf3O8Dyt:2)␤in Main (file <unknown>, line <unknown>)␤»
01:11 cognominal oops
01:11 cognominal rakudo:  my %a = ([0, 1] => 'thing'); say  $_.perl  for %a.keys
01:11 p6eval rakudo fca32d: OUTPUT«"0 1"␤»
01:12 cognominal rakudo:  my %a = ([0, 1] => 'thing'); say  $_.WHAT  for %a.keys
01:12 p6eval rakudo fca32d: OUTPUT«Str()␤»
01:12 cognominal that may be good enough for what I want.
01:12 quietfanatic cognominal: The problem is that coincides with "0 1"
01:13 quietfanatic quietfanatic: duh...
01:13 sjohnson rakudo: my $a = Rat(0); say $a.WHAT;
01:13 arnsholt It should be possible to add type constraints on the hash keys, no?
01:13 p6eval rakudo fca32d: OUTPUT«invoke() not implemented in class 'Rat'␤in Main (file src/gen_setting.pm, line 288)␤»
01:13 sjohnson rakudo: my $a = Rat(); say $a.WHAT;
01:13 p6eval rakudo fca32d: OUTPUT«invoke() not implemented in class 'Rat'␤in Main (file src/gen_setting.pm, line 288)␤»
01:13 arnsholt So that you can't insert something with the key "0 1"
01:13 sjohnson rakudo: my $a = new Rat(); say $a.WHAT;
01:13 p6eval rakudo fca32d: OUTPUT«invoke() not implemented in class 'Rat'␤in Main (file src/gen_setting.pm, line 288)␤»
01:14 quietfanatic arnsholt: In the spec yeah, but I don't think it's implemented in Rakudo
01:14 quietfanatic rakudo: my %a{Array};
01:14 p6eval rakudo fca32d: OUTPUT«Confused at line 2, near "{Array};"␤in Main (file <unknown>, line <unknown>)␤»
01:14 agentzh joined #perl6
01:15 quietfanatic That's how you would do it if you could
01:17 arnsholt Ah, right
01:17 athomason joined #perl6
01:21 dalek joined #perl6
01:22 carlin Aww, we have ord() and chr() but no hex()?
01:24 pmichaud rakudo:  say :16<ffff>
01:24 p6eval rakudo fca32d: OUTPUT«65535␤»
01:25 pmichaud rakudo:  say +":16<ffff>"
01:25 p6eval rakudo fca32d: OUTPUT«65535␤»
01:36 orafu joined #perl6
01:39 dalek rakudo: 9d76f3b | (Solomon Foster)++ | src/setting/Any-num.pm:
01:39 dalek rakudo: Add proto declarations for all the trig functions, allowing you to call them using named arguments.
01:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9d76f3bc34ce7b5014db80fd2bf8c5fda5912f45
01:41 pugs_svn r28848 | colomon++ | [t/spec] Unskip all the named argument tests (except for atan2, which still doesn't work).
01:41 colomon Should have said, jnthn++
01:42 carlin ah
01:42 carlin pmichaud: Thanks
01:43 japhb Does Rakudo have heredocs yet?
01:43 pmichaud no.
01:44 japhb Where do I look to see what forms of quoting are supported?
02:07 JimmyZ joined #perl6
02:15 quietfanatic joined #perl6
02:22 carlin rakudo: my $s = IO::Socket::INET.new; $s.open('theintersect.org', 80); $s.send("GET /j\nHost: theintersect.org\n\n"); my $r=$s.recv(); $r.=subst(/(.*\n\n)/, ''); print $r.subst(/\%(\w\w)/, { chr ":16<$0>" }, :g);
02:22 p6eval rakudo 9d76f3: OUTPUT«I have too much time on my hands :-)␤»
02:22 carlin \o/
02:25 TimToady rakudo: my $s = IO::Socket::INET.new; $s.open('theintersect.org', 80); $s.send("GET /j\nHost: theintersect.org\n\n"); my  $r=$s.recv(); $r.=subst(/(.*\n\n)/, ''); print $r.subst(/\%(\w\w)/, { chr :16($0) }, :g);
02:25 p6eval rakudo 9d76f3: OUTPUT«I have too much time on my hands :-)␤»
02:27 TimToady rakudo: my $s = IO::Socket::INET.new; $s.open('theintersect.org', 80); $s.send("GET /j\nHost: theintersect.org\n\n"); my  $r=$s.recv(); $r.=subst(/(.*\n\n)/, ''); print $r.subst(/\%(\w\w)/, { chr '0x' ~ $0 }, :g);
02:27 p6eval rakudo 9d76f3: OUTPUT«I have too much time on my hands :-)␤»
02:33 carlin rakudo: say 0x49; say :16<49>;
02:33 p6eval rakudo 9d76f3: OUTPUT«73␤73␤»
02:33 carlin Ohh :-)
02:34 TimToady rakudo: my $c = '49'; say :16($c);
02:34 p6eval rakudo 9d76f3: OUTPUT«73␤»
02:34 quietfanatic rakudo: my $c = 49; say chr '0x' ~ $c
02:34 p6eval rakudo 9d76f3: OUTPUT«I␤»
02:35 quietfanatic I see
02:35 quietfanatic So numification of strings sees radix notation.  That's convenient.
02:49 nbrown Hi perl6 people, is anyone having issues with running the tests?
02:49 nbrown I updated my rakudo and now I get this error
02:50 nbrown "The procedure entry point Parrot_capture_les could not be located in the dynamic link library libparrot.dll"
02:53 nbrown This seems to only happen with the uninstalled rakudo, if I run a single test with the installed perl6, the test works
02:53 nbrown Does this make sense?
03:02 quietfanatic Perhaps your uninstalled rakudo is trying to use libraries from the installed rakudo?
03:02 JimmyZ yes, I got this error too.
03:02 nbrown I think so, but I can't figure out why
03:03 JimmyZ just perl configure --gen-parrot && make && make spectest.
03:03 carlin rakudo had a big branch merge earlier today
03:03 nbrown I did a clean install and still can't figure out how to make it work
03:03 carlin might have something to do with it
03:03 nbrown I saw that so I figured I'd ask before I spend too long banging my head against it
03:03 nbrown JimmyZ: That fixed it for you?
03:04 JimmyZ no, I just do that and then got the same error.
03:04 JimmyZ s/do/did/
03:05 nbrown Gotcha, but it seems to work if I run the installed perl6
03:05 nbrown hmmm, time to dig into the test harness
03:09 JimmyZ == SORRY! ==
03:09 JimmyZ Unable to find Perl 6 dynops and dynpmcs library.
03:09 JimmyZ If you want to run Rakudo outside of the build directory, please make install.
03:10 eternaleye joined #perl6
03:10 nbrown JimmyZ: thanks for trying.  I can run it outside, but I can't run the spectest because that's in the build directory
03:11 nbrown JimmyZ: it's not a blocker for what I'm playing with, but I wanted to see how the new merge worked
03:11 JimmyZ nbrown: I run 'perl6.exe'. It's failed.
03:11 nbrown JimmyZ: I haven't found a test it's failed yet
03:11 nbrown I'm sorry, I meant that for the installed perl6, the one in the build directory still fails
03:37 ShaneC joined #perl6
03:41 jaldhar joined #perl6
03:51 envi^office joined #perl6
03:56 synth joined #perl6
04:04 pnate joined #perl6
04:09 ihrd joined #perl6
04:09 ihrd left #perl6
04:19 dj_goku If I have failures during 'make spectest' is there a process I should go to submit these somewhere?
04:39 pnate joined #perl6
04:48 JimmyZ dj_goku: see http://rakudo.org/community
04:58 jaldhar joined #perl6
05:05 zloyrusskiy joined #perl6
05:11 [particle] joined #perl6
05:40 rfordinal joined #perl6
05:47 pnate2 joined #perl6
05:53 headrx joined #perl6
06:15 mathw jnthn++
06:15 mathw New signature binder didn't break Form.pm :)
06:17 Su-Shee joined #perl6
06:17 Su-Shee good morning. :)
06:20 carlin rakudo: my $s = IO::Socket::INET.new; $s.open('irc.freenode.net', 6667); $s.send("USER quux \"localhost\" \"quux\" :quux\nNICK quux\nJOIN #perl6\nPRIVMSG #perl6 :OH HAI Su-Shee\nQUIT :Bye\n"); $s.recv();
06:20 p6eval rakudo 9d76f3:  ( no output )
06:20 quux joined #perl6
06:20 quux OH HAI Su-Shee
06:20 carlin :-)
06:21 Su-Shee Niiiice :)
06:22 hanekomu joined #perl6
06:22 carlin If I could figure out how to make recv() return something before the server disconnects life would be good ;-)
06:24 Su-Shee how about this super simple client-server example in the old perl cookbook? essentially it's just tcp-based echo, but a good example.
06:26 JimmyZ rakudo: my $s = IO::Socket::INET.new; $s.open('irc.freenode.net', 6667); $s.send("USER quux \"localhost\" \"quux\" :quux\nNICK quux\nJOIN #perl6\nPRIVMSG #perl6 :OH HAI 董杰\nQUIT :Bye\n"); $s.recv();
06:26 quux joined #perl6
06:26 quux OH HAI 董杰
06:26 p6eval rakudo 9d76f3:  ( no output )
06:26 Su-Shee looks perfect. :)
06:27 JimmyZ It's not perfect on windows.
06:38 moritz_ good morning
06:40 sjohnson y0
06:42 carlin rakudo: my $s = IO::Socket::INET.new; $s.open('irc.freenode.net', 6667); $s.send("USER quux \"localhost\" \"quux\" :quux\nNICK quux\nJOIN #perl6\nPRIVMSG #perl6 :OH HAI sjohnson\nQUIT :Bye\n"); $s.recv();
06:42 quux joined #perl6
06:42 quux OH HAI sjohnson
06:42 p6eval rakudo 9d76f3:  ( no output )
06:43 sjohnson thanks carlin
06:43 sjohnson that was very nice of you :)
06:43 sjohnson .. not to mention quite good coding skillz
06:43 carlin I'm too lazy to greet people, I make rakudo do it for me :-)
06:45 * sjohnson is impressed
06:48 * moritz_ is scared by the implications for spamming this has
06:49 sjohnson spamming on one hand, impressive coding for rakudo on the other
06:50 sjohnson besides, the spammers will be forced to learn as they spam, and hopefully do good in the end
06:50 NorwayGeek joined #perl6
06:52 hcchien joined #perl6
06:58 hcchien joined #perl6
07:03 masak joined #perl6
07:03 masak oh hai
07:04 moritz_ \o/
07:04 sjohnson hi masak
07:04 masak hi there
07:05 moritz_ we have a new signature binder, and outer lexicals in classes.
07:05 dalek nqp-rx: 49572a7 | pmichaud++ | src/ (4 files):
07:05 dalek nqp-rx: Allow multiple alias subrule bindings (e.g.,  <abc=def=subrule>).
07:05 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/49572a7d729fa1e764adc95a7ef5d361dcf6fdb8
07:06 masak oh? the merge happened while I was asleep? :) cool!
07:06 pnate joined #perl6
07:07 moritz_ rakudo: say 'alive'
07:07 p6eval rakudo 9d76f3: OUTPUT«alive␤»
07:07 moritz_ rakudo: my $x = 5; class A { method b { say $x } }; A.new.b.
07:07 p6eval rakudo 9d76f3: OUTPUT«Confused at line 2, near "."␤in Main (file <unknown>, line <unknown>)␤»
07:08 masak rakudo: my $x = 5; class A { method b { say $x } }; A.new.b
07:08 p6eval rakudo 9d76f3: OUTPUT«5␤»
07:08 masak \o/
07:10 hcchien joined #perl6
07:12 masak ooh, I see nested signatures are not far off on the grant agenda.
07:12 masak and multiple return values! \o/
07:16 Juerd http://www.aaronbassett.com/2009/i-can-haz-lolsql/
07:16 Juerd How long before there's a perl6 parser for this? :)
07:17 dalek nqp-rx: b0d3c56 | pmichaud++ | src/ (3 files):
07:17 dalek nqp-rx: Make use of <OPER=...> bindings to promote <prec> and <sym> to
07:17 dalek nqp-rx: operator precedence parser.
07:17 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/b0d3c56013d76bc037968c214b2662e7b520316b
07:17 masak I'M IN UR `table` SELECTIN UR `column` AZ `label` I CAN HAZ `column` LIEK `value` GIMMEH 5
07:17 masak brilliant.
07:17 masak I see this becoming the new industry standard.
07:18 masak MAKES ORDER `column` GOAS DOWN KTHNXBYE
07:18 * moritz_ LIKES IT
07:18 Juerd I MADE U THIS `table` BUT I EATED IT.  # if only I had any idea what it could do :)
07:19 moritz_ drop it?
07:19 masak OH NOES I HAZ LOST `table`
07:19 masak apparently.
07:20 moritz_ rakudo: say ?(undef ~~ / 'RT #67234'/)
07:20 p6eval rakudo 9d76f3: OUTPUT«0␤»
07:22 moritz_ autounfudge is being productive
07:23 rfordinal joined #perl6
07:24 JimmyZ 'perl configure --gen-parrot && make && make spectest' failed now. :(
07:24 lumi joined #perl6
07:25 mathw masak: There was merging, and I woke up and fed Form.pm through it, and it passes and I think the tests run faster, although I have no timings from the old version to compare
07:25 mathw masak: But jnthn++'s figures say method calls are faster
07:25 masak nod.
07:25 mathw I should have done a pre-merge run
07:25 mathw but I was impatient
07:25 moritz_ JimmyZ: at what step does it fail?
07:25 mathw must have the shiny
07:26 masak I half-promised to compare the pre-merge Rakudo against the current one. it's still possible, thanks to our revision control systems.
07:26 mathw This is true
07:26 mathw I could roll it back to before the merge and get a comparison figure
07:26 eiro joined #perl6
07:26 JimmyZ moritz_: just run 'perl6.exe'
07:27 JimmyZ moritz_: got this error: The procedure entry point Parrot_capture_les could not be located in the dynamic link library libparrot.dll"
07:27 mathw masak: We should write a lolsql->sql translator in Perl 6, and win the internet
07:28 masak mathw: you're right. any thoughts on when?
07:28 mathw Well I'd say now
07:28 mathw but all I can do here is make a github project
07:28 moritz_ JimmyZ: try removing the parrot_install directory, and try the whole process again
07:28 masak mathw: let's wait until there's tuits, I say.
07:28 mathw work--
07:29 mathw masak: yes
07:30 mathw Right now my dream job is 'do cool things with perl 6'
07:30 hanekomu_ joined #perl6
07:30 * mathw sighs
07:31 JimmyZ oh, make realclean left perl6_group.o and other files.
07:31 moritz_ JimmyZ: then run 'git clean -dfx' # warning, will delete everything in that dir not under version control
07:33 masak mathw: I have that job, almost half-time. the pay is not good, but it's boat-loads of fun. :)
07:33 mathw yeah that's the problem
07:33 mathw I kind of need a full time salary :(
07:35 masak hah. the merge broke the november smoke.
07:35 mathw aaw
07:35 masak I think I need to make it remove all the .pir files every time.
07:36 masak or simply run 'make clean'.
07:37 JimmyZ moritz_: still the same error.
07:38 jferrero joined #perl6
07:38 pnu joined #perl6
07:39 JimmyZ moritz_: wait, not the same error, but can't find libparrot.dll
07:40 moritz_ I'm not well-versed on windows, so I'm afraid I can't help much more
07:45 TiMBuS joined #perl6
07:46 * carlin wants to be able to do $socket.recv(512)
07:46 masak patches welcome.
07:47 carlin Heh
07:47 carlin I had a look a while back but it was beyond me
07:48 carlin because Parrot's recv() doesn't take a parameter either
07:48 masak hm. yes, I imagine that complicates things.
07:49 mariuz joined #perl6
07:51 TiMBuS just make perls socket object keep a buffer. its how i added getline
08:00 mberends hello m<tab>, et al #perl6
08:01 masak mberends! \o/
08:02 carlin rakudo: my $s = IO::Socket::INET.new; $s.open('irc.freenode.net', 6667); $s.send("USER quux \"localhost\" \"quux\" :quux\nNICK quux\nJOIN #perl6\nPRIVMSG #perl6 :OH HAI mberends\nQUIT :Bye\n"); $s.recv();
08:02 quux joined #perl6
08:02 quux OH HAI mberends
08:02 p6eval rakudo 9d76f3:  ( no output )
08:02 mberends jnthn's resig2 is awesome, flying thru teh spectests very quickly
08:04 mberends carlin++ # saw it on the backlogs. crafty!
08:05 sjohnson .. and i thought it was just for me :]
08:05 mberends :]
08:06 carlin It's write-only at the moment, if I can get recv working I could take a stab at writing some sort of IRC bot
08:06 mberends carlin: the recv() hung on other protocols earlier as well, for example SMTP
08:06 masak I also have a feeling the spectests are going faster.
08:08 mberends jnthn++ beer++ # (because jnthn++ is a beer-2-code converter)
08:08 mathw so all we need to do is buy him beer?
08:09 moritz_ and meet him at conferences
08:10 mathw I need to go to one of these conferences
08:10 mathw I shall make it a task for 2010
08:10 mberends yes we want to meet you!
08:10 moritz_ where's YAPC::EU 2010?
08:10 mathw YAPC::EU or something
08:10 mberends Pisa
08:11 moritz_ ooh, right
08:11 mathw Oooh
08:11 moritz_ it will be easy to persuade my girlfriend for that one
08:11 mathw That's achieveable
08:11 masak moritz_: our AFK encounter is long overdue.
08:11 moritz_ masak: indeed
08:12 mathw Yes I want to meet you as well, and talk Perl
08:12 mathw It would be a great pleasure
08:12 moritz_ same with just about everyone here (I only met jnthn in real life, at GPW 2008)
08:12 mathw It's quite a long time until YAPC::EU though isn't it
08:12 masak I should give a fair warning: my beard is smaller than jnthn's.
08:13 mathw I have no beard at all!
08:13 Su-Shee no, it isn't. essentially, it's christmas and after that it gets easter fast and then it's summer and the YAPC.
08:13 Su-Shee so, in principle it's like next week. ;)
08:13 masak Su-Shee: easter fast? don't you mean lent fast? :P
08:14 mathw har har
08:14 Su-Shee (I should better never release a date handling module.. ;)
08:16 pugs_svn r28849 | moritz++ | [t/spec] epic #?skip unfudging, jnthn++
08:18 mathw oooh
08:18 mathw more tests pass?
08:19 NorwayGeek_ joined #perl6
08:19 moritz_ you could say so.
08:20 masak not only #?todo unfidging, but #?skip unfudging!
08:20 masak how come?
08:20 moritz_ rakudo: module A { sub foo() { return 42 }; say foo }
08:20 p6eval rakudo 9d76f3: OUTPUT«42␤»
08:20 moritz_ masak: autounfudge
08:20 masak no, I mean...
08:21 masak what is it that Rakudo can do now that it couldn't pre-merge?
08:21 moritz_ lots of things
08:21 moritz_ outer lexicals in classes
08:21 masak oh, right.
08:21 moritz_ binding to two anonymous scalars in a signature
08:21 moritz_ my latest p6eval input
08:22 masak we couldn't do that before? o.O
08:22 moritz_ masak: that was the just-closed RT #64876
08:24 mberends faw teh winz: http://use.perl.org/~JonathanWorthington/journal/39772
08:25 * moritz_ just closed 7 tickets that autounfudge brought up
08:27 * mathw makes jnthn's awaylog light up again by saying how marvellous jnthn is
08:30 masak well, he is! what will he pull off next -- nested signatures?
08:30 moritz_ rakudo: my $foo = { "Yay" }; say $foo(foo => 'bar');
08:30 p6eval rakudo 9d76f3: OUTPUT«Unexpected named parameter 'foo' passed␤in Main (file src/gen_setting.pm, line 288)␤»
08:32 moritz_ 8th ticket closed, Ilya++ for reporting
08:34 masak moritz_++ for closing 8 tickets!
08:34 moritz_ jnthn++ for making them closeable
08:34 mathw It's the simple things I miss when I write in Perl 5
08:35 mathw like if $foo eq $bar { }
08:35 mathw and for @list -> $thing { }
08:35 masak :)
08:35 mathw and "{embedded-closures()}"
08:35 mathw So many little touches and tweaks and betterifications
08:39 carlin rakudo: grammar foo { rule TOP { 'lorem' | <.panic> }; method panic { die "The sky is falling!"; }; }; foo.parse('blah'); # RT 69228
08:39 p6eval rakudo 9d76f3: OUTPUT«The sky is falling!␤in method foo::panic (file /tmp/20eC7h2q0n, line 2)␤called from regex foo::TOP (file /tmp/20eC7h2q0n, line 2)␤called from Main (file <unknown>, line <unknown>)␤»
08:40 rfordinal left #perl6
08:40 moritz_ carlin: so barring test coverage that can be closed?
08:41 carlin moritz_: yep, not an NPMCA anymore
09:09 ilbot2 joined #perl6
09:09 Topic for #perl6is now »ö« | http://perl6.org/ | nopaste: http://paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: http://irc.pugscode.org/ | UTF-8 is our friend!
09:15 jnthn morning
09:16 moritz_ oh morning
09:16 moritz_ jnthn: I closed 8 tickets that autounfudge turned up
09:18 moritz_ and I'm about to commit a few more unfudges
09:19 moritz_ PerlJam: for the release you should regress on autothreading.t, which fails on amd64 (and will be fixed shortly after the release)
09:19 jnthn nbrown: If you didn't solve the problem, then it's probably because your Parrot is too old (you're using one that doesn't export the symbols).
09:20 pugs_svn r28850 | moritz++ | [t/spec] a few #?todo unfudges for rakudo, jnthn++
09:20 lumi joined #perl6
09:21 moritz_ rakudo: say (-> { 'foo' }).('bar')
09:21 p6eval rakudo 9d76f3: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤in Main (file src/gen_setting.pm, line 288)␤»
09:25 jnthn Hmm...is that one a win or a fail?
09:25 * jnthn makes coffee
09:25 jnthn mathw: I'm happy to hear I didn't break From. :-)
09:26 jnthn moritz++ # unfudging tests
09:27 kent\n joined #perl6
09:31 pugs_svn r28851 | moritz++ | [t/spec] more unfudges
09:31 |Jedai| joined #perl6
09:32 jnthn moritz: Any guesses as to how many tests we won?
09:32 moritz_ jnthn: hard to say... maybe a hundred
09:33 jnthn Not bad. Do we have decent coverage of passing named args to positionals?
09:33 NorwayGeek|Away joined #perl6
09:34 moritz_ good question
09:34 moritz_ we have many tests
09:34 moritz_ but most cover the same simple cases
09:36 jnthn :-)
09:38 mathw rakudo: sub foo(Int $a, Str $b) { say "$a$b" }; foo(4, "hello"); foo(:b("hello"), :a(4));
09:38 p6eval rakudo 9d76f3: OUTPUT«4hello␤4hello␤»
09:38 mathw yay!
09:38 masak jnthn: re 'win or fail': win.
09:38 pugs_svn r28852 | moritz++ | [t/spec] more unfudges
09:38 jnthn OK, I thought so (since no signature = params are do not want)
09:40 mathw indeed
09:50 hitsu joined #perl6
09:52 sdf joined #perl6
09:54 pugs_svn r28853 | masak++ | [S12-attributes/delegation.t] removed some tests as per recent spec change
09:54 jnthn We so have to write a lolsql grammar.
09:56 masak and post it as a comment to that blog post.
09:56 Juerd Yay, free PR
09:57 donaldh joined #perl6
09:57 masak and well-deserved, too.
09:59 NorwayGeek joined #perl6
10:04 dalek rakudo: f5b38a0 | masak++ | src/builtins/guts.pir:
10:04 dalek rakudo: [src/builtins/guts.pir] arrays/hashes & handles
10:04 dalek rakudo: Removed the special treatment of array/hash attributes with 'handles'
10:04 dalek rakudo: traits. These now behave as any other attribute, as per spec change
10:04 dalek rakudo: r28846.
10:04 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f5b38a093bb0c2fd3a05cd1740beb318a22c8a1a
10:06 masak $ perl6 -e 'class A { has @.ar handles <push elems> }; my $a = A.new; $a.push("OH HAI"); .say for $a.elems, $a.ar.perl'
10:06 masak 1
10:06 masak ["OH HAI"]
10:07 jnthn masak: Nice, but 'fraid you missed some other relics in src/pmc/p6opaque.pmc
10:07 masak oh. let me check.
10:07 hanekomu joined #perl6
10:08 masak I did indeed.
10:08 masak man, that looks scary. :/
10:09 jnthn masak: It, erm, is.
10:10 masak I see a do_handles routine.
10:10 masak is that whole routine a relic?
10:10 jnthn No, I very much doubt that.
10:11 masak hm.
10:11 masak I was hoping I wouldn't have to grok it...
10:12 jnthn heh heh
10:12 jnthn Increasing bus number through the back door. ;)
10:12 kent\n joined #perl6
10:18 bpetering joined #perl6
10:18 colomon rakudo: say sin(:x(90), :base('degrees'))
10:18 p6eval rakudo 9d76f3: OUTPUT«1␤»
10:19 colomon :)
10:19 dalek nqp-rx: 4e5addc | pmichaud++ | src/ (4 files):
10:19 dalek nqp-rx: Handle postcircumfix: parsing.
10:19 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/4e5addcdcaf19b75d13d27aef1377373654f83fd
10:19 dalek nqp-rx: 9bf6977 | pmichaud++ | src/ (3 files):
10:19 dalek nqp-rx: Handle postcircumfix: ast requirements.
10:19 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/9bf69775869bd8946792f48f0d0bfcdf0905442c
10:19 dalek nqp-rx: bcd5543 | pmichaud++ | src/cheats/hll-grammar.pir:
10:19 dalek nqp-rx: Correct stacked postfixish operators.
10:19 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/bcd5543fa68b61fb21eec265664d0bcb45e2cf0d
10:19 jnthn colomon: We won some tests from this, yes? :-)
10:20 colomon rakudo: say atan2(:x(1), :y(1));
10:20 p6eval rakudo 9d76f3: OUTPUT«No applicable candidates found to dispatch to for 'atan2'␤in Main (file src/gen_setting.pm, line 288)␤»
10:20 jnthn aww
10:20 colomon jnthn: I didn't count, but yes.
10:20 colomon jnthn: yeah atan2 doesn't work for some reason.
10:21 colomon (all the rest do)
10:22 jnthn That's...odd.
10:22 jnthn rakudo: say &atan2.WHAT
10:22 p6eval rakudo 9d76f3: OUTPUT«␤»
10:22 jnthn rakudo: say &sin.WHAT
10:22 p6eval rakudo 9d76f3: OUTPUT«␤»
10:23 jnthn rakudo: say "alive"
10:23 p6eval rakudo 9d76f3: OUTPUT«alive␤»
10:23 jnthn rakudo: say 42.WHAT
10:23 p6eval rakudo 9d76f3: OUTPUT«Int()␤»
10:23 jnthn rakudo: say &sin.PARROT
10:23 p6eval rakudo 9d76f3: OUTPUT«Perl6MultiSub␤»
10:23 jnthn rakudo: say &atan2.PARROT
10:23 p6eval rakudo 9d76f3: OUTPUT«Perl6MultiSub␤»
10:23 jnthn Hmm
10:24 jnthn rakudo: say &atan2.candidates.elems
10:24 jnthn rakudo: say &sin.candidates.elems
10:24 p6eval rakudo 9d76f3: OUTPUT«1␤»
10:24 p6eval rakudo 9d76f3: OUTPUT«2␤»
10:25 * mathw is surprised
10:25 mathw apparently Attributes::Handler doesn't use no warnings 'redefine'
10:25 mathw Perl 5 is weird
10:25 jnthn colomon: That above suggests it's missing the proto.
10:26 meppl joined #perl6
10:26 jnthn colomon: Since (rightly or wrongly) it'd show up as an extra candidate.
10:26 mathw Or is it that I should've used that
10:26 mathw doh
10:26 mathw it's my fault isn't it
10:26 * mathw hides in the corner
10:27 colomon jnthn: but the proto is there, right?  I didn't dream adding it?
10:27 * colomon wonders if there is still an "is export" floating around causing trouble....
10:28 colomon but that's it, Num.atan2 is export
10:29 colomon s/but/bet/
10:29 jnthn Oddness.
10:29 jnthn ah
10:29 colomon give me a min
10:32 * colomon would swear his son gained five pounds over the weekend....
10:33 colomon bingo!
10:33 colomon "is export" considered evil
10:33 moritz_ colomon: maybe put your wisdom into docs/guide_to_setting.pod?
10:34 hitsubunnu joined #perl6
10:34 pugs_svn r28854 | moritz++ | [t/spec] more unfudge
10:34 hitsubunnu joined #perl6
10:37 edgar joined #perl6
10:37 Woodi joined #perl6
10:39 colomon jnthn: getting rid of the "is export" made atan2 work okay when called with named args by hand, but the test suit still has issues.
10:39 jnthn colomon: Oh hm....but is getting rid of "is export" the Right Thing...
10:39 edgar exit
10:39 jnthn fail
10:40 colomon may take me a while to unsort them, typing very slow with surprisingly heavy 13 month old cradled in one arm
10:40 moritz_ jnthn: it's our accepted workaround for now
10:41 moritz_ jnthn: since 'is export' kills multi dispatch right now
10:41 moritz_ feel free to correct that, though :-)
10:42 moritz_ up to 11 closed tickets, if I counted correctly
10:42 colomon :)
10:42 jnthn moritz_: I suspect that may well be a bug.
10:43 jnthn (closing tickets)++
10:43 jnthn moritz_: Including one of the oldest ones, IIRC. ;-)
10:44 moritz_ aye, filed by diakopter++
10:44 dalek nqp-rx: 7591d1c | pmichaud++ | src/ (4 files):
10:44 dalek nqp-rx: Add list associativity.
10:44 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/7591d1cc59312bcf90f53e48becd9b8a6fd7fc80
10:44 kent\n joined #perl6
10:44 colomon ah, atan2 test suite problem was that I removed the default value from x in an attempt to get things working last night.
10:44 jnthn ...what on earth time is in in pmichaud++'s timezone?! :-)
10:44 colomon 5:44am?
10:44 moritz_ you don't want to know :-)
10:45 mikehh joined #perl6
10:48 moritz_ rakudo: say pi
10:48 p6eval rakudo 9d76f3: OUTPUT«3.14159265358979␤»
10:49 colomon rakudo: say pi.Rat
10:49 p6eval rakudo 9d76f3: OUTPUT«3.14159292035398␤»
10:50 colomon rakudo: say pi.Rat.perl
10:50 p6eval rakudo 9d76f3: OUTPUT«355/113␤»
10:50 Praveen_ joined #perl6
10:51 jnthn masak: did you manage to figure out what to remove?
10:52 moritz_ rakudo: say pi.Rat(1e-6).perl
10:52 p6eval rakudo 9d76f3: OUTPUT«355/113␤»
10:52 moritz_ rakudo: say pi.Rat(1e-8).perl
10:52 p6eval rakudo 9d76f3: OUTPUT«103993/33102␤»
10:52 nbrown jnthn: thanks for the tip, I'm using the parrot reccomended by build\PARROT_REVISION (41901
10:52 nbrown is that too old?
10:53 jnthn masak: oh crap, I may have sent you on a wild goose chase...
10:53 jnthn masak: It appears that we already had an array shared between all attributes for handles thingies. :-/
10:53 jnthn oh, no, that couldn't have worked...
10:55 jnthn hmm...how on earth did it work...
10:55 jnthn :-)
10:55 jnthn masak: ah well, don't worry about it :-)
10:55 jnthn nbrown: No, that sounds right... :-S
10:55 jnthn You're using --gen-parrot, yes?
10:55 nbrown jnthn: yep
10:55 jnthn Oddness.
10:56 nbrown jnthn: also I can't update parrot right now, I'm getting weird svn errors.  So that's why I was asking
10:56 nbrown "SSL negotiation failed"
10:57 jnthn nbrown: Glancing the Parrot channel, I think you're not the only one.
10:59 nbrown jnthn: ok, I have to get to work. So I'll check in tonight, just wanted to say thanks and make sure I wasn't being a total idiot
10:59 jnthn OK. Let us know if updating Parrot (when the svn works again) doesn't help. :-)
11:00 nbrown will do.  Have a great day
11:04 * mathw realises he has some tuits tomorrow
11:04 mathw I've got the day off work
11:04 mathw I need to clean the house and go to aikido, but I should be able to do an afternoon of Perl 6 :D
11:04 mathw Or maybe the morning
11:06 * jnthn is off to the Italian Perl Workshop on Thursday o/
11:07 moritz_ jnthn: make sure to bother tim bunce about DBDI :-)
11:07 moritz_ and have fun!
11:08 jnthn moritz_: Yes, that was in my plans. ;-)
11:08 mathw yay!
11:08 mathw are you giving a talk?
11:09 jnthn 2, even.
11:09 jnthn :-)
11:11 * jnthn looks a the Perl 5 he just wrote, and realizes how much shorter it coulda been in Perl 6. :-)
11:12 mathw I do that a lot
11:12 mathw what're your subjects
11:12 mathw I assume you're talking about how awesome perl 6 is?
11:12 jnthn They're basically the same as I gave at YAPC::Asia.
11:12 jnthn But with some corrections/tweaks/updates.
11:13 jnthn Which in theory would make preparing easy.
11:13 jnthn However in reality, the slides were half English, half Japanese.
11:13 mathw excellent
11:13 jnthn So I now need to re-organize them to just be in one language.
11:14 jnthn has_a ('original_image' => from_table => 'tempimages',
11:15 jnthn er, oops
11:15 mathw heh
11:15 mathw obviously that's right-associative
11:16 jnthn It's Perl 5, it's just a list. ;-)
11:16 mathw original_image => (from_table => 'tempimages')
11:16 mathw boo
11:16 jnthn But yes.
11:16 mathw spoiled it now :(
11:16 jnthn Actually I may port my web framework to Perl 6 some day.
11:16 payload joined #perl6
11:16 mathw :)
11:17 quux joined #perl6
11:17 jnthn I'd probably open source it too...and fix all the things I dislike about it.
11:17 mathw \o/
11:17 carlin quux: say I can see
11:17 quux I can see
11:17 carlin \o/
11:17 pnate joined #perl6
11:18 jnthn quux: buy Jonathan a beer
11:18 jnthn ...aww.
11:18 carlin quux: say Sure thing but you have to pay
11:18 quux Sure thing but you have to pay
11:18 moritz_ quux: say rakudo: say "hi"
11:18 quux rakudo: say "hi"
11:18 p6eval rakudo 9d76f3: OUTPUT«hi␤»
11:20 * colomon is wondering how his changes to atan2 could have broken t/spec/S12-attributes/delegation.t
11:21 * colomon is wondering if he should blame "git pull" and masak's last change...
11:21 jnthn colomon: Probably masak's may have, but also you may have out of date delegation.t
11:21 jnthn (I saw masak commit to both)
11:22 colomon That would certainly make for a simple fix!  :)
11:23 carlin quux uses a hack to recv to make recv(Int) work, so it can see things before the server disconnects. I'll try and write a decent way of doing it this weekend.
11:26 colomon jnthn: nope, even after svn up delegation.t fails -- planned 66 tests but ran 53
11:28 jnthn colomon: Oh. Did masak forget to change the count?
11:28 jnthn When removing tests?
11:28 moritz_ if so, just change it to plan *; ... done_testing();
11:32 colomon plan * FTW
11:33 masq joined #perl6
11:33 masq Hey.
11:33 pugs_svn r28855 | colomon++ | [t/spec] Switch to plan *.
11:34 Su-Shee masq: hi. ;)
11:35 masak hm. I did change the count, but in a file I didn't commit. :/
11:36 jnthn masak++ fail
11:36 masak ;/
11:37 colomon Is dalek down?  I pushed my atan2 change three minutes ago....
11:39 pugs_svn r28856 | colomon++ | [t/spec] Unskip atan2 tests that now work.
11:40 payload joined #perl6
11:40 colomon rakudo: say pi
11:40 p6eval rakudo 9d76f3: OUTPUT«3.14159265358979␤»
11:42 pnate2 joined #perl6
11:42 dalek rakudo: 1ab0699 | (Solomon Foster)++ | src/setting/ (2 files):
11:42 dalek rakudo: Remove troublesome atan2 is export declarations to make atan2 work properly.
11:42 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1ab0699127153b940cab1fd63974ba2e8eec09ac
11:45 colomon oh hey, there it is.
11:50 colomon rakudo: say pi
11:50 p6eval rakudo 9d76f3: OUTPUT«3.14159265358979␤»
11:53 pnate2 joined #perl6
11:58 masak rakudo: sub foo($a, $a) { say $a }; foo(42, 5)
11:58 p6eval rakudo 9d76f3: OUTPUT«5␤»
11:59 masak jnthn: your new binder has no complaints about that one?
11:59 masak hm, maybe it's more of a parsing issue...
12:00 payload joined #perl6
12:01 jnthn masak: That one shouldn't really make it so far as the binder, I suspect.
12:01 jnthn std: sub foo($a, $a) { say $a }; foo(42, 5)
12:01 p6eval std 28856: OUTPUT«Potential difficulties:␤  Useless redeclaration of variable $a (from line 1) at /tmp/Qmv8r0g2jT line 1:␤------> [32msub foo($a, [33m⏏[31m$a) { say $a }; foo(42, 5)[0m␤ok 00:02 114m␤»
12:01 jnthn Oh, only a warning.
12:02 mberends carlin: please show your recv() hack, however crude, before the weekend!
12:03 masak jnthn: yes; which makes it interesting to speculate about the semantics of it.
12:03 masak jnthn: I submitted a ticket the other day which hinges on that.
12:04 jnthn masak: I'm not sure. If it's an error, it should not make it so far as the binder. If it's not an error, I think the binder is handling it correctly.
12:04 jnthn That is, the spec says we bind left to right, and you're getting the right-most value.
12:06 takadonet joined #perl6
12:06 takadonet morning all
12:06 am0c joined #perl6
12:06 masak rakudo: sub foo(Str $x, Int $x) { say $x }; foo("OH HAI", 42)
12:06 p6eval rakudo 9d76f3: OUTPUT«42␤»
12:06 masak takadonet: \o
12:07 masak rakudo: sub foo(Str :$x, Int :$x) { say $x }; foo(:x('OH HAI'), :x(42))
12:07 p6eval rakudo 9d76f3: OUTPUT«Nominal type check failed for parameter '$x'; expected Str but got Int instead␤in Main (file src/gen_setting.pm, line 288)␤»
12:07 takadonet masak: how are you doing?
12:07 masak takadonet: I'm full of sushi! \o/
12:08 takadonet hehe
12:08 masak so, very good, thanks.
12:08 masak takadonet: and you?
12:08 takadonet takadonet: just got to work and ready to write some more perl5 code
12:09 masak talking to yourself again? :P
12:09 masak anyway, sounds good.
12:09 masak Perl 5 is a great language.
12:10 takadonet hehe
12:10 takadonet just noticed that
12:10 takadonet masak: perl 5 really makes bioinformatics a lot easier
12:10 masak nod.
12:11 masak rakudo: { &^c("$^a, $^b") }.("g'day", "perl6ers", &say)
12:11 p6eval rakudo 9d76f3: OUTPUT«Nominal type check failed for parameter 'c'; expected Callable but got Multi instead␤in Main (file src/gen_setting.pm, line 288)␤»
12:11 masak jnthn: what's a "nominal type check"?
12:12 envi^home joined #perl6
12:14 jnthn masak: Constrast:
12:14 jnthn rakudo: sub foo(Int $x where { $x > 42 }) { say "ok" }; foo(4.2)
12:14 jnthn rakudo: sub foo(Int $x where { $x > 42 }) { say "ok" }; foo(41)
12:14 p6eval rakudo 9d76f3: OUTPUT«Nominal type check failed for parameter '$x'; expected Int but got Num instead␤in Main (file src/gen_setting.pm, line 288)␤»
12:14 p6eval rakudo 9d76f3: OUTPUT«Constraint type check failed for parameter '$x'␤in Main (file src/gen_setting.pm, line 288)␤»
12:15 masak ah. gotcha.
12:15 jnthn I think distinguishing them helps give a better error.
12:15 masak I parsed 'nominal' wrongly as meaning 'something we only say we're doing'.
12:15 jnthn Before we used to get odd things like "got Int, but expected Int"
12:16 carlin mberends: http://gist.github.com/214213
12:16 bpetering jnthn: that would be LTA :)
12:16 carlin It is very wrong :-)
12:17 jnthn Yes, that's why I fixed it. :-)
12:17 bpetering masak: yay for sushi! :D
12:17 masak \o/
12:18 bpetering jnthn: Programmers are dealing with the two most destructive forces etc etc - so they should have nice helpful error messages to keep their stress levels down. :)
12:18 bpetering jnthn++ # Thank you!
12:19 bpetering hi masak-san
12:19 mberends carlin: thanks anyway, it's a nice starting point for some improvement :)
12:20 jnthn We can haz Perl 6 ircbot? :-)
12:20 jnthn .oO( it's gotta be smarter than purl )
12:21 lumi joined #perl6
12:24 masak hi bpetering 先生
12:26 bpetering no tests yet :(
12:27 bpetering but i have been using ruby's CSV and am inclined to agree with your reader/writer split
12:27 masak bpetering: cool.
12:27 masak bpetering: looking forward to picking up that trail again.
12:28 masak bpetering: but no worries in the meantime; I, too, have tasks looking for tuits...
12:30 bpetering Don't we all?
12:30 masak I mean Perl 6 stuff.
12:31 bpetering Ah.
12:31 * mathw has some spare tuits up for grabs tomorrow...
12:32 masak I'll have some tonight, but they are ear-marked for Web.pm.
12:33 mathw I don't know what to do with mine tomorrow
12:33 mathw I need to decide, or I'll fritter them away playing with the cat
12:37 kent\n joined #perl6
12:38 * jnthn -> slovak, bbl
12:42 bpetering this isn't a troll - why is Perl 6 called "Perl 6", and not something else entirely?
12:42 bpetering because I see the language as being in a different category to the previous 5 Perls
12:42 masak bpetering: since you ask so nicely... :)
12:42 mathw Because it's the next version of Perl
12:42 lumi joined #perl6
12:43 masak bpetering: I don't see it as not being a version of Perl.
12:43 masak just because it builds a new compiler/runloop doesn't make it not Perl.
12:43 ruoso joined #perl6
12:44 bpetering masak: I accept that...
12:44 bpetering but isn't a mutable grammar a rather fundamental change?
12:45 bpetering i.e. - does any other language around today have that?
12:45 Su-Shee I think, user wording will decide after a few years, wether it's still called perl or if it's going to be rakudo or even rakudo perl..
12:45 mathw Lisp
12:45 mathw It's Perl
12:46 mathw It still has Perl's principles in it
12:46 mathw It's just a chance to do something even more like Perl than Perl 5
12:47 bpetering mathw: ah ok, that has some weight
12:47 masak Perl 6 is the logical and historical conclusion of Perl 5, but Perl 5 will probably never get there, or will get there partially and unsatisfactorily.
12:47 masak s/conclusion/consequence/
12:47 mathw Perl 6 is a massive shift, because Larry said let's go ditch backwards compatibility this time
12:48 mathw But it's a much, much better language as a result
12:48 masak yes; ditching backwards compatibility is one step more drastic than just forking off and working on the side.
12:48 mathw Still feels like Perl to me though
12:48 masak same here.
12:49 mathw The syntax is (mostly) familiar and comfortable
12:49 bpetering Su-Shee: but "Perl 6" is a spec, not just the rakudo implementation
12:49 masak and I'm not at all ruling out a Perl 7 in my lifetime.
12:49 mathw The crazy levels of power and long lengths of rope with which to hang yourself are still there
12:49 mathw It's got a kick-ass awesome regexp language to go with it
12:49 masak it's just that it's nuclear chainsaw rope this time. :P
12:49 pnate joined #perl6
12:50 Su-Shee bpetering: yes, but usally users start naming things by talking about them and we'll see if rakudo gets to be synonym with "perl 6"
12:51 Su-Shee bpetering: if I talk to people about Perl 6, I usally say things like "well, when pugs perl started.." or "in rakudo perl, there's ..."
12:51 bpetering Su-Shee: you mean like how people name the PC case "the hard drive"? :) (does that happen in germany too?)
12:52 Su-Shee bpetering: they call it often "the calculator" (literally translated) :)
12:52 mathw bpetering: or when people say 'PC' but they don't mean to include things running OS X or Linux or BeOS
12:53 SmokeMachine joined #perl6
12:53 masak I often manage, just barely, to give a strained smile to people who call the chassi of the computer 'the hard drive', and then look around, seeking approval.
12:54 mathw well
12:54 mathw at least they've heard of hard drives
12:54 mathw and have connected it with the big box
12:54 bpetering hey, it looks hard
12:54 mathw 'What web browser do you use?' 'Windows'
12:54 masak :P
12:54 mathw .oO(Ah, so Internet Explorer then)
12:54 Su-Shee masak: don't you think Perl 7 will be the natural order if new releases show up?
12:55 mathw There'll be a Perl 7 one day I expect
12:55 masak as this article points out, http://it.slashdot.org/article.pl?sid=09/05/18/134222 -- you don't call the auto shop an tell them that your engine is broken when your radio breaks.
12:55 mathw But hopefully not for some time, Perl 6 should be quite flexible in the long term
12:55 mathw Especially since you can add new syntax :)
12:56 moritz_ bpetering: actually Perl 5 also has mutable grammar, in a very limited way
12:56 bpetering masak: no, but theres not the "geek stigma" with cars. it's cool to look dumb about computers.
12:56 masak Su-Shee: I'd expect Perl 7 to be at least as disruptive as Perl 6. and probably as long in the coming, too.
12:56 moritz_ bpetering: adding prototypes to subroutines does change the grammar
12:56 mathw moritz_: that barely counts though
12:56 Su-Shee masak: hm. Perl 7 codenamed "bio perl" :)
12:56 mathw and there are all kinds of weird things with prototypes
12:57 Su-Shee .oO(quantum perl.)
12:57 masak Su-Shee: "coming soon to a pet near you!"
12:57 bpetering masak: :P
12:57 mathw Su-Shee: why not? There's Quantum ML...
12:57 Su-Shee masak: oooh REAL perl-lolcatz? :)
12:57 masak in Perl 7, junctions will run on actual qubit superpositions.
12:57 mathw One day, if we ever get quantum computers, we'll want to run Perl on quantum machines
12:58 moritz_ bpetering: one more thing... "Perl" is not only defined by the language, but by the underlying principle - timtowtdi, "easy things should be simple, hard things possible", DWIM, natural language readability, huffman coding etc
12:58 mathw yes see we've already got some of the structures in place
12:58 mathw we'll need qubit rotate and things though
12:58 masak "did you remove the file?" -- "um, dunno, the wave hasn't collapsed yet".
12:58 moritz_ bpetering: we keep these principles high iin Perl 6, even if the language itself is quite different, in some way
12:58 * mathw knows little about quantum computing theory, but sat in on a few talks on it when he was trying to get a PhD
12:59 bpetering moritz_: regarding the last point, agree completely
12:59 bpetering *2 points
13:00 mathw bpetering: that's what I was trying to say about Perl 6 still being Perl
13:00 gfldex joined #perl6
13:00 moritz_ I should blog about that
13:00 moritz_ some day[tm]
13:01 bpetering mathw: that's what i said had some weight :)
13:02 PerlJam good $localtime all
13:02 bpetering moritz_: doesn't adding prototypes to subs just change how things are parsed - not actually change the grammar proper?
13:03 masak good $lolcat-time
13:03 bpetering good time quanta
13:03 mathw I bought me a Wispa
13:04 moritz_ bpetering: when you have sub foo(&), the { in 'foo {' is parsed a block, not as a hashref, leading to different grammar rules being applied to that piece of text
13:04 mathw But I haznt eated it
13:04 moritz_ bpetering: to me that looks very much like "change the grammar"
13:04 moritz_ it's a small change, but it's one, afaict
13:04 bpetering moritz_: wouldn't you distinguish between changing which grammar rules are applied and changing the grammar itself?
13:05 moritz_ bpetering: I would, if it served my argument :-)
13:05 bpetering moritz_: and words mean what you define them to mean ;)
13:05 moritz_ :-)
13:06 moritz_ but you're right, it's a rather drastic contrast to what Perl 6 offers
13:08 bpetering well, i fully accept that Perl 6 is Perl in the sense of "this is where we've been heading and want to go"
13:08 bpetering and that it "feels the same"
13:08 bpetering and has the TIMTOWDI spirit
13:09 bpetering y'all sense a 'but' coming? ;)
13:09 mathw therefore
13:09 mathw it's Perl
13:09 mathw nope
13:09 mathw you're completely convinced
13:09 synth joined #perl6
13:10 mathw and now you're going to go out and preach it to the world
13:10 bpetering O_O
13:10 bpetering yes. master.
13:10 mathw and singlehandedly remove all misconceptions about Perl 6
13:10 NorwayGeek joined #perl6
13:10 PerlJam you'd be the Johnny Appleseed of Perl 6 memes
13:11 bpetering "Perl 6 even does your dishes. After all, it has a kitchen sink."
13:11 mathw class Dishwasher does Dishes { ... }
13:12 PerlJam sounds like the beginning of a good example for the book
13:12 mathw Bit too cute
13:12 PerlJam mathw: See Camelia
13:13 bpetering the but exists mainly on a technological level.
13:14 mathw PerlJam: also too cute
13:14 bpetering i mean, isn't it a "next-generation" language as opposed to a "this-generation" language?
13:14 moritz_ yes
13:14 frettled Camelia isn't too cute.  If she had been a pony, she might have been too cute.
13:15 frettled Now I suddenly see small plasticky packages of My Little Camelia.
13:16 bpetering so isn't it bad marketing to not reflect that difference in the name?
13:17 mathw bpetering: But the number went from 5 to 6, and we don't really want people to think this is a hard new language
13:18 moritz_ bpetering: well, I don't see this kind of marketing as a problem
13:18 masak naming it "Perl" is a pretty intuitive way to indicate that it's still Perl.
13:18 moritz_ bpetering: when we have something to show to the masses, they'll see that Perl 6 rocks, technologically
13:18 moritz_ bpetering: the trouble is more to convince them it actually exist and is coming
13:20 bpetering masak: true... and Perl6/Perl7 has the whole penultimate-perfect / perfect language thing going for it
13:21 bpetering moritz_: i guess i'm worried that people won't bother looking because they associate Perl without write-once-read-never and all that other nonsense
13:21 bpetering s/without/with/
13:21 NorwayGeek joined #perl6
13:22 Su-Shee bpetering: in the minute that there is some shiny project written in Pler 6 they'll look at it.
13:22 bpetering Su-Shee: now that argument i buy.
13:23 bpetering we need a killer app.
13:23 moritz_ we need many killer apps :-)
13:23 Su-Shee bpetering: there are also many Perl lovers really waiting for a Perl 6 coming up.
13:24 moritz_ and I believe that grammars are a killer app in itself
13:24 Su-Shee also, I personally think it depends on the books and documentation - if that's as nice as with Perl 5, that will be another good argument.
13:24 masak something which isn't an app cannot be a killer app.
13:24 bpetering moritz_: one has historically been sufficient :)
13:24 Su-Shee moritz_: indeed. I already made a list what should be ported from our office code.
13:24 moritz_ bpetering: aye :-)
13:25 Su-Shee also, I believe the "smoothness" of coding Perl 6 will be convincing.
13:25 * Woodi just wonders if p6 will be scripting language for unix admins...
13:26 Woodi parrot is big thing...
13:26 Su-Shee Woodi: why not? consider a domain grammar for example and you don't have to use classes and roles, if you just need the typical "script"
13:26 Woodi Su-Shee: i think shift was made from scripting language to dynamic...
13:27 Woodi sa not so good for fast tools...
13:27 * Woodi just asks...
13:28 PerlJam Woodi: fast, powerful, expressive ... pick two   ;)
13:28 moritz_ how are scripting languages not dynamic, or the other way round?
13:28 Su-Shee Woodi: hm, have of my script don't really require "speed" as a main concern..
13:29 bpetering moritz_: re: convincing ppl it exists and is coming: a "try rakudo" (a la "_why's try ruby") would go a long way towards doing that - globally
13:29 Su-Shee moritz_: I think he means the underlying parrot.
13:29 masak Woodi: there are some one-liners that I already prefer to write in Perl 6 rather than Perl 5. it's not only speed, but also ease of use, and familiarity, that comes into play.
13:29 PerlJam bpetering: When Rakudo* is released, that's the time to have a "try rakudo"
13:30 Su-Shee nevertheless, I agree that Perl 6 also should be fast some day.
13:30 frettled Woodi: those who want fast perl-ish tools may still be using Perl 4
13:30 moritz_ somebody just needs to write it
13:30 masak bpetering: we're working hard to have a 'Try Rakudo' ready for April.
13:30 Woodi is #!/usr/bin/perl6-with-parrot-on_boards is realy what primary perl users (admins) need ?
13:30 bpetering PerlJam: why not simultaneous?
13:30 frettled Woodi: for some misunderstood concept of fast, perhaps.
13:30 bpetering masak: ah, wasn't aware - how's it progressing?
13:31 frettled You keep losing your kanelbulle.
13:31 masak frettled: I'm a log-outer.
13:31 PerlJam bpetering: I didn't say "after" did I?
13:31 moritz_ bpetering: we'll have an announcement on Friday
13:31 frettled masak: and not log-inner :D
13:31 masak frettled: well, that too. :D
13:32 bpetering PerlJam: no, my apologies. I think we're in agreement.
13:32 PerlJam bpetering: no worries :)
13:32 moritz_ bpetering: we're basically writing a book that introduces programmers to Perl 6, based on real-world examples
13:32 moritz_ bpetering: /join #perl6book for details :-)
13:33 masak bpetering: it's awaiting further changes to Rakudo, I think. there's no use putting one online with the one-line-one-compilation-unit unfeature still in place, for example. we want to parade Perl 6, not shame it.
13:33 * Woodi love p6 new features too... was studied for monads last 2 days :) just need that everything in command line :)
13:33 bpetering moritz_: great news - i shall :)
13:33 masak bpetering: after that, it's just the little matter of duplicating the wildly insane hack that made "Try Pugs" work. :)
13:34 * Su-Shee just needs working dbi with postgres and more speed and then I change the office code. :)
13:34 PerlJam Su-Shee: how much more speed?  (the other two are easy by comparison  :)
13:34 masak Su-Shee: Squerl has SQLite, and Tene++ is allegedly working on MySQL. no Postgres yet...
13:34 bpetering masak: any reason some of _why's TR code couldn't be put to use? (or are you talking purely backend?)
13:35 masak bpetering: maybe it could. I didn't realize it was public.
13:35 masak bpetering: but we still retain the Try Pugs code.
13:35 bpetering http://github.com/whymirror/TryRuby
13:35 * masak has a look
13:37 masak "The current implementation doesn't use persistent processes like irb. What it does is it stores all previous successfully run commands in session['previous_commands'], and runs them all first (disabling stdout)."
13:37 masak eeew.
13:38 masak what if I run along for loop -- then all commands after that will be really slow... :/
13:38 masak no, a real solution basically has to be talking to a running Rakudo process, exchanging input/output in some way.
13:38 Su-Shee PerlJam: Until I tested real segments of our code in 5 and 6, I can't be really precise, but my collegue tried to port our stuff to ruby and python 2 years ago which was too slow. Don't know the details yet, though.
13:39 bpetering hmm... that impl may be more in line with the easier nature of try ruby. are we aiming for something more sophisticated with Try Rakudo?
13:39 bpetering what are we aiming for?
13:40 masak good question.
13:40 masak I see two use cases:
13:40 Su-Shee PerlJam: and the new code already was a clean-up version - we surely have speed deficits because of "old, crappy hacks, don't do that again."
13:40 masak (1) introduce newcomers to Perl 6. needs a good interactive course, like the one in Try Ruby.
13:41 masak (2) allow anyone to write arbitrary Perl 6 commands.
13:41 bpetering masak: s/arbitrary/arbitrary modulo security concerns/
13:41 masak of course.
13:41 masak sandboxed.
13:43 bpetering (3) convince doubters Perl 6 is not vaporware
13:43 Su-Shee I would love to see 1) - but like taking the input of the user and suggesting better/other features on that base :)
13:43 Su-Shee like if a user did print "hello world"; suggesting him to try say "hello world"; - but nicer.
13:43 PerlJam Su-Shee: interactive Perl Best Practices?
13:44 Su-Shee PerlJam: cool idea.
13:44 bpetering Sounds like a great idea... :)
13:44 Su-Shee like a code thesaurus :)
13:44 bpetering and also shows off the best bits of Perl 6? ("Oh hey, I can do that?")
13:45 Su-Shee would probably be also very inspiring if you need a new idea :)
13:46 bpetering Try Ruby didn't have any of that "suggest a better solution" stuff since it was all scripted - IIRC
13:46 PerlJam perl6> sub fact ($n) { return 0 if $n < 2; return $n * fact($n-1); }
13:46 PerlJam Perhaps you wanted [*] 1..$n   ?
13:47 PerlJam :-)
13:47 bpetering \o/
13:47 mathw Perl 6 Cookbook
13:47 PerlJam (yes, I notice that my fact sub is buggy)
13:48 Su-Shee PerlJam: well yes - though Perl 6 would be probably a detailed timtoady-list like "well, maybe you like this better.. or try that one.. or do you need it role-based? and how about an entire class..." ;)
13:49 PerlJam Su-Shee: "I notice that you're inheritance hierarchy is 7 levels deep,  are you *sure* you don't want to use L<delegation> or L<roles> to flatten it somewhat?"
13:50 PerlJam Su-Shee: ah, that would give more voice to Camelia!
13:51 PerlJam When Perl 6 talks to you, it uses Camelia's voice.
13:51 masak rakudo: ((Temporal::DateTime.new(date => Temporal::Date.new(:year(2010), :month(4), :day(1)), time => Temporal::Time.new(:hour(0), :minute(0), :second(0))).epoch - time) / (60 * 60 * 24)).ceiling.fmt("%d days left until April!").say
13:51 p6eval rakudo 1ab069: OUTPUT«Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤163 days left until April!␤»
13:52 masak a lot can happen in 163 days.
13:52 masak but we're the ones who need to do it.
13:52 bpetering masak: can it ever
13:52 moritz_ aye
13:52 moritz_ and I'm focusing on the book for now
13:52 mathw std: class A { method m($invocant where { ~$_ eq "Hello" }:) { ... } }
13:52 p6eval std 28856: OUTPUT«ok 00:02 115m␤»
13:53 mathw whoa
13:53 moritz_ rakudo: class A { method m($invocant where { ~$_ eq "Hello" }:) { say self } };
13:53 p6eval rakudo 1ab069:  ( no output )
13:53 moritz_ rakudo: class A { method m($invocant where { ~$_ eq "Hello" }:) { say self } }; A.new.m
13:53 p6eval rakudo 1ab069: OUTPUT«A()<0x2ac9b531ad20>␤»
13:53 moritz_ so it's just ignored
13:54 mathw The reason I asked STD is that I didn't think Rakudo would already do it
13:54 PerlJam That's a strange place  to put an emoticon.
13:54 mathw I wanted to know if it's conceivable
13:54 bpetering PerlJam: that's what i was thinking ... err, :)
13:55 KyleHa joined #perl6
13:56 mikehh joined #perl6
13:58 bpetering good night all
13:58 mathw night
13:58 PerlJam g'night
13:58 bpetering hoping to be free of $workproj and contributing a bit more soon. :)
13:59 masak bpetering: 'night
14:00 meppl joined #perl6
14:12 ruoso joined #perl6
14:18 hexmode left #perl6
14:18 hercynium joined #perl6
14:20 moritz_ rakudo: sub f1 ($a, $b) { WHAT($a) ~ WHAT($b) }; say f1(a     => 42, 23)
14:20 p6eval rakudo 1ab069: OUTPUT«Str()␤»
14:20 moritz_ wtf?
14:21 moritz_ rakudo: sub f1 ($a, $b) { $a.WHAT ~ $b.WHAT }; say f1(a     => 42, 23)
14:21 p6eval rakudo 1ab069: OUTPUT«Int()Int()␤»
14:21 masak what happened there in the first one?
14:22 moritz_ I have no idea.
14:22 moritz_ masak: care to submit? :-)
14:22 * masak submits
14:22 * jnthn back
14:23 nihiliad joined #perl6
14:23 mathw jnthn: just as moritz_ finds you another exciting bug
14:23 moritz_ rakudo: sub f1 ($a, $b) { $a.WHAT ~ $b.WHAT }; say f1(:!a,     23)
14:23 jnthn uh, wtf
14:23 p6eval rakudo 1ab069: OUTPUT«Int()Int()␤»
14:23 jnthn Why on earth would it matter that one is a Str and the other not?
14:24 moritz_ and it's only one Str()
14:24 moritz_ jnthn: btw that's also wrong
14:24 moritz_ :a and :!a both construct a bool
14:24 jnthn yes, but that's nothing newly wrong
14:24 jnthn We've had those wrong for months.
14:24 jnthn (and a ticket)
14:24 moritz_ rakudo: sub f1 ($a, $b) { $a.WHAT ~ $b.WHAT }; say f1(:a,     23)
14:24 p6eval rakudo 1ab069: OUTPUT«Int()Int()␤»
14:24 moritz_ oh.
14:25 jnthn Yup, should be Bool()Int() there.
14:25 jnthn rakudo: sub f1 ($a, $b) { WHAT($a) ~ WHAT($b) }; say f1(a => 42, 23)
14:25 p6eval rakudo 1ab069: OUTPUT«Str()␤»
14:26 jnthn rakudo: sub f1 ($a, $b) { WHAT($a) ~ WHAT($b) }; say f1(23, a => 42)
14:26 p6eval rakudo 1ab069: OUTPUT«Str()␤»
14:26 moritz_ rakudo: sub f1 ($a, $b) { WHAT($a).perl ~ ' ' ~ WHAT($b).perl }; say f1(23, a => 42)
14:26 p6eval rakudo 1ab069: OUTPUT«Str()␤»
14:26 moritz_ parsing bug with WHAT()?
14:27 jnthn moritz_: my $a = 42; my $b = 23; say WHAT($a) ~ WHAT($b)
14:27 jnthn oh
14:27 jnthn rakudo: my $a = 42; my $b = 23; say WHAT($a) ~ WHAT($b)
14:27 moritz_ rakudo: sub w($x) { $x.WHAT }; sub f1 ($a, $b) { w($a) ~ w($b) }; say f1(a => 42, 23)
14:27 masak mathw: where-clauses on invocants... interesting.
14:27 p6eval rakudo 1ab069: OUTPUT«Str()␤»
14:27 p6eval rakudo 1ab069: OUTPUT«Int()Int()␤»
14:27 moritz_ yep
14:27 masak mathw: some kind of method for only certain instances.
14:27 jnthn moritz_: It's nothing to do with calling, it seems.
14:27 mathw masak: well they were talking about some unholy role concoction thing on p6l, so the thing that immediately sprang to my mind was 'where clause'
14:27 moritz_ rakudo: sub w($x) { WHAT($x) }; sub f1 ($a, $b) { w($a) ~ w($b) }; say f1(a => 42, 23)
14:28 p6eval rakudo 1ab069: OUTPUT«Int()Int()␤»
14:28 masak mathw: :)
14:28 moritz_ jnthn: my bet is parsing issues with WHAT()
14:28 masak mathw: it's a really interesting question, is all.
14:28 mathw masak: so I thought I'd see if the idea of a where clause on the invocant was entirely forbidden, and it seems it's not... yet
14:28 jnthn std: class XXX { method foo($x where { .defined }: $arg) { ... } }
14:28 p6eval std 28856: OUTPUT«ok 00:01 109m␤»
14:28 jnthn Hmm
14:28 masak :)
14:28 mathw jnthn: rakudo appears to ignore them completely
14:28 jnthn I'd thought that was forbidden.
14:29 jnthn mathw: Well, yes...
14:29 masak apparently not.
14:29 mathw jnthn: not even saying they're wrong
14:29 jnthn mathw: My expectation was std would refuse it too.
14:29 jnthn So I didn't bother to handle it in the binder.
14:29 masak it feels slightly spooky for some reason.
14:29 jnthn However, std seems OK with it.
14:29 jnthn The thing is that at present we're handling the invocant out of band-ish.
14:29 mathw I was led to the idea by the p6l thread on unusual invocants
14:30 mathw I really have no idea if it's possible or desirable to handle it
14:31 jnthn It's not a big deal to make it work.
14:31 moritz_ another ticket to close, this time by ruoso++
14:31 jnthn Or at least, shouldn't be.
14:31 jnthn I just hadn't expected we'd need to, that's all.
14:31 ruoso which onw?
14:32 mathw jnthn: Well it's possible I managed to uncover a use for it, so...
14:32 moritz_ ruoso: http://rt.perl.org/rt3/Ticket/Display.html?id=64344
14:32 pugs_svn r28857 | moritz++ | [t/spec] unfudge some tests, and correct some in pairs.t
14:32 mathw Although I do think some of the speculation about multiple role composition is getting a little out of hand
14:33 jnthn I've not had time to read that thread yet.
14:33 jnthn And it keeps on growing.
14:33 mikehh joined #perl6
14:33 PerlJam jnthn: also, I think it has strayed from the original question quite a bit.
14:34 jnthn It's of interest, but I suspect there's going to be a lot of the usual over-complicated suggestions that such threads tend to bring up.
14:35 moritz_ coming up with simple suggestions is hard :-)
14:36 frettled at least _useful_ simple suggestions
14:36 frettled I can do counter-productive simple suggestions any time.
14:45 mathw jnthn: yes, it's got a lot of overcomplicated suggestions and missing the point
14:45 mathw IMO, anyway
14:46 __ash__ joined #perl6
14:47 jnthn Some good stuff comes out on p6l, but I find there's a lot of noise too.
14:47 jnthn Which I guess is somewhat to be expected.
14:48 alester joined #perl6
14:48 * moritz_ has a radical suggestion which won't solve most of the problems at hand, but might give some food for thought
14:49 moritz_ let's introduce another syntax for method calls which are resolved at compile time
14:49 moritz_ $obj.\foo or so, intentionally ugly
14:49 jnthn hmm
14:49 icwiener joined #perl6
14:49 moritz_ but that way a role can use its own version of a method
14:49 jnthn Yeahbut
14:49 moritz_ and doesn't accidentally get a wrong one through composition
14:50 jnthn When a method is composed into a class, it gets associated with that class' methods table.
14:50 jnthn However, it's still in a lexical scoping relationship with the role.
14:51 jnthn I'm wondering if we could say that a method from a role looks at other methods declared in its lexical scope before looking at others in the class it was composed into.
14:51 carlin_ joined #perl6
14:51 masak rakudo: role A { my $foo = "OH HAI"; method bar() { say $foo } }; class B does A {}; B.new.bar
14:51 jnthn Not sure if anyone proposed that yet.
14:51 p6eval rakudo 1ab069: OUTPUT«Null PMC access in type()␤in Main (file src/gen_setting.pm, line 288)␤»
14:51 PerlJam moritz_: don't we already have something like  that?   Can't we say something like  $obj.Role::method()   ?
14:51 masak haha!
14:51 jnthn shit...what?
14:51 * masak gleefully submits rakudobug
14:51 jnthn PerlJam: Yes, you can.
14:52 moritz_ PerlJam: yes, but it's not quite what I proposed :-)
14:52 jnthn PerlJam: That'd be the Simple Solution. :-)
14:52 jnthn But I guess since that exists and people are having a discussion, they want something better or that solves a different problem.
14:53 PerlJam jnthn: my reading of the thread makes me think that people are looking for a technical solution to a social problem.
14:53 jnthn Heh. People trying to solve social problems by other means is nothing new.
14:54 moritz_ well, there's a problem it doesn't solve
14:54 * jnthn points at UK government thinking an economic solution (make boos more expensive) will help reduce a social problem (binge drinking)...
14:54 moritz_ sometimes you want the role to call a method that's polymorphically resolved
14:54 moritz_ and you can have that in two different roles
14:54 moritz_ both want the same name
14:54 mathw jnthn: where mustard gas would be far more effective
14:54 moritz_ but you want to polymorph them to different names
14:54 moritz_ => kaboom
14:54 KyleHa moritz_++  # epic unfudging
14:55 KyleHa jnthn++  # signature work
14:55 mathw moritz_: yes, that's largely where the thread went
14:55 * jnthn hadn't seen polymorph used as a verb before.
14:55 jnthn ;-)
14:55 mathw you have two roles with methods with the same name which do very different things
14:55 moritz_ KyleHa++ # marking tests with ticket numbers
14:55 mathw so... what do you do
14:55 mathw does the role risk using the other role's version of the method when it calls it inside?
14:55 moritz_ KyleHa: that really helped... autounfudge.pl just throws out patches...
14:55 jnthn Yes. That's something that makes the case for compile time detection of collisions. The issue seems to be, how do you resolve this.
14:55 mathw (lexical scopey priority, that would be nice)
14:56 mathw yeah
14:56 moritz_ KyleHa: which I can just grep for RT #\d+
14:56 PerlJam mathw: also, the roles are opaque.  You have to assume that you can't modify them directly :)
14:56 mathw PerlJam: yes
14:56 moritz_ KyleHa: and then I can close those tickets :-)
14:56 KyleHa moritz_: Excellent!
14:56 moritz_ found about 12 closable tickets that way
14:56 mathw PerlJam: the solution is for the class you're composing into to use containment instead of composition, maybe, but then you lose the typey goodness
14:57 mathw so the specualtion ends up being around ways of reconciling these conflicts in a sane manner
14:57 jnthn Well, the problem seems to be not about the decision the class makes, but how that then affects the roles that have been composed when they want to call another method in the role, and assume it's their method.
14:57 mathw mmm
14:57 mathw that too
14:57 PerlJam mathw: this is why it feels more like a social problem to me.  The problem itself is probably a design smell.
14:57 moritz_ mathw: you can get the typey goodness with other features
14:57 mathw In which case what you said earlier about a role preferring its own methods to ones its composing class got from another role
14:58 mathw moritz_: not if it has to pass ~~ Role1 and ~~Role2 but you can't compose them both without causing a mess
14:58 moritz_ std: class A provides Int { }
14:58 p6eval std 28857: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse class definition at /tmp/A9Ts5DmD8f line 1:␤------> [32mclass A [33m⏏[31mprovides Int { }[0m␤    expecting trait␤FAILED 00:02 104m␤»
14:58 mathw moritz_: but in that case maybe you've got design smell, as PerlJam says
14:58 moritz_ mathw: I thought there was a mechanism for that
14:59 mathw moritz_: you could play with their ACCEPTS maybe :P
14:59 moritz_ mathw: no, because that's called on the type being checked, not on your object
14:59 mathw moritz_: yeah so you play around with the type being checked
14:59 mathw what else is monkey patching for?
14:59 moritz_ :-)
14:59 mathw can we monkey patch roles?
14:59 jnthn No, they're immutable.
15:00 mathw aaaw
15:00 jnthn That's one of the big differences between roles and classes.
15:00 mathw that's probably a good thing, actually
15:00 moritz_ in first approximation all computer memory is writable :-)
15:00 PerlJam Even if roles preferred their own method implementations, what recourse has the developer when he needs to provide his/her own implementation for that method that's present in two roles?
15:00 mathw moritz_: no, even I'm not going to open THAT can.
15:00 moritz_ mathw: :-)
15:00 ejs joined #perl6
15:01 Psyche^ joined #perl6
15:01 mathw PerlJam: point
15:01 snearch joined #perl6
15:01 mathw Ultimately I guess some role compositions are just going to be impossible
15:01 mathw And we'll end up with a set of guidelines on designing roles to minimise conflicts
15:02 mathw with the first rule being 'don't compose too many roles into your classes'
15:02 mathw prefer containment to composition or inheritance
15:02 mathw sounds familiar...
15:02 PerlJam mathw: tell that to Ovid  :)
15:02 mathw PerlJam: I'm not going to try and tell Ovid anything unless I'm extremely awake
15:02 mathw ooh
15:02 mathw home time
15:02 mathw [gone]
15:03 __ash__ roles may be immutable but they always have to be part of an object, you can monkey patch the object
15:03 jnthn __ash__: s/object/class/ but yes
15:04 ruoso joined #perl6
15:04 dakkar joined #perl6
15:05 hudnix joined #perl6
15:05 PerlJam __ash__: except that you have to somehow say "when you call *this* method, use Dog::bark, but when you call this other method, use Tree::bark"  So you have to know where all of the bark() methods are called and provide implementations that DTRT
15:05 darkwolf joined #perl6
15:05 moritz_ 'Tree' doesn't sound like a good role anyway :-)
15:06 * PerlJam stands very still and sways with the wind.
15:06 jnthn I does a tree.
15:06 slavik jnthn: environmentalist, eh?
15:06 jnthn If it sounds silly, it's probably not menat to be a role. :-)
15:07 jnthn slavik: No, I just have a plant fetish.
15:07 DarkWolf84 Hi #perl6
15:07 DarkWolf84 :)
15:07 jnthn hi DarkWolf84
15:07 slavik haha
15:08 jnthn Well, thought I'd branch out from the usual ones.
15:08 PerlJam jnthn: does that mean that vegetarians are really plant pornographers?
15:08 DarkWolf84 I tried the new rakudo and it's really fast
15:08 DarkWolf84 :)
15:08 jnthn DarkWolf84: Really fast, or really faster? ;-)
15:08 moritz_ compared to tree growth, sure :-)
15:08 DarkWolf84 jnthn++
15:09 jnthn moritz_: :-P
15:09 PerlJam It's fast in geologic time scales
15:09 Su-Shee *hihi* :)
15:09 jnthn oh hai, Su-Shee
15:10 Su-Shee did I mention that I love perl's documentation and hate confusingly written books?
15:10 DarkWolf84 rakudo: class A { method x { say hello; }} my $a = A.new; $a.x;
15:10 p6eval rakudo 1ab069: OUTPUT«Confused at line 2, near "my $a = A."␤in Main (file <unknown>, line <unknown>)␤»
15:10 jnthn DarkWolf84: Needs a semi after the }
15:10 moritz_ DarkWolf84: ; after }
15:10 PerlJam DarkWolf84: you need a semicolon
15:10 DarkWolf84 rakudo: class A { method x { say hello; }}; my $a = A.new; $a.x;
15:10 p6eval rakudo 1ab069: OUTPUT«Could not find non-existent sub hello␤in Main (file src/gen_setting.pm, line 288)␤»
15:10 PerlJam DarkWolf84: and there are no more barewords :)
15:10 jnthn you need quotes
15:11 DarkWolf84 oops
15:11 DarkWolf84 sorry
15:11 jnthn :-)
15:11 DarkWolf84 i forgot the ''
15:11 DarkWolf84 rakudo: class A { method x { say 'hello'; }} my $a = A.new; $a.x;
15:11 p6eval rakudo 1ab069: OUTPUT«Confused at line 2, near "my $a = A."␤in Main (file <unknown>, line <unknown>)␤»
15:12 __ash__ you also need a semi colon after the last class closing }
15:12 __ash__ since your writing it all on one line for the eval bot to parse
15:12 pnate joined #perl6
15:12 __ash__ scary thought, putting all your code on 1 line
15:12 masak would you guys use a Schwartzian transform to emulate @array.pick(*) in Perl 5?
15:12 DarkWolf84 rakudo: class A { method x { say 'hello'; };}; my $a = A.new; $a.x;
15:12 p6eval rakudo 1ab069: OUTPUT«hello␤»
15:12 DarkWolf84 ok
15:12 moritz_ masak: no, just use List::Util::shuffle
15:13 * PerlJam compiles rakudo and runs "make spectest" to see if there's any noticable speed improvement
15:13 masak moritz_: ok :)
15:13 silug joined #perl6
15:13 DarkWolf84 the REPL gives me "Re-declaration of type A at line 1, near "; my $a = " when I try this
15:14 __ash__ in the command line, it retains class declarations and subs
15:14 __ash__ but not variables
15:14 __ash__ so if you do class A { }; 2 times in a row you get that
15:14 __ash__ you can do class A is also { ... };
15:14 __ash__ the "is also" means your extending the current A class
15:15 DarkWolf84 now it gives me npmc
15:15 DarkWolf84 with is also
15:15 __ash__ npmc?
15:16 moritz_ the REPL... is not good
15:16 moritz_ null PMC access
15:16 __ash__ oh, that
15:16 __ash__ i wish those would be more descriptive at times,  but i am sure tahts being worked on
15:17 jnthn Well, I can replace them with "Oh noes, Rakudo screwed up"
15:17 masak :)
15:18 DarkWolf84 maybe I have to bug report this
15:18 __ash__ jnthn: "and boom goes the dynamite"
15:18 __ash__ gets my vote
15:18 DarkWolf84 jnthn: I like that
15:18 mikehh joined #perl6
15:18 DarkWolf84 :)
15:18 moritz_ jnthn: you can still print the rest of the stack trace after that
15:18 jnthn Yeah, somebody just went and merged this branch that got a load of tickets closed, so we need some new ones.
15:19 moritz_ rakudo: say 12/500
15:19 p6eval rakudo 1ab069: OUTPUT«0.024␤»
15:19 moritz_ it close about 2% of the tickets out there ;-)
15:19 moritz_ *closed
15:20 moritz_ a thorough sweep through RT might reveal even more
15:20 masak just need to merge 49 more branches, then. :)
15:21 jnthn OK, time for some hacking...
15:21 * jnthn works on improving the new binder a bit
15:22 masak yay!
15:22 masak is there a Parrot release today?
15:22 [particle] masak: yes
15:22 moritz_ yes
15:22 moritz_ dukeleto is the man, I think
15:22 masak and a Rakudo release in a couple of days.
15:22 jnthn Aye.
15:23 masak and a perl6book release after that.
15:23 jnthn Yeah, exciting times. ;-)
15:23 dukeleto wow, fun times
15:23 masak fun times!
15:23 PerlJam As I said yesterday, "Release week!"
15:23 masak x 3
15:23 masak that's enough release for anybody. :P
15:23 moritz_ PerlJam: did you already pick a PM group name?
15:23 PerlJam moritz_: Thousand Oaks
15:24 masak bele.
15:24 PerlJam For no particular reason other than they had a perl6 hackathon and I like the name :)
15:24 masak +1
15:24 jnthn .oO( no, the "oh, branch out a bit" pun has already been made too many times already today )
15:24 moritz_ PerlJam: wfm
15:25 mikehh joined #perl6
15:28 Su-Shee moritz_: we should initiate a perl mongers group in 66706 Perl :)
15:28 moritz_ Su-Shee: heh :-)
15:29 Su-Shee (gee, how I would like a po box there.. :)
15:29 Su-Shee +much
15:29 moritz_ Su-Shee: when I placed some adsense ads on my blog once, I got all those "Hotels in Perl" ads
15:29 moritz_ quite annoying
15:30 pmichaud good morning, #perl6
15:30 Su-Shee moritz_: yeah, same problem when I was googling "jobs perl" ;)
15:30 Su-Shee moritz_: I really didn't want the security guard job _in_ Perl. ;)
15:31 moritz_ Su-Shee: oh, I thought you'd fancy a job change once in a while :-)
15:31 jnthn morning, pmichaud
15:32 jnthn pmichaud++ # commits all night, still awake in the morning
15:32 * moritz_ wonders if pmichaud is actually human and alive
15:33 jnthn moritz_: He appeared to be both at YAPC::EU...
15:33 masak morning, pmichaud
15:33 jnthn ...but that was some months ago now.
15:33 moritz_ well, could be some sekrit coding bot :-)
15:33 masak pmichaudbot!
15:34 masak it says something both about the Perl 6 community and its bots, that we constantly suspect each other of being bots, and it doesn't feel (1) improbable, (2) very degrading.
15:35 pmurias joined #perl6
15:35 jnthn Well, not until we start comparing people to purl..
15:36 mikehh joined #perl6
15:36 PerlJam jnthn: earlier I was thinking it would be nice if rakudo's REPL was purl-like
15:36 masak jnthn: note the marked absence of purl on this channel...
15:36 PerlJam then you could say "no, class A { ... }
15:36 PerlJam when you wanted to redefine  a class
15:36 athomaso1 joined #perl6
15:37 jnthn masak: Yeah...I miss her *so* much. ;-)
15:37 masak no you don't. :)
15:37 jnthn "But class A is already defined, PerlJam"
15:37 masak *lol*
15:37 moritz_ :-)
15:38 Su-Shee are you fellows actually _gossiping_? ;)
15:38 zaphar_ps joined #perl6
15:38 moritz_ sure, why not?
15:39 PerlJam guys don't gossip as much as they commiserate
15:39 PerlJam :)
15:39 Su-Shee because I've never read you gossiping before. ;)
15:40 moritz_ Su-Shee: you must be new here :-)
15:40 __ash__ REPL  could use some improvements, it would be nice if you could do things on more than 1 line... and possibly retain variables
15:40 pmichaud REPL is likely to be fixed in nqp-rx
15:40 PerlJam __ash__: I think those are more than "it would be nice" things for April
15:40 pmichaud (and then ported into rakudo when we move rakudo to nqp-rx)
15:41 moritz_ there's a ROADMAP... :-)
15:41 diakopter wow. backlogging on J2ME Opera Mini took.... a _long_ time.
15:41 mikehh joined #perl6
15:42 moritz_ speaking of the ROADMAP, it seems that A. B. and C. are mostly done by now
15:43 pmichaud A is mostly done?
15:44 moritz_ in progress :-)
15:44 jnthn We can remove at least one priority 1 item now. ;-)
15:44 __ash__ where is the roadmap? is it on like rakudo.org ?
15:44 moritz_ __ash__: docs/ROADMAP in the repo
15:45 pmichaud we need a link to it on rakudo.org, though.
15:45 moritz_ aye
15:45 __ash__ ah, well i never read the docs, that will show me
15:46 moritz_ don't - jnthn's passwords are stored in there!
15:46 mikehh joined #perl6
15:46 [particle] so, i intended to do some rakudo hacking last week on vacation.
15:46 [particle] got my environment set up, made sure to have the latest repo pulls
15:46 [particle] *repos pulled.
15:46 moritz_ jnthn: do it!
15:47 [particle] and then, i found out, rakudo isn't building with msvc
15:47 PerlJam [particle]: sounds like something to hack on! :)
15:47 jnthn [particle]: That surprises me
15:47 moritz_ I thought jnthn builds with msvc?
15:47 jnthn [particle]: Given that, erm, that's what I build with. :-)
15:47 [particle] yes, if i had any msvc documentation with me, or access to the net, i would have hacked it
15:47 [particle] it's a manifest problem
15:47 jnthn [particle]: Wait, you run...Vista?
15:48 [particle] activestate perl, msvc2008, windows 7 x64 ultimate
15:48 jnthn oh, serves you right
15:48 [particle] note that perl and msvc are 32-bit
15:48 jnthn The problem doesn't manifest itself on XP.
15:48 jnthn ;-)
15:48 [particle] jnthn: you use AS perl?
15:48 jnthn [particle]: Yeah
15:48 [particle] harumph
15:48 jnthn If it's a problem with the manifest though...
15:48 [particle] no
15:48 jnthn ...that explains why I've never seen it.
15:49 [particle] it's a problem creating the perl6.exe file
15:49 [particle] not the file named MANIFEST
15:49 [particle] during exe generation, there's a utility that footprints the binary
15:49 [particle] adds a list of dlls used or something, called a manifest
15:50 [particle] i'll do some research and get back to it when i catch up with work
15:51 jnthn [particle]: Yes, I understodo where the problem is...
15:51 jnthn [particle]: But I dont know how you fix it.
15:51 jnthn :-(
15:52 [particle] i'll post a list item, or ask rblashke directly
15:52 jnthn [particle]: I'm not sure what on earth they require a manifest like that for. :-/
15:52 jnthn OK, thanks. :-)
15:52 [particle] me neither, and not sure how to turn it off
15:52 jnthn I seem to recall that on Parrot, we had to actually make a manifest.
15:53 jnthn Before it'd work on Windows Fail Edition.
15:53 jnthn *Vista
15:53 [particle] yeah, i didn't have enough context while disconnected to fix it
15:54 [particle] and tuits were lower than expected, since playing with nieces and nephews is too much fun
15:54 dalek rakudo: f76c57e | moritz++ | docs/ROADMAP:
15:54 dalek rakudo: [docs] update ROADMAP
15:54 dalek rakudo: * Parrot calling conventions are now scheduled for 2009-11
15:54 dalek rakudo: * biding positionals by name now works
15:54 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f76c57e9a4ad813a3825c6c525813fbe6f8d4638
15:55 jnthn [particle]: fun++ :-)
15:55 jnthn moritz_: Happily, Parrot's calling conventions were less of a block to Rakudo than we thought they'd be when we wrote the ROADMAP.
15:56 mikehh joined #perl6
15:56 jnthn Not sure what else we have in the roadmap that was marked as depending on 'em.
15:58 justatheory joined #perl6
16:00 dalek nqp-rx: 7451fb8 | pmichaud++ | src/ (3 files):
16:00 dalek nqp-rx: Allow nextterm specifier, nulltermish tokens.
16:00 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/7451fb8b4a8a951179201622e1840a84e65c0606
16:01 PerlJam pmichaud: btw, you have a note in one of the files that O is the letter O and not the number zero.  For the sake of an extra character you can eliminate that confusion I think and maybe make that subroutine a little more mnemonic.  call it "OP" instead
16:02 pmichaud PerlJam: I'm following STD.pm there.
16:02 pmichaud STD.pm stashes stuff in <O>
16:02 jnthn pmichaud: I didn't find <O( in STD.pm - what am I missing?
16:02 masak pmichaud: in docs/ROADMAP, mind if I change 'The Parrot Grammar Engine (PGE) will be undergoing some significant refactoring in summer 2009' to '...is currently being replaced by a parser written in NQP'?
16:02 pmichaud masak: +1
16:02 * masak changes
16:03 jnthn pmichaud: oh, I found <O>
16:03 pmichaud jnthn: <O(...)>   is my version of  --> Additive
16:03 jnthn Aha, ok.
16:03 __ash__ what is nqp-rx? not quiet perl? some extension to it?
16:03 pmichaud ash:  it's a new version of nqp that provides regex and grammar support
16:03 pmichaud it also provides a new regex engine that is able to handle protoregexes and (eventually) longest token matching semantics
16:03 __ash__ ah, kk
16:04 pmichaud jnthn: p6 question....    if I have     sub foo( --> XYZ ) { ... }      is XYZ a type coercion or a constraint on the return value?
16:04 pmichaud (I could look it up in S06, but it's easier to ask the implementer :-)
16:05 * moritz_ thinks constraint
16:05 * PerlJam thinks constraint too
16:05 PerlJam let's take a vote!  ;)
16:05 moritz_ The return type may also be put inside the parentheses:
16:05 moritz_ sub NAME (PARAMS --> RETTYPE) {...}
16:05 moritz_ S06/Named Subroutines/
16:05 PerlJam pmichaud: it may  be easier to ask the implementor, but is it easier to actually get an answer?  :)
16:06 pmichaud I suspect that STD.pm is using it as a coercion (more)
16:06 jnthn pmichaud: constraint
16:07 pmichaud at any rate, I decided to side-step the return-type issue in STD.pm altogether by introducing a <O(...)> subrule
16:07 jnthn Then STD is using it wrongly.
16:07 pmichaud so that instead of
16:07 pmichaud token infix:sym<+> (--> Additive) { <sym> }
16:07 pmichaud we end up with
16:08 pmichaud token infix:sym<+> { <sym> <O( %additive )> }
16:08 jnthn Works for me.
16:08 pmichaud which sets the <O> named capture
16:08 jnthn *nod*
16:08 pmichaud (which is why it's called <O(...)> )
16:08 pmichaud it also means we can do
16:08 jnthn Yeah, if STD is expecting it to coerce, it's not what the spec seems to indicate --> does.
16:08 moritz_ .oO( <O(...)> )
16:09 pmichaud token infix:sym<+> { <sym> <O( { %additive, :nextterm<something> } )> }
16:09 pmichaud which allows us to easily mix-in special per-token operator flags.
16:09 pmichaud instead of doing
16:10 quietfanatic joined #perl6
16:10 pmichaud token infix:sym<+> { <sym> { $<O><nextterm> := 'something' } }
16:11 pmichaud anyway, this approach seemed a bit more straightforward to me than the return type approach; perhaps STD.pm will adopt something similar
16:11 jnthn Yeah, that is kinda nice.
16:11 pmichaud I'm going to keep this approach for the non-Rakudo languages that get built with nqp-rx, at any rate.
16:12 jnthn I suspect it's a bit easier to parse as well.
16:15 pmichaud since I don't have hash composers in nqp-rx yet, it actually uses strings
16:15 pmichaud thus it ends up being
16:15 pmichaud token infix:sym<+> { <sym> <O( q{ %additive, :nextterm<something> } )> }
16:15 pmichaud but as a string the resulting hash is cached and re-used, so we aren't creating a new <O> hash for every operator that gets parsed :)
16:16 jnthn That could get costly if we did.
16:16 pmichaud yup
16:17 dalek rakudo: 0a9860f | masak++ | docs/ROADMAP:
16:17 dalek rakudo: [docs/ROADMAP] updated wrt nqp-rx
16:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0a9860f72da755f8ad9127aeb8d9297a735a9709
16:17 pmichaud when we have constant hash composers, we can eliminate the q and it'll work out the same :)
16:17 jnthn Heh. I just got us to create a bunch less PMCs per dispatch, but it didn't actually win us much on performance. Better memory footprint though I guess...
16:17 pmichaud I've been coming up with all sorts of optimizations to add to PAST
16:17 jnthn Er, per binding, not per dispatch...
16:18 jnthn optimizations++
16:18 pmichaud so we may get some big performance wins soonish
16:18 jnthn That'd be nice.
16:18 jnthn Did you see the performance win stats I blogged last night?
16:18 pmichaud I haven't read any blogs or email or backlogs or much of anything :)
16:19 jnthn See towards end of http://use.perl.org/~JonathanWorthington/journal/39772
16:19 pmichaud reading
16:20 PerlJam jnthn: where is your benchmark code?
16:20 pmichaud (reading whole article, not just end)
16:21 TopoMorto joined #perl6
16:21 jnthn PerlJam: tools/benchmark.pl
16:21 pmichaud jnthn++ # outstanding work
16:21 pmichaud okay, short break here, then I might be ready to start on the new nqp implementation
16:22 pmichaud I think I have the operator precedence parser finished :)
16:23 Tene jnthn: so "Startup: 76%" means that it starts up in 76% of the time, or startup time has been improved by 76%?
16:23 jnthn Tene: In 76% of the time we used to.
16:24 jnthn Tene: I did try to make that clear in the paragraph above the numbers, but evidently failed. :-)
16:25 Tene jnthn: ETOOMANYLETTERS
16:26 Tene Maybe try it again without any vowels.  Or with just the vowels.
16:27 masak or just the spaces between the words.
16:27 jnthn rakudo: say "The figures below are the percentage of time it now takes to run some micro-benchmarks on specific language constructs compared to before I started working on the signature and binding improvements. So for example, 10,000 method dispatches now take about 26% of the time they used to.".subst(/<[aeiou]>/, "", :g)
16:27 p6eval rakudo 1ab069: OUTPUT«Th fgrs blw r th prcntg f tm t nw tks t rn sm mcr-bnchmrks n spcfc lngg cnstrcts cmprd t bfr I strtd wrkng n th sgntr nd bndng mprvmnts. S fr xmpl, 10,000 mthd dsptchs nw tk bt 26% f th tm thy sd t.␤»
16:27 jnthn Tene: ^^, hope is clear now, kplzthnxbai
16:28 Confield joined #perl6
16:29 jnthn Who wants attributive parameters?
16:31 jnthn Meh. You're getting 'em anyway.
16:31 * jnthn hackhackhacks
16:31 * diakopter tries to get into hackhackhack mode
16:33 __ash__ jnthn what do you mean attributive parameters?
16:33 jnthn __ash__: method eat($!nom) { ... } # binds to the attribute instead of to a lexical
16:34 __ash__ ah, sweet, thats useful
16:34 jnthn \o/ somebody wants!
16:35 PerlJam aren't they part of the spec anyway?
16:35 PerlJam ergo, TimToady wants
16:35 __ash__ can you define a method as a mutating one? or how would you go about that?
16:35 jnthn PerlJam: Yes, they're part of the spec. :-)
16:36 __ash__ or does it just look up any ol' method on the object in question and assign the result to the variable
16:37 PerlJam __ash__: I  think it looks up the method you named rather than just any method  ;)
16:38 jnthn __ash__: If you try the eat($.nom) form then you'd better have used "is rw" on the attr. :-)
16:38 __ash__ PerlJam: that sounds more useful than my way of doing things
16:39 __ash__ jnthn: most my classes are is rw by defualt these days, so i don't have to do it on every attr
16:40 __ash__ well, i have to go to class, bbl
16:41 * masak takes down 'writing "is rw" on a $.foo parameter when the corresponding attribute isn't rw' as another possible thing to check statically
16:42 jnthn masak: Hmm, I'm not sure what 'is rw" would mean in the context of an attributive parameter anyway.
16:42 jnthn masak: I mean, you're binding to the attribute.
16:42 masak jnthn: what makes you say that?
16:43 jnthn masak: Well, sub foo($x is rw) { ... } # w00t, now I can change $x
16:43 masak nod.
16:43 jnthn method foo($!x is rw) { ... } # OK, so we require the thing that is passed to be assignable I guess...
16:44 jnthn Do we really expect not writing that to bind something read-only to $!x though?
16:44 jnthn oh, it's not binding
16:44 jnthn Reading carefully:
16:44 jnthn "then the argument is assigned directly to the object's attribute"
16:44 jnthn *assigned*
16:45 jnthn OK, that makes life easier. :-)
16:45 jnthn (I'd been meaning to check if it said one way or other, just hadn't got to that part of the impl yet.)
16:46 jnthn Anyway, that still makes things a bit "huh" 'cus you're assigning rather than binding the incoming value.
16:46 masak nod.
16:46 jnthn And presumably assigning (or trying to assign) to a mutable container.
16:46 masak that would mean that 'is rw' is pretty meaningless on the $!foo and $.foo parameter forms.
16:47 jnthn masak: Right, that's my point. :-)
16:47 masak seems a pity, though.
16:47 jnthn So I was trying to figure out what you were getting at. :-)
16:47 jnthn (Still kinda...haven't.)
16:47 masak or should I say, it seems that we're not torturing the implementors enough there... :P
16:48 jnthn :-P
16:49 masak let me rephrase the question: in method foo($.attr) { ... }, what is defined in the environment inside foo?
16:49 jnthn masak: nothing, so far as I can tell
16:50 jnthn masak: I mean, it doesn't imply that we also create a lexical $attr
16:50 masak oh, good.
16:50 masak then there's practically nothing to torture the implementors about.
16:51 dalek rakudo: 7eed769 | jonathan++ |  (6 files):
16:51 dalek rakudo: Make Rakudo_binding_bind_signature actually take a low level signature object rather than an already unpacked one - this will make it far neater to recurse into the binder later. Also, cache the nameds to positionals hash. Doesn't actually win much performance, though we're building probably several less PMCs per dispatch, so less memory overhead for sure. Also remove a leak.
16:51 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7eed7692d38463e35a4c6130a25bb985c5981ba5
16:51 jnthn It's OK, you've already got hundreds of other delayed-effect toturings lined up in RT. :-)
16:51 masak mwhahaha.
16:52 masak and 'is rw' on such a parameter is essentially meaningless.
16:52 quietfanatic jnthn: allocating fewer PMCs ought to give a good performance boost in realtime applications where GC is an issue
16:52 masak one could have a static warning about that, I guess.
16:52 jnthn quietfanatic: Aye, it's a worthwhile thing.
16:52 desertm4x joined #perl6
16:52 jnthn quietfanatic: It was an easy change, I just didn't want to do things I didn't have to before the branch merge.
16:53 quietfanatic Ah, I see
16:53 jnthn (All I did was cache something I was building each time. I even had a TODO comment saying to do it later. :-))
16:54 quietfanatic And I had just checked out the rakudo before that commit.  Recheckouting. :)
16:54 quietfanatic s/the rakudo/rakudo/
16:55 DarkWolf84 left #perl6
16:55 payload joined #perl6
17:00 quietfanatic Makefile:431: *** missing separator.  Stop.
17:00 quietfanatic D:
17:00 jnthn ...co?
17:01 jnthn o...
17:01 quietfanatic This is from running make on Rakudo.
17:02 jnthn quietfanatic: pull again, re-configure...
17:02 jnthn :-/
17:02 dalek rakudo: 55fd86e | jonathan++ | build/Makefile.in:
17:02 dalek rakudo: jnthn-- puts tabs in the makefile again.
17:02 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/55fd86e3f9e2f431c199705f10c5c2d4988f13b8
17:03 cdarroch joined #perl6
17:04 alester http://rt.perl.org/rt3/Ticket/Display.html?id=69887 is anyone watching spam?
17:04 alester I know I'm not.
17:04 moritz_ alester: I am, from time to time
17:04 moritz_ alester: but it would make far more sense to disable comments entirely
17:04 moritz_ the signal/noise ratio is just too low
17:04 moritz_ alester: can you do that?
17:04 alester I could
17:04 moritz_ then I'll do a final sweep and delete the remaining spam comments
17:05 quietfanatic Aah, much better
17:08 alester ok, I changed it to not autopost comments
17:08 moritz_ alester++
17:09 quietfanatic Wow, I was right.  Since last month gamebase has had a huge speed improvement.  jnthn++
17:10 quietfanatic and (whoever else helped)++
17:10 jnthn quietfanatic: I'm happy to hear that it's had a noticable effect on real life code too.
17:11 jnthn Micro-benchmarks for specific language features only tell part of the story.
17:11 masak I've still to test it scientifically, but I'm pretty sure there was a speed boost.
17:27 diakopter mberends: I've almost got symbolic/operator multi declaration/installation working
17:34 Chillance joined #perl6
17:39 frederico joined #perl6
17:40 justatheory joined #perl6
17:41 justatheory joined #perl6
17:43 nihiliad joined #perl6
17:43 REPLeffect joined #perl6
17:44 mberends diakopter: is that going to be in misc/*.js ?
17:47 diakopter no; the dispatcher is in Act.js
17:47 diakopter a fallback from the main opcode dispatcher
17:48 mberends thanks, I'm still getting used to how it all fits together :)
17:55 jnthn whee
17:56 jnthn > class Food { has $!nom; method eat($!nom) { say "ok" }; method test() { say $!nom } }
17:56 lambdabot <no location info>: parse error on input `class'
17:56 jnthn > my $mmm = Food.new; $mmm.eat("marshmallow"); $mmm.test;
17:56 jnthn ok
17:56 jnthn marshmallow
17:56 pmichaud mmmmmmmm mmmmarshmallow
17:57 mberends ok
17:57 jnthn Running spectests to make I didn't screw anything up, and while it happens going for dinner. :-)
17:57 jnthn bbl
17:58 jnthn *make sure # yeah, need higher blood sugar...
17:59 NorwayGeek joined #perl6
18:01 meppl joined #perl6
18:05 lumi joined #perl6
18:11 icwiener joined #perl6
18:13 __ash__ joined #perl6
18:16 nbrown joined #perl6
18:22 stephenlb joined #perl6
18:23 jaldhar joined #perl6
18:28 moritz_ jnthn: don't forget #ps ;-)
18:38 zloyrusskiy joined #perl6
18:42 NorwayGeek joined #perl6
18:46 zloyrusskiy joined #perl6
18:57 __ash__ joined #perl6
19:06 pugs_svn r28858 | moritz++ | [perl6.org] clean up files from old site
19:06 SmokeMachine joined #perl6
19:06 edenc blist
19:07 edenc woops
19:09 tarbo2 joined #perl6
19:13 moritz_ jnthn, pmichaud: I'm looking for a way to forbid sockets in Safe.pm... can I somehow just remove a full class with inline PIR?
19:16 pmichaud you could eliminate its protoobject
19:17 pmichaud that might not eliminate the class itself, but it'd be hard to get to from Perl 6 w/o dropping into inline PIR
19:17 pmichaud null $P0
19:17 pmichaud set_hll_global ['IO'], 'Socket', $P0
19:17 pmichaud or something like that
19:19 moritz_ pmichaud: I'll try that, thanks
19:20 japhb Does Safe.pm disallow inline PIR?
19:20 moritz_ no
19:20 moritz_ if there's a way to do that, I'd like to hear it ;-)
19:20 japhb Hide the relevant portion of the grammar?
19:21 moritz_ I don#t think rakudo's grammar is mutable enough yet :/
19:21 japhb Of course, then you also have to kill cross-HLL eval
19:21 moritz_ s/#/'/
19:21 moritz_ japhb: aye
19:21 moritz_ though I'm kinda attached to having blizkost in there
19:22 moritz_ all in all we need a parrot level solution
19:22 japhb If blizkost is there, then people can do socket stuff, regardless of parrot
19:23 lumi joined #perl6
19:23 moritz_ yes
19:23 moritz_ but if it actually becomes a problem, blizkost is easy to remove
19:23 moritz_ inline PIR isn't
19:23 japhb nodnodnod
19:24 japhb maybe the most reasonable solution is to put a hard firewall around the VM the evalbot is running in
19:25 moritz_ well, it needs an IRC connection :)
19:26 japhb moritz_, sure, but only on one TCP pair ...
19:26 japhb Especially if the evalbot on (re-)launch notified the firewall about what port it was planning to use, and the firewall adjusted accordingly.
19:27 Tene Um, why not just confine it with an selinux sandox?
19:27 moritz_ well, if anybody builds that for me, I'm happy ;-)
19:27 moritz_ I just have no experience with that
19:27 Tene I can do that.  I just need a server to run it on that has selinux enabled.
19:27 japhb Tene, if the ircbot has rights to initiate a socket to IRC, how do you prevent the code it runs from doing the same?
19:28 japhb Hmmm, I guess the ircbot could do the necessary selinux magic to enforce tighter restrictions on its children.
19:28 Tene japhb: right.
19:28 Tene selinux-policy-utils actually ships with a binary called "sandbox" that does it for you
19:28 japhb Oh, nice!
19:28 Tene so just have the bot invoke sandbox with appropriate arguments
19:29 * japhb never used selinux on purpose, because all of my previous interactions with it were unpleasant ...
19:29 moritz_ now that would be awesome
19:29 * Tene <3 selinux
19:29 japhb But this seems like a valid use case.  ;-)
19:30 Tene the original inspiration for the guy who wrote sandbox was browser helper applications, like pdf reader
19:30 Tene in case you have malicious pdfs
19:30 japhb makes sense
19:30 jnthn moritz_: er, oops, I forgot #ps
19:32 Tene I was planning to start renting a VM server sometime soon... I'll make the necessary modifications to evalbot if someone can harass me about that
19:32 dalek nqp-rx: b179ffb | pmichaud++ | src/ (4 files):
19:32 dalek nqp-rx: More quote_EXPR and quoting improvements.
19:32 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/b179ffbbdd72075749058f7619376e58eeea3ed6
19:33 Tene afk work
19:49 colomon rakudo: class A { has @.b; multi method new(@x is copy) { self.bless(*, b => @x); }; }; A.new(@c);
19:49 p6eval rakudo 55fd86: OUTPUT«Symbol '@c' not predeclared in <anonymous> (/tmp/BdhppMX7QM:2)␤in Main (file <unknown>, line <unknown>)␤»
19:50 colomon rakudo: class A { has @.b; multi method new(@x is copy) { self.bless(*, b => @x); }; }; { A.new(@c); } my @c;
19:50 p6eval rakudo 55fd86: OUTPUT«Confused at line 2, near "my @c;"␤in Main (file <unknown>, line <unknown>)␤»
19:50 colomon rakudo: class A { has @.b; multi method new(@x is copy) { self.bless(*, b => @x); }; }; { A.new(@c); }; my @c;
19:50 p6eval rakudo 55fd86: OUTPUT«Null PMC access in does_pmc()␤in Main (file src/gen_setting.pm, line 288)␤»
19:50 ruoso joined #perl6
19:50 colomon bingo
19:50 jnthn Yes, and don't bother filing a ticket.
19:50 jnthn We already have loads like "omgz I used a variable then declared it" :-)
19:51 moritz_ though you must admit that this one is particularly creative ;-)
19:53 pugs_svn r28859 | diakopter++ | [sprixel] implement operator sub declarations (no typed/named parameters yet) for the setting.  Implement sub infix:\<+> in the setting's Int.pm using it: multi sub infix:\<+> { jseval 'this.result = new ctx.classes.Int.ctor(args[0].v.add(args[1].v))'}
19:54 * diakopter looks askance at the <
19:56 diakopter (and yes, that multi will be just for Int $a, Int $b
19:56 diakopter )
19:56 KyleHa Remark from Facebook:  So... there's not a funny-dressed guy, blowing into a big horn yelling 'Raaakuuudooo"?
19:56 colomon jnthn: Okay, just making sure (hit this one in practice just now with what I now know was an incorrect variable rearranging).
19:57 colomon KyleHa: That reminds me that I want to shotgun the name "Star of Rakudo" for a tune I need to write early next spring.  :)
19:58 SmokeMachine joined #perl6
19:59 zamolxes joined #perl6
20:00 diakopter rakudo: multi sub infix:<+>(Int $a where $a == 1, Int $b) { say 5 }; say 1+1
20:00 p6eval rakudo 55fd86: OUTPUT«5␤1␤»
20:00 diakopter cool
20:01 diakopter rakudo: multi sub infix:<+>(Int $a where $a == 1, Int $b) { say 5 }; say 1+1; say 2+1; # less cool
20:01 p6eval rakudo 55fd86: OUTPUT«5␤1␤5␤1␤»
20:03 moritz_ rakudo: multi sub infix:<+>(Int $a where { $a == 1 }, Int $b) { 5 }; say 2+1
20:03 p6eval rakudo 55fd86: OUTPUT«3␤»
20:03 moritz_ I think the where-clause with braces confuses rakudo
20:04 moritz_ *without
20:06 nbrown joined #perl6
20:08 * mberends studies the 9 updated sprixel files :-)
20:09 jnthn rakudo: multi sub infix:<+>(Int $a where { $a == 1 }, Int $b) { 5 }; say 1+1; say 2+1;
20:09 p6eval rakudo 55fd86: OUTPUT«5␤3␤»
20:09 jnthn Hmm. It appears you're right, moritz_.
20:09 diakopter that's weird.  svn didn't commit the latest setting/Int.pm
20:10 diakopter oh, nm; it did.
20:11 SmokeMachine joined #perl6
20:11 diakopter std: multi sub infix:<+>(Int $a where $a == 1, Int $b) { 5 }
20:11 p6eval std 28858: OUTPUT«[31m===[0mSORRY![31m===[0m␤Preceding context expects a term, but found infix = instead at /tmp/e0lfGxBVcN line 1:␤------> [32mmulti sub infix:<+>(Int $a where $a ==[33m⏏[31m 1, Int $b) { 5 }[0m␤FAILED 00:02 116m␤»
20:11 Su-Shee left #perl6
20:12 diakopter ok... I guess braces are required?
20:12 moritz_ without braces it will do a smartmatch
20:12 diakopter std: multi sub infix:<+>(Int $a where { $a == 1 }, Int $b) { 5 }
20:12 p6eval std 28858: OUTPUT«ok 00:02 113m␤»
20:12 diakopter oh
20:12 diakopter std bug then?
20:12 moritz_ so it smartmatches 3 against  3 == 1
20:12 moritz_ 3 against False
20:12 moritz_ which is... False
20:13 moritz_ still doesn't make much sense
20:13 moritz_ let's just say it's confused ;-)
20:13 diakopter but should std accept that?
20:13 moritz_ dunno, but the error message looks like LTM fail to me
20:13 moritz_ it talks about infix =
20:14 moritz_ instead of infix ==
20:15 diakopter std: multi sub infix:<+>(Int $a where $a 4, Int $b) { 5 }
20:15 p6eval std 28858: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse signature; couldn't find final ')' at /tmp/3oDqkAC0FH line 1:␤------> [32mmulti sub infix:<+>(Int $a where $a [33m⏏[31m4, Int $b) { 5 }[0m␤    expecting any of:␤   bracketed infix␤  constraint␤       infix stopper␤    param_sep␤
20:15 p6eval ..   standard stopp…
20:15 dalek rakudo: af3872d | moritz++ | docs/announce/2009-10:
20:15 dalek rakudo: [docs] initial release annoce for 2009-10
20:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/af3872d005f4cb824628919bce68c6c6cd89e854
20:15 dalek rakudo: 7e34de6 | moritz++ | docs/ChangeLog:
20:15 dalek rakudo: mention new signature binder in ChangeLog
20:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7e34de6e0a2a7b71545222d6270cb75ace5e127c
20:15 moritz_ PerlJam: the release announce is mostly just a stub, feel free to change it any way you like
20:16 lumi joined #perl6
20:17 [particle]1 joined #perl6
20:18 diakopter std: multi sub infix:<+>(Int $a where $a = 4, Int $b) { 5 }
20:18 p6eval std 28858: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't put required parameter after optional parameters at /tmp/KWnr1eUMRr line 1:␤------> [32mub infix:<+>(Int $a where $a = 4, Int $b[33m⏏[31m) { 5 }[0m␤    expecting any of:␤    constraint␤       parameter␤       trait␤   whitespace␤FAILED
20:18 p6eval ..00:02 116m␤»
20:18 diakopter well that's certainly a bug
20:20 dalek rakudo: 95d2f43 | moritz++ | lib/Safe.pm:
20:20 dalek rakudo: disallow IO::Socket in Safe.pm
20:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/95d2f4362909c2e71e7f5a3e4a32fb4d1af02351
20:23 hercynium joined #perl6
20:31 pinchyfingers joined #perl6
20:37 dalek rakudo: 26bf858 | (Kyle Hasselbacher)++ | docs/announce/2009-10:
20:37 dalek rakudo: [announce/2009-10] typo fixes
20:37 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/26bf85824b17d1fae83fb9b331c6cb056e806d84
20:38 moritz_ Infinoid: any news on getting the CREDITS file from parrot and rakudo merged for dalek?
20:38 moritz_ (feel bothered)
20:45 pugs_svn r28860 | moritz++ | [t/spec] tests for RT #69228, calling methods from a grammar
20:49 dalek rakudo: ec7e91e | moritz++ | t/spectest.data:
20:49 dalek rakudo: add S05-grammar/methods.t to spectest.data
20:49 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/ec7e91e7fd8ae1517d53a213b4f53d847efd77ac
20:55 moritz_ KyleHa: ping
20:55 KyleHa Pong.
20:56 moritz_ KyleHa: I'm currently looking at Test::Util...
20:56 KyleHa OK.
20:56 moritz_ specifically lines 43..52
20:57 KyleHa That's the given expected...
20:57 moritz_ without the $diag_ok it could just be unified to $attr_good = $got{$attr} ~~ %expected{$attr};
20:57 moritz_ because $thing ~~ $code actually invokes $code with argument $thing
20:58 KyleHa Far out.  I had no idea.
20:58 moritz_ but I don't understand why the you set $diag_ok unconditionally in the default case
20:58 moritz_ is there a good reason for that?
20:59 moritz_ if not, I'd just simplify it away
20:59 KyleHa That's the only one where I think the expected thing is a string which I can meaningfully output in the 'diag()' call later.
20:59 moritz_ ah.
20:59 moritz_ that makes sense
21:00 moritz_ so that's something I can factor out easily
21:00 moritz_ $diag_ok = %expected{$attr} ~~ Str|Num
21:00 moritz_ or something
21:00 KyleHa Yes.
21:02 moritz_ rakudo: class Foo { method BUILD() { } }
21:02 p6eval rakudo ec7e91: TIMED_OUT
21:03 moritz_ that should produce a warning, which I'm trying to test with Test::Util
21:03 lumi joined #perl6
21:04 KyleHa It says to me, "BUILD declared as a method; you probably wanted to declare it as a submethod."
21:04 moritz_ aye
21:04 moritz_ woot
21:05 moritz_ this is beautiful it makes me weep ;-)
21:05 KyleHa Heh.
21:05 moritz_ you'll see the commit in a minute ;-)
21:06 KyleHa I'm looking forward to it.  8-)
21:06 moritz_ { out => '', err => /BUILD/ & /submethod/ },
21:06 pugs_svn r28861 | moritz++ | [t/spec] simplify Test::Util to use smart-matching more generally
21:06 pugs_svn r28862 | moritz++ | [t/spec] test for RT #66120, a method BUILD should warn
21:06 moritz_ using smartmatching means I can just us a junction of regexes
21:07 moritz_ all for free ;-)
21:07 KyleHa That's really cool!
21:08 moritz_ and that's not limited to this testing utility - *everything* that uses smartmatching gets it for free
21:08 moritz_ KyleHa++ # for Test::Util, and making my life easier
21:09 KyleHa moritz_++   #  code review and lesson in smartmatching
21:09 moritz_ I've started to read http://www.itworld.com/open-source/78271/mentoring-open-source-communities-what-works-what-doesnt?page=0%2C0 which has been recommended on perlmonks
21:10 moritz_ maybe we can get explicit mentoring in the Perl 6 community
21:11 KyleHa I'll start reading that, thanks.  8-)
21:12 moritz_ who would be willing to mentor newbies? please raise hands!
21:12 moritz_ I would, and I think I already do, more or less
21:12 __ash__ so... has anyone tried using parrot/rakudo in the iphone yet?
21:14 __ash__ since parrot's just plain C (and some perl pre-processoring) it should work just fine, i think i am going to try that, and see if Link::C works with ObjC, would be neat if you could, then you could write iPhone apps in perl6
21:16 KyleHa moritz_: I agree, you already do mentor newbies.
21:17 __ash__ moritz_: i'd help with the mentoring, but i wouldn't really qualify myself as a very experienced perl user, but if i have to explain it to someone else it forces me to understand it better
21:19 jnthn moritz_: If I get hungry and eat my newbie by accident, is that a failure?
21:19 jnthn I mean, uh, I can probably mentor.
21:19 jnthn :-)
21:20 moritz_ __ash__: well, you can still help, pointing people to the right websites, and to tell them whom to ask about specific question
21:20 jnthn .oO( must learn to be nice )
21:20 moritz_ pmichaud for regexes, jnthn for multi dispatch, me for test suite etc.
21:20 moritz_ jnthn: eating newbies is fine, if you later share a beer with them ;-)
21:21 PerlJam digested newbie + beer doesn't sound at all appetizing ;)
21:23 Confield_ joined #perl6
21:27 __ash__ so.... proto keeps complaining about: Use of uninitialized value in -d at ./proto line 33.
21:27 __ash__ umm, masak made proto right?
21:27 jnthn Yes
21:28 tak11 joined #perl6
21:28 jnthn __ash__: Also, masak really likes to receive bug reports. Encourage people to file them! ;-)
21:28 moritz_ but not the installed-modules branch (if that's what you're looking at)
21:28 jnthn .oO( mwahaha )
21:28 masak joined #perl6
21:28 masak oh hai
21:28 moritz_ indeed he does. There's a bug tracker on github for proto
21:28 jnthn masak++!
21:28 __ash__ lol, i notice all the bug reports he puts in on rakudo
21:28 jnthn ;-)
21:29 __ash__ masak: have you seen Use of uninitialized value in -d at ./proto line 33. with proto?
21:29 masak __ash__: don't think I have, no.
21:29 Confield_ left #perl6
21:29 masak feel free to ticket it.
21:29 masak I just came in to comment a bit on http://rt.perl.org/rt3/Ticket/Display.html?id=68086
21:30 masak we discussed it earlier today, or was it yesterday?
21:30 masak anyway, it's not an error, by our current knowledge.
21:30 Whiteknight joined #perl6
21:30 masak hence, the test is wrong.
21:30 __ash__ hmmm i removed me config file to let it regenerate it, and now it does: "Building proto...done Segmentation fault"
21:30 masak :/
21:30 __ash__ hmm
21:30 masak I'm pretty sure it shouldn't do that.
21:31 moritz_ masak: re ticket, what should rakudo do?
21:31 masak on the bright side, it got done building proto :>
21:31 masak moritz_: complain, according to me.
21:31 __ash__ lol
21:31 masak 's likely wrong having two of the same.
21:31 moritz_ then why is the test wrong?
21:31 masak unless they're anonymous, 'course.
21:31 masak moritz_: because it's eval_dies_ok
21:31 masak it's not _that_ wrong.
21:31 __ash__ is there a like verbose flag or something i can set on proto? to find where its seg faulting
21:32 masak std: sub foo($a, $a) {}
21:32 p6eval std 28862: OUTPUT«Potential difficulties:␤  Useless redeclaration of variable $a (from line 1) at /tmp/Fc0W5HGtDg line 1:␤------> [32msub foo($a, [33m⏏[31m$a) {}[0m␤ok 00:01 107m␤»
21:32 moritz_ and you think it shouldn't be detected at compile time?
21:32 masak __ash__: no, just the old, hard way.
21:32 __ash__ i have perl v5.8.9 (which version does proto need/recommend?)
21:32 masak moritz_: didn't say that.
21:32 masak moritz_: just saying STD.pm approves, but complains.
21:32 masak moritz_: so maybe Rakudo should too.
21:33 masak __ash__: it doesn't do anything fancy in Perl 5. just enough to get Perl 6 running.
21:33 jnthn masak: Aye, it's only a warning.
21:34 __ash__ masak: so its calling perl 6 eventually in there? (I haven't checked the script yet) so it might be perl 6 thats dying?
21:34 jnthn We can have a ticket saying it's missing the warning that STD gives.
21:34 masak __ash__: aye. my guess is that it's Perl 6 dying.
21:34 moritz_ well, just because STD.pm doesn't fatally complain doesn't mean it has to survive compilation
21:34 masak __ash__: does the segmentation fault occur on a separate line, or on the same line as 'done'?
21:35 moritz_ IMHO it's best to wait for an explicit spec clarification on that one
21:35 masak moritz_: well, do you find anything in the spec that says it isn't allowed?
21:35 __ash__ masak: alright, ima run my rakudo tests real fast, to make sure its not rakudo
21:35 __ash__ new line
21:35 masak __ash__: then I'll bet it's Perl 6 dyin'.
21:35 __ash__ kk, i am going to run my rakudo tests to see if i can find the place its dying
21:35 moritz_ masak: no. But does it have defined semantics?
21:36 jnthn Only in so far as, we bind the signature left to right.
21:36 jnthn That is spec'd.
21:36 jnthn So we know that having the first parameter's value in $a would be wrong by the spec, for example.
21:36 jnthn It should either do what Rakudo does now, or be a compile time failure, anyway, imo.
21:37 masak I see no reason not to be strict here.
21:38 * moritz_ would vote for compile-time error too
21:38 jnthn You'd have to do something fairly convoluted to actual make it useful. ;-)
21:38 jnthn I suspect compile time error will catch mistakes and get in the way of nothing useful.
21:39 jnthn So gets my vote too.
21:41 masak then we just need to make sure that the spec aligns with the spectest. :)
21:42 moritz_ masak: I'm currently distracted, so if you don't get to it I'll do it
21:42 moritz_ s/so/but/
21:42 moritz_ in half an hour or so
21:43 masak I'm distracted too, but I'll give it half a shot.
21:43 masak good to know you're there as a backup should I fail or forget.
21:48 jnthn After dealing with $emergency, /me works on finishing up the attributive parameters patch
21:52 __ash__ masak: should the Rakudo directory be /usr/local if i have it installed in /usr/local?
21:53 masak sounds about right.
21:53 masak I don't really know how proto will deal with an installed Rakudo. :/
21:53 __ash__ will that add stuff to /usr/local/lib/proto? or something?
21:53 __ash__ hmm
21:54 masak no, the Rakudo dir and the projects dir are separate beasts.
21:54 pugs_svn r28863 | jnthn++ | [t/spec] Unskip/untodo and correct some tests for attributive parameters.
21:55 jnthn There we go. :)
21:56 __ash__ so the project dir is where things end up?
21:56 __ash__ is it bad that i installed perl6 and parrot?
21:56 __ash__ since i am trying to use proto, i mean
21:57 __ash__ does perl 6 have a normal lib dir it checks? like /usr/local/rakudo/?
21:57 colomon What's the syntax for using ... to get a series that counts by 1/3s?
21:57 dalek rakudo: 0f6203f | jonathan++ | src/ (5 files):
21:57 dalek rakudo: Implement attributive parameters.
21:57 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0f6203f4eab647667f7408b2a47b36fa936249ef
21:57 colomon __ash__: pretty sure perl 6 does not have a normal lib dir.  yet.
21:57 __ash__ ah
21:57 __ash__ hm
21:57 __ash__ sad day
21:57 masak colomon: 0, 1/3 ... *
21:57 colomon masak: that works?!
21:58 masak colomon: dunno.
21:58 masak __ash__, colomon: ~/.perl6/lib
21:58 masak or some such. I forget.
21:58 masak thank mberends++ for sneaking in that one. :)
21:58 moritz_ yes, that's the dir
21:58 colomon masak: that's actually in rakudo now?!  \o/
21:58 __ash__ sweet
21:59 colomon rakudo: say (0, 1/3 ... 3)
21:59 p6eval rakudo ec7e91: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in Main (file src/gen_setting.pm, line 288)␤»
21:59 colomon rakudo: say (0/1, 1/3 ... 3/1)
21:59 p6eval rakudo ec7e91: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in Main (file src/gen_setting.pm, line 288)␤»
21:59 colomon rakudo: say (0, 0.1 ... 3)
21:59 p6eval rakudo ec7e91: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in Main (file src/gen_setting.pm, line 288)␤»
21:59 masak that's cmp which can't handle Rat right there.
21:59 masak fix that, and you'll have your nice syntax.
21:59 colomon Rat or Num?
22:00 moritz_ right
22:00 masak Rat, for sure.
22:00 colomon sure, make me fix rakudo.  ;)
22:00 colomon any idea what src/setting file I should be looking at?
22:01 colomon oh, operators.pm
22:01 colomon or is it cmp that needs to be fixed?
22:02 moritz_ it is cmp... is that in the setting yet?
22:02 moritz_ btw isn't cmp one of those operators that should dispatch to a method?
22:02 colomon cmp is not in the setting yet.
22:03 * colomon thinks that probably rules out fixing the bug while cooking dinner...
22:03 moritz_ ;-)
22:04 pugs_svn r28864 | masak++ | [S06] same-named non-anon positionals are a compile error
22:04 moritz_ I thought the spec had an example of providing two or three different names for the same named parameter
22:04 jnthn moritz_: Me too
22:04 moritz_ but ack ':\w+\(\w+\/' doesn't find it
22:04 masak we'll sort out contradictions as they come. :)
22:04 jnthn moritz_: The new binder supports 'em too, we just don't parse them yet.
22:04 alester what are you trying to find that has a trailing slash?
22:05 alester and you don't need to quote that trailing slash.
22:05 alester not that that should matter.
22:05 jnthn moritz_: Also, why the trailing slash? :-)
22:05 jnthn Should it not be a ( ?
22:06 moritz_ erm
22:06 jnthn moritz_: yes, there is one
22:06 jnthn sub globalize (:g(:global($gl))) {...}
22:06 lumi joined #perl6
22:06 moritz_ ack ':\w+\(\w+\(' is what I meant to type
22:06 jnthn :-)
22:06 moritz_ ah, missing the second :
22:07 jnthn Ah, that too :-)
22:08 moritz_ masak: (r28864) is there a good reason to limit that to positional parameters?
22:08 masak moritz_: it's like this.
22:09 masak oh wait.
22:09 moritz_ sub x($a, :b(:a($y))) { ... }
22:09 masak the currently specced things about duplicate nameds is about duplicate named _arguments_.
22:09 dalek rakudo: 073d5ed | jonathan++ | docs/ChangeLog:
22:09 dalek rakudo: Additions to ChangeLog.
22:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/073d5ed56de213dba56e9857ae4d6a4c0f3fe92b
22:09 jnthn Right.
22:09 masak (which I'd love to see gone, too)
22:09 jnthn And I'm not even sure tre a good idea.
22:10 jnthn I would *so* love to see those gone.
22:10 masak moritz_: feel free to edit away 'positional' from my paragraph.
22:10 masak I'm heading off to bed.
22:10 moritz_ good night
22:10 masak see y'all tomorrow.
22:10 jnthn It's like, you have a parameter :@foo, and suddenly just because two :foo(...) arguments were passed, the fact that it was meant to be passed 1 thingy that does Positional matters no more.
22:10 jnthn night masak
22:10 * masak tips his hat
22:15 pugs_svn r28865 | moritz++ | [S06] extend uniq name constraint to named parameters too
22:23 __ash__ joined #perl6
22:37 diakopter mberends: any thoughts/comments?
22:37 mberends :)
22:37 pugs_svn r28866 | mberends++ | [sprixel] add operators - ~ and x similar to +
22:38 Confield joined #perl6
22:39 mberends I feel uncertain whether this is the right place for all operators, it didn't work for ==, eq
22:40 japhb rakudo: fail "foo"
22:40 p6eval rakudo 073d5e: OUTPUT«Can't return outside a routine␤in Main (file <unknown>, line <unknown>)␤»
22:40 japhb Known?
22:40 japhb Certainly LTA
22:40 moritz_ I've seen that before, don't know if it's ticketed
22:41 japhb And us without a masakbot
22:41 moritz_ ;-)
22:41 mberends sprixel: say "V8 " x 8
22:41 p6eval sprixel 28865: OUTPUT«NYI: infix__S_x␤»
22:43 japhb rakudo: sub foo { fail "foo" }; foo()
22:43 p6eval rakudo 073d5e:  ( no output )
22:43 japhb It seems fail is full of FAIL
22:43 mberends sprixel: say 11111222223333344444 + 22222333334444455555
22:43 p6eval sprixel 28865: OUTPUT«33333555557777799999␤»
22:44 japhb Which VM does sprixel run on?
22:44 japhb V8?
22:44 mberends yup
22:44 jnthn japhb: Why is it less than awesome?
22:45 japhb Is that an intrinsic limitation, or just hysterical raisins?
22:45 lumi joined #perl6
22:45 jnthn japhb: fail is just a return that happens to return a Failure object.
22:45 japhb jnthn, I fully admin I may be just really out of date, but shouldn't fail be caught at the top level and at least say something that includes the fail message?
22:45 japhb er, admit
22:46 mberends sprixel: sub f { say "foo" }; f
22:46 jnthn I think in void context it may well be meant to give the message there and then.
22:46 p6eval sprixel 28865: OUTPUT«Sprixel Error: TypeError: Cannot read property 'T' of undefined␤»
22:46 diakopter heh
22:46 Tene perl6: fail "O HAI"
22:46 p6eval pugs: OUTPUT«*** Cannot use this control structure outside a 'routine' structure␤    at /tmp/uE3e4QYYRc line 1, column 1 - line 2, column 1␤»
22:46 p6eval ..rakudo 073d5e: OUTPUT«Can't return outside a routine␤in Main (file <unknown>, line <unknown>)␤»
22:46 p6eval ..elf 28866: OUTPUT«Undefined subroutine &GLOBAL::fail called at (eval 124) line 3.␤ at ./elf_h line 5881␤»
22:47 pmichaud no, fail in void context needs to do a return
22:47 diakopter sprixel: sub f { say "foo" }; f "noop"
22:47 japhb jnthn, that would make more sense in the DWIM way
22:47 pmichaud but at the top level it needs to be caught somehow
22:47 p6eval sprixel 28865: OUTPUT«foo␤»
22:47 jnthn pmichaud: I meant if you call something that fails in void context.
22:47 pmichaud oh, that might be.
22:47 jnthn sub foo { fail "omg out of beer" }; foo; # this doesn't discard the failure, iirc.
22:48 mberends sprixel: sub f { say "foo" }; f()
22:48 p6eval sprixel 28865: OUTPUT«foo␤»
22:48 diakopter heh
22:49 diakopter yeah, the double-parsing of the setting really adds a lot of time/overhead.
22:50 mberends that's okay for now, it's more important to broaden the functionality
22:50 diakopter it wouldn't need parsed at all by STD (because STD would use the .syml files when parsing the input text with the setting, and sprixel would load the setting context/interpreter state from disk)
22:50 tak11 joined #perl6
22:50 dalek nqp-rx: 725c893 | pmichaud++ | src/ (3 files):
22:50 dalek nqp-rx: Clean up quote handling a bit.  Work around TT #1125 by avoiding
22:50 dalek nqp-rx: PIR-escaped characters in method names.
22:50 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/725c893210923b602604d2ec7224f854c3d492b2
22:50 dalek nqp-rx: 86d5495 | pmichaud++ | src/HLL/ (2 files):
22:50 dalek nqp-rx: More quoting escapes, better handling of quote constructs.
22:50 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/86d5495a17579ec316b0c59d6b9c49ec83f3d335
22:50 dalek nqp-rx: 64c960f | pmichaud++ | src/NQP/ (2 files):
22:50 dalek nqp-rx: Add Q quoting form to NQP.
22:50 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/64c960feba5ac8b5b616b2837e97441f262d3747
22:50 dalek nqp-rx: b917679 | pmichaud++ | src/NQP/ (2 files):
22:50 dalek nqp-rx: Add single angle bracket quoting to NQP (non-splitting for the moment).
22:50 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/b9176794f22989fa5f8dd3be9b073ed4fe9fc47c
22:51 mberends diakopter: sure :)
22:51 japhb perl6: sub foo {fail "foo" }; my $foo = foo(); say "bar: $foo";
22:51 p6eval elf 28866: OUTPUT«Undefined subroutine &GLOBAL::fail called at (eval 129) line 5.␤ at ./elf_h line 5881␤»
22:51 p6eval ..pugs: OUTPUT«*** foo␤    at /tmp/iGkYfb1i23 line 1, column 29-39␤       /tmp/iGkYfb1i23 line 1, column 10-21␤»
22:51 p6eval ..rakudo 073d5e: OUTPUT«foo␤bar: ␤»
22:52 japhb rakudo: sub foo {fail "foo" }; my $foo = foo(); say "bar: " ~ $foo;
22:52 p6eval rakudo 073d5e: OUTPUT«foo␤bar: ␤»
22:53 japhb What's the proper way to get the failure message out of a Failure?
22:53 __ash__ japhb: a CATCH?
22:54 japhb __ash__, really?  That seems kinda heavy weight for something like fail, which I imagine to be light weight.
22:54 japhb "light" in the sense of "can be treated as fatal or nonfatal, and DWIMs either way"
22:54 japhb Maybe an error in my expectations.
22:54 jnthn Indeed - CATCH is for exceptions.
22:55 jnthn As in, die
22:55 jnthn rakudo: sub foo { fail "oh noes" }; my $x = foo; say $x.WHAT
22:55 p6eval rakudo 073d5e: OUTPUT«Failure()␤»
22:55 jnthn that's right then...
22:55 jnthn rakudo: sub foo { fail "oh noes" }; my $x = foo; say $x.^methods
22:55 p6eval rakudo 073d5e:
22:55 p6eval ..OUTPUT«definedhandledACCEPTSperlacosroundchoptanhsplitexpmatchacoshwordscancotanatan2lcfirstucsrandkeysmappolarcislogsubstrminmaxpickfirsttransevalfilesinIntacosecjoinsubstsinhcosechacosechabselemsendchompindexceilingtrimp5chompasecpairssechordrandtruncatesortrindexsqrtasinintatanhcoshcos…
22:55 jnthn rakudo: sub foo { fail "oh noes" }; my $x = foo; say $x.^methods(:local)
22:55 p6eval rakudo 073d5e: OUTPUT«definedhandledperlACCEPTS␤»
22:56 jnthn Hmm.
22:56 jnthn rakudo: sub foo { fail "oh noes" }; my $x = foo; say $x
22:56 japhb rakudo: sub foo {fail "foo" }; my $foo = foo(); say "bar: " ~ $foo.perl;
22:56 __ash__ or for a more readable
22:56 diakopter mberends: what do you mean it's not the right place to put ==  ?
22:56 p6eval rakudo 073d5e: OUTPUT«oh noes␤␤»
22:56 p6eval rakudo 073d5e: OUTPUT«bar: undef␤»
22:56 __ash__ rakudo: sub foo { fail "oh noes" }; my $x = foo; say ~$x.^methods
22:56 p6eval rakudo 073d5e: OUTPUT«defined  handled ACCEPTS perl cosech lcfirst roots map cis comb log atan min acos max bytes chop sin 1 tanh 1 values asinh acosech abs end ceiling p5chomp keys kv floor asech ord capitalize pick round 1 1 split 1 acosh words p5chop lc join sinh cotan acotan atan2 srand reduce
22:56 p6eval ..trim …
22:56 __ash__ aww it trimmed it
22:57 diakopter mberends: oh! I didn't see you added stuff
22:57 jnthn I only cared about the local ones anyway.
22:57 jnthn rakudo: sub foo { fail "oh noes" }; my $x = foo; my $message = ~$x; say $message;
22:57 p6eval rakudo 073d5e: OUTPUT«oh noes␤␤»
22:57 jnthn ah, there's a way
22:57 diakopter mberends: say 433 - 55
22:57 diakopter mberends: oh, you're not sprixel
22:57 diakopter sprixel: say 433 - 55
22:57 japhb jnthn, that's lying.  As soon as you ~'ed it, it got errored out.  You didn't actually capture the message.
22:58 p6eval sprixel 28866: TIMED_OUT
22:58 jnthn japhb: oh, damm
22:58 diakopter heh
22:58 jnthn japhb: You're right.
22:59 jnthn I can only guessed there's a spec'd way that Rakudo just doesn't implement yet.
22:59 japhb jnthn, OK, fair enough.
22:59 jnthn We obviously store it in there.
22:59 jnthn So in theory it's just returning an attribute.
22:59 * japhb goes back to using die ...
22:59 japhb nodnod
22:59 mberends mberends r28866: 433 - 55, er, a tad under 400?
23:00 __ash__ rakudo: sub foo {fail "foo" }; my $foo = foo(); say ~$foo.^attributes;
23:00 p6eval rakudo 073d5e: OUTPUT«Attribute()<0x2b9623a07260>␤»
23:01 mberends sprixel was not up to the last commit when it was last eval'ed
23:01 Confield Des Perl 6 hope to have a performance improvement over 5?
23:01 diakopter sprixel: say 433 - 55
23:02 p6eval sprixel 28866: OUTPUT«378␤»
23:02 mberends sprixel: say "V8 " x 8
23:02 diakopter Confield: hope springs eternal.
23:02 p6eval sprixel 28866: OUTPUT«V8 V8 V8 V8 V8 V8 V8 V8 ␤»
23:03 jnthn So in theory it's just returning an attribute.rakudo: sub foo {fail "foo" }; my $foo = foo(); say $foo.^attributes>>.name;
23:03 jnthn gah, what
23:03 jnthn rakudo: sub foo {fail "foo" }; my $foo = foo(); say $foo.^attributes>>.name;
23:03 p6eval rakudo 073d5e: OUTPUT«$!exception␤»
23:03 jnthn There ya goes.
23:03 __ash__ rakudo: sub foo {fail "foo" }; my $foo = foo(); say $foo.exception;
23:03 p6eval rakudo 073d5e: OUTPUT«Method 'exception' not found for invocant of class 'Failure'␤in Main (file src/gen_setting.pm, line 295)␤»
23:03 __ash__ failure :-(
23:03 mberends sprixel: say "a" eq "a"
23:03 japhb Confield, as someone not actually implementing Perl 6, eventually I expect some things will be faster and some slower.  Perl 6 as specced is considerably more powerful than Perl 5, which would slow things down, but it is also capable of certain optimizations that Perl 5 is not.
23:03 p6eval sprixel 28866: OUTPUT«NYI: Chaining␤»
23:04 jnthn __ash__: well yes, there isn't a method, just an attribute
23:04 jnthn The question is what the method should be called.
23:04 jnthn :-)
23:04 __ash__ there is no way to read the value of the attribute though?
23:05 mberends diakopter: ^^ was hindering multi sub infix:<eq>
23:05 Confield japhb: thanks.
23:06 diakopter mberends: yeah... I haven't yet ported over Chaining from the previous sprixel
23:06 mberends ok, I can sleep while U do it ;)
23:06 diakopter heh
23:06 japhb Confield, np
23:08 mberends bedtime \o
23:09 diakopter rakudo: say "hi" x 0
23:09 p6eval rakudo 073d5e: OUTPUT«␤»
23:09 diakopter pug: say "hi" x 0
23:09 diakopter pugs: say "hi" x 0
23:09 p6eval pugs: OUTPUT«␤»
23:23 Confield So it's probably not going to be as fast as Java, right?...that's what I should of asked instead of comparing it to 5. Thanks again.
23:24 jnthn Confield: I imagine for many things, the developer time it takes to do the same task in Java will probably outweigh the savings achieved by faster runtime anyway.
23:24 jnthn Runtime performance is just one consideration when considering the overall efficiency of working in a language.
23:25 jnthn And as japhb said, it depends entirely on the problem domain.
23:25 jnthn It'll vary between tasks.
23:26 japhb Confield, also note that the people writing Java VMs have had a LOT of time to invent new ways to be efficient.  We're now seeing the same thing happening in the web browser JavaScript VM space.  I expect that down the line the same thing will happen in the Perl 6 VM space.
23:27 jnthn *nod*
23:28 jnthn On top of that, Perl 5 has also had time to be optimized.
23:28 japhb Confield, the history of new languages is that they are almost always slower than their predecessors (unless being faster was their primary goal) until people have time to figure out how to optimize them.
23:30 japhb Confield, over the weekend I was just reading an academic paper from the 90's that explained that common wisdom was that functional languages simply could not be as fast as imperative languages.  The paper then went on to explain why this was untrue -- it's just that researchers in algorithmic complexity did not previously have the tools to understand why, or to make faster data structures for them.
23:32 japhb When in doubt, bet on history repeating itself.  :-)
23:34 lumi joined #perl6
23:37 japhb What does the error message 'rtype not set' mean?
23:37 japhb (from Rakudo)
23:42 szabgab joined #perl6
23:42 japhb jnthn, pmichaud?  I'm particularly stumped because the error message claims unknown line number
23:44 japhb Hmmm.  Is 'is rw' broken in Rakudo?
23:44 quietfanatic joined #perl6
23:44 japhb That would be the single biggest change I made since the last time this code worked -- changing a couple hash parameters to 'is rw' and changing them directly, rather than making new hashes.
23:46 Confield jnth, japhb: I guess I should of included fast and/or powerful instead of just 'is it *fast*'. I'm new to obviously new to programming languages. :) Thanks again for the reply back, I appreciate it...that helped.
23:47 japhb Confield, you're welcome
23:47 tak11 joined #perl6
23:47 ihrd joined #perl6
23:49 jnthn japhb: Are you trying to do binding to a hash or array element?
23:50 japhb jnthn, yes.
23:50 jnthn japhb: Do assignment instead. :-)
23:50 japhb jnthn, Ah.
23:50 japhb Is that a Rakudo-ism, or a genuine Perl 6 thing?
23:50 jnthn Rakudo-ism. Generally assignment will work out a lot better than binding in Rakudo right now.
23:51 jnthn And yes, we'll fix it. :-)
23:51 japhb jnthn, Ah, OK, thanks.  I've gotten used to binding because of all the NQP code I've been writing.  :-)
23:51 jnthn I think we even discussed how to fix it. I hope pmichaud++ remembers what we came up wiht. :-)
23:51 jnthn Well, I think *he* came up with it anyway, and I just nodded and smiled and agreed it should work. :-)
23:52 Limbic_Region joined #perl6
23:56 jnthn oh yay...I'd thought my flight on Thursday was teh early, but it's not until 11:35am. \o/
23:57 japhb jnthn, where are you headed?

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

Perl 6 | Reference Documentation | Rakudo