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