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