»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:08 xilo_ joined
[Coke] sorear: no, I'm in NYS. 00:12
sorear new york state? 00:13
[Coke] aye.
00:14 fgomez left
sorear waves from the far corner 00:15
00:24 Gryllida left 00:39 jerome left 00:43 bowtie left 00:49 Chillance left
[Coke] "nobody puts sorear in the corner!" 00:50
00:52 jerome joined 00:54 fgomez joined 00:59 anuby joined 01:03 rindolf left 01:08 hypolin joined 01:11 atrodo left 01:20 raiph joined 01:22 araujo joined, araujo left, araujo joined 01:31 araujo left 01:35 colomon joined
colomon o/ 01:36
01:37 araujo joined, araujo left, araujo joined 01:47 LordVorp left 01:48 LordVorp joined 01:51 ifim left
sorear colomon: o/ 01:56
02:06 gootle joined
colomon sorear! 02:09
colomon was called away to convince a four-year-old to stay in his bed long enough to fall asleep. 02:10
02:12 chee left 02:16 tokuhir__ left 02:17 tokuhiro_ joined 02:19 chee joined 02:39 jerome left 02:47 thou left
[Coke] Is there any way to get RT to NOT wrap code? 02:51
(inline)
rakudo: my @a=<a a a>;my @b=<b b b>;for (@a »,« @b) »,« @a -> $a, $b, $c { say "$a $b $c" } 02:52
p6eval rakudo bf472b: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<,> are not of the same length␤left: 6 elements, right: 3 elements␤ in sub hyper at src/gen/CORE.setting:12486␤ in block at src/gen/CORE.setting:12465␤ in block at /tmp/GBnT_CV1IK:1␤␤»
02:53 jerome joined 02:54 whiteknight left
[Coke] r: say slurp.comb(/e/).elems 02:56
p6eval rakudo bf472b: OUTPUT«88␤»
[Coke] rakudo: print 1|2|3; 02:57
p6eval rakudo bf472b: OUTPUT«This type cannot unbox to a native string␤ in method print at src/gen/CORE.setting:7644␤ in sub print at src/gen/CORE.setting:7454␤ in block at /tmp/D6moFCSwqN:1␤␤»
[Coke] p6: say (-8) div 3 02:58
p6eval niecza v22-33-gda13155: OUTPUT«-3␤»
..rakudo bf472b: OUTPUT«-2␤»
02:58 fgomez left 03:00 fgomez joined
[Coke] r: class Foo is Int {}; sub somefoo returns Foo { Foo.bless: 13 }; say somefoo.WHAT; 03:01
p6eval rakudo bf472b: OUTPUT«Type check failed for return value; expected 'Foo' but got 'Int'␤ in block at /tmp/0HmviE5viM:1␤␤»
[Coke] perl6: my @odd = 1,3,5 ... 8; say @odd[^4] 03:02
p6eval rakudo bf472b, niecza v22-33-gda13155: OUTPUT«(timeout)»
03:02 xinming left
grondilu r: class Foo is Int {}; sub somefoo returns Foo { self.bless: *, 13 }; say somefoo.WHAT; 03:02
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤'self' used where no object is available␤at /tmp/18498C32Ur:1␤»
[Coke] perl6: my @odd = 1,3,5 ... *; say @odd[^4] 03:03
p6eval rakudo bf472b: OUTPUT«1 3 5 7␤»
..niecza v22-33-gda13155: OUTPUT«(timeout)»
grondilu r: class Foo is Int {}; sub somefoo returns Foo { Foo.bless: *, 13 }; say somefoo.WHAT;
p6eval rakudo bf472b: OUTPUT«Foo()␤»
[Coke] nieczabug there.
03:03 popl joined
[Coke] (and both-bug the first time.) 03:03
grondilu: see RT #112850 03:04
r: for my $/ ();
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Redeclaration of symbol $/␤at /tmp/xEoQYkfkHM:1␤»
03:05 grondilu_ joined
[Coke] my @a := 1..*; @a := @a[1, 3 ... *].list 03:06
03:06 grondilu_ left, xinming joined
[Coke] r: print 'a'.WHAT; 03:06
p6eval rakudo bf472b: OUTPUT«use of uninitialized variable $v of type Str in string context in block at /tmp/ifaRM5PyGQ:1␤␤»
03:07 grondilu_ joined 03:08 grondilu left 03:09 grondilu_ is now known as grondilu, grondilu left, grondilu joined
[Coke] r: 1.++() 03:11
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&postfix:<.>' called (line 1)␤»
[Coke] rakudo: say "\xFFFE" 03:12
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Invalid character for UTF-8 encoding␤␤»
[Coke] seen lue?
aloha lue was last seen in #perl6 1 days 4 hours ago saying "good knight, masak o/".
lue hello?
[Coke] phenny: ask lue to please followup on rt.perl.org/rt3/Ticket/Display.html?id=73784
phenny [Coke]: I'll pass that on when lue is around.
[Coke] ^^
lue recalls not this bug, and investigates 03:13
phenny lue: 03:12Z <[Coke]> ask lue to please followup on rt.perl.org/rt3/Ticket/Display.html?id=73784
[Coke] r: sub f($x) { return if $x == 1; state %h = a => 1; say %h.perl }; f 1; f 2; 03:14
p6eval rakudo bf472b: OUTPUT«().hash␤»
[Coke] r: say (-10..10).min: { abs $^a <=> abs $^b }
p6eval rakudo bf472b: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method <anon> at src/gen/CORE.setting:1794␤ in block at /tmp/Tt9S3OEnSH:1␤␤»
[Coke] moritz, masak, or jnthn : need feedback on rt.perl.org/rt3/Ticket/Display.html?id=76648 03:15
lue according to fileformat.info, FDD0 and FFFE aren't valid unicode characters (so I don't know what I was trying), but FFFD is, which didn't error out in my bug filing. 03:17
[Coke] rakudo: say "\xFFFD" 03:18
p6eval rakudo bf472b: OUTPUT«�␤»
[Coke] so, closable with tests?
lue r: say "\x[FD,D0],\x[FF,FD],\x[FF,FE]" # I wonder if I meant this
p6eval rakudo bf472b: OUTPUT«ýÐ,ÿý,ÿþ␤»
[Coke] r: say "\x[FE,12,10]" 03:19
p6eval rakudo bf472b: OUTPUT«þ␤»
03:19 benabik joined
lue Lemme check irclog for some context, but otherwise I'm sure it was more likely a bug in my brain. 03:19
Ah. I was first trying .u FDD0 (again for no discernible reason), then skipped to the suspect code. 03:21
r: say "\x[FDD0,FFFE]" # checking one more time 03:22
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Invalid character for UTF-8 encoding␤␤»
[Coke] r: say so Nan === NaN 03:23
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix === instead␤at /tmp/1TwjxqGvhF:1␤»
[Coke] r: say Nan === NaN
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix === instead␤at /tmp/LZ_pNCNQX6:1␤»
[Coke] r: say NaN === NaN
p6eval rakudo bf472b: OUTPUT«False␤»
[Coke] r: my \\a = any set <1 2 3>; \n say 1 ~~ a' 03:24
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Malformed my␤at /tmp/6z8KpoDs4s:1␤»
[Coke] r: my \a = any set <1 2 3>; \n say 1 ~~ a
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&n' called (line 1)␤»
[Coke] r: my \a = any set <1 2 3>; ␤ say 1 ~~ a 03:25
p6eval rakudo bf472b: OUTPUT«True␤»
lue I think I'll close the bug as INVALID, considering it's definitely my fault. (it was just me being stupid only a month after first joining #perl6) 03:27
[Coke] Wanother bug down, by hook or by crook. Danke. 03:29
lue Gerne. 03:30
[Coke] r: X[X]
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Method 'parameterize' not found for invocant of class 'Perl6::Metamodel::PackageHOW'␤»
sorear lue! \o/ 03:36
lue sorear! o/
sorear thought that Gerne was a mistyping of Schön, but apparently not 03:37
03:38 jerome left
lue I'm curious as to whether or not #73944 is still relevant considering the rewrites rakudo has since gone through. 03:39
[Coke] oh, hey, it's sorear, who is, I think, no longer stuck on rakudo builds. 03:40
r: say 288+364+5-87 #tickets 03:41
p6eval rakudo bf472b: OUTPUT«570␤»
03:42 fgomez left
[Coke] rakudo: grammar G { regex foo { } }; say "alive" 03:43
p6eval rakudo bf472b: OUTPUT«alive␤»
[Coke] std: grammar G { regex foo { } }; say "alive" 03:44
p6eval std d38bbd0: OUTPUT«===SORRY!===␤Null pattern not allowed at /tmp/WFRPKdpArH line 1:␤------> grammar G { regex foo { ⏏} }; say "alive"␤Parse failed␤FAILED 00:00 42m␤»
[Coke] . o O (zzz) 03:45
03:45 jaldhar joined 03:49 orafu left, orafu joined 03:51 jerome joined
sorear [Coke]: iirc, that's one of the old blizkost bugs 03:56
[Coke]: I'm pretty sure it's not relevant in the 6model age, feel free to close it
03:59 am0c joined 04:19 REPLeffect left 04:32 REPLeffect joined
grondilu Does it make sense to write sub { state $cache++ } ? 04:34
r: sub f { state $cache++ }; say f xx 3; 04:35
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix + instead␤at /tmp/QCcAzh45UH:1␤»
grondilu oh, I thought it was ok syntaxicaly. Nevermind.
geekosaur std: sub f { state $cache++}; say f xx 3; 04:36
p6eval std d38bbd0: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'xx' used at line 1␤Check failed␤FAILED 00:00 44m␤»
geekosaur std: sub f { state $cache++}; say f X 3;
p6eval std d38bbd0: OUTPUT«===SORRY!===␤Undeclared name:␤ 'X' used at line 1␤Check failed␤FAILED 00:00 44m␤»
geekosaur std: sub f { state $cache++}; say f, f, f
p6eval std d38bbd0: OUTPUT«ok 00:00 45m␤»
geekosaur does seem syntactically ok per std at leasr
n: sub f { state $cache++}; say f xx 3;
p6eval niecza v22-33-gda13155: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'xx' used at line 1␤␤Potential difficulties:␤ $cache is declared but not used at /tmp/oD8u12SNzA line 1:␤------> sub f { state ⏏$cache++}; say f xx 3;␤␤Unhandled exception: Check fail…
geekosaur your xx seems unhappy :p 04:37
n: sub f { state $cache++}; say f(), f(), f()
p6eval niecza v22-33-gda13155: OUTPUT«Potential difficulties:␤ $cache is declared but not used at /tmp/2oJmCiLI5t line 1:␤------> sub f { state ⏏$cache++}; say f(), f(), f()␤␤012␤»
geekosaur rakudobug?
or maybe this is one we;ve already seen
r: sub f { state $cache++; }; say f(), f(), f()
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix + instead␤at /tmp/TKoLd43UGz:1␤»
geekosaur not that one at least
note that niecza thinks it makes sense 04:38
lue std: say 3 xx 3;
geekosaur as does std
p6eval std d38bbd0: OUTPUT«ok 00:00 42m␤»
geekosaur right, may have been the f without parens
r: sub f { state $cache++; }; say f() xx 3
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix + instead␤at /tmp/905xXjKDH4:1␤»
geekosaur n: sub f { state $cache++; }; say f() xx 3
grondilu there is a 'state' feature pragma in perl5 and it accepts this syntax
p6eval niecza v22-33-gda13155: OUTPUT«Potential difficulties:␤ $cache is declared but not used at /tmp/hxhd2sUmA_ line 1:␤------> sub f { state ⏏$cache++; }; say f() xx 3␤␤0 1 2␤»
geekosaur didn;t switch
lue r: sub f { state $cache = 0; $cache++; }; say f() xx 3; 04:39
p6eval rakudo bf472b: OUTPUT«0 1 2␤»
geekosaur grondilu, did you follow at all what I did?
grondilu kind of. Did I miss something?
lue r: sub f { state $cache = 0; $cache++; }; say f xx 3;
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&xx' called (line 1)␤» 04:40
geekosaur it looks like it;s supposed to work but rakudo has a parsing bug
grondilu ok
geekosaur niecza and std both accept it and niecza even seems to do the expected thing with it
lue std: sub f { state $cache = 0; $cache++; }; say f xx 3;
p6eval std d38bbd0: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'xx' used at line 1␤Check failed␤FAILED 00:00 44m␤»
grondilu eval: use feature "state"; sub f { state $n++ }; say f for 0 .. 2; 04:41
buubot_backup grondilu: ERROR: syntax error at (eval 20) line 1, near "say f "
grondilu eval: use feature qw(state say); sub f { state $n++ }; say f for 0 .. 2;
buubot_backup grondilu: 0 1 2
lue Well, std also says f xx 3 doesn't work, so I'm not sure that's a bug (but it is strange and doesn't feel dwimmy to me). 04:42
grondilu it should work, shoudn't it? 04:43
geekosaur I thought p6 required the ()\
sorear f xx 3 is unlikely to work
geekosaur otherwise you get the 2 terms thing
sorear because after "f" the parser is expecting an infix operator
grondilu isn't xx an infix operator??
sorear geekosaur: if you predeclare functions you can use them without parens
I mean after "f" the parser is expecting a term 04:44
n: sub f { rand }; say f xx 3
p6eval niecza v22-33-gda13155: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'xx' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1437 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /home/…
sorear so xx 3 in term context parses as a sub call
grondilu r: sub f { rand } ; say f + 4
p6eval rakudo bf472b: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in sub f at /tmp/36x7VZYd7M:1␤ in block at /tmp/36x7VZYd7M:1␤␤»
lue oh, I see it now.
sorear that parses as f(+4)
which is f(4)
n: sub term:<f> { rand }; say f xx 3 # explicitly mark f as not taking a parameter list at all 04:45
p6eval niecza v22-33-gda13155: OUTPUT«0.49389698146558225 0.34871486031856147 0.36149489058251255␤»
grondilu I'm surprised. I really thought I had already used a f + something syntax
sorear eval: sub foo { 'A' }; foo x 5
buubot_backup sorear: ERROR: syntax error at (eval 20) line 1, near "x 5"
sorear eval: sub foo() { 'A' }; foo x 5
buubot_backup sorear: AAAAA
sorear perl 5 works the same way 04:46
sub foo() being the equivalent of sub term:<foo>
grondilu I guess I must have hallucinated. Or I need some sleep.
sorear lack of sleep can cause hallucinations
grondilu eval: use feature "state"; sub f { state $n++ ? 1 : 0 }; say f for 0 .. 2; 04:47
buubot_backup grondilu: ERROR: syntax error at (eval 20) line 1, near "say f "
lue
.oO(Well, he didn't say xor :P)
grondilu eval: use feature qw(state say); sub f { state $n++ ? 1 : 0 }; say f for 0 .. 2; 04:48
buubot_backup grondilu: 0 1 1
sorear "for" is special here because it's a statement terminator 04:49
it breaks out of the argument list
04:49 xilo_ left
grondilu eval: use feature qw(state say); sub f { state $n++ ? $n : 1 }; say f for 0 .. 2; 04:49
buubot_backup grondilu: 1
grondilu hum 04:50
if you're curious, I'm curently trying to shorten rosettacode.org/wiki/Continued_fraction#Perl
04:57 fgomez joined 05:05 araujo left 05:09 hypolin left 05:17 telex left 05:22 hypolin joined 05:25 grondilu left 05:30 telex joined 05:33 thou joined 05:51 Khisanth left 05:53 birdwindupbird joined 06:03 kaleem joined 06:10 Khisanth joined 06:12 gfldex joined 06:13 hypolin left
moritz \o 06:14
lue o/ 06:15
06:25 hypolin joined
sorear o| 06:27
lue: any chance we'll see ya in Austin next June? 06:29
lue When was it, 3-6 June?
s/was/is/ 06:30
sorear 3-7 or so
there's no actual schedule yet so it's too early to make hard plans
06:32 kurahaupo left
sorear has this vague idea that lue is a 15yo with various travel-incompatible commitments ? 06:32
lue That current week I still have school (with graduation the first Saturday after), so it seems I'll only be there in e-form :/
06:34 HarryS left
sorear ie, june 8? 06:35
lue yes.
sorear if I may ask what state are you in? 06:36
lue Oregon (but that's as granular as I feel comfortable being)
sorear hah 06:37
06:38 domidumont joined 06:48 SamuraiJack joined 06:52 cognominal joined 06:54 popl left, SamuraiJack left 06:57 SamuraiJack joined 07:01 domidumont left 07:02 domidumont joined
lue I'm guessing the stubs in src/core only work because the real thing occurs later in the concatenated file? 07:08
sorear yes 07:12
07:13 skids left 07:16 sftp left 07:19 sftp joined 07:25 cognominal left 07:41 raiph left 07:44 HarryS joined, domidumont left 07:45 domidumont joined
jnthn morning o/ 07:48
moritz \o 07:49
Su-Shee good morning everyone. 07:51
07:53 marloshouse left 07:54 marloshouse_ joined
arnsholt Moin Su-Shee 07:55
07:56 Gryllida joined 08:00 flightrecorder joined 08:01 FROGGS joined
lue r: 'class A does B is C::D' ~~ /[\s+ does \s+ ([\w||'::']+)]*/; say $/ 08:03
p6eval rakudo bf472b: OUTPUT«「」␤␤»
lue It must be getting late. I don't see why this fails.
FROGGS r: say so 'C::D' ~~ /([\w||'::']+)*/ 08:06
p6eval rakudo bf472b: OUTPUT«True␤»
FROGGS hmmm
ohhh
lue: \s+ doesnt match B
lue r: 'does B' ~~ /[\s+ does \s+ ([\w||'::']+)]*/; say $/
p6eval rakudo bf472b: OUTPUT«「」␤␤»
FROGGS r: 'class A does B is C::D' ~~ /[\w+ does \w+ ([\w||'::']+)]*/; say $/
p6eval rakudo bf472b: OUTPUT«「」␤␤»
FROGGS r: 'class A does B is C::D' ~~ /[\w+ does \w+ is ([\w||'::']+)]*/; say $/
p6eval rakudo bf472b: OUTPUT«「」␤␤» 08:07
lue but it (should) match the space between 'does' and 'B'
FROGGS but somthing must match B
lue r: 'class A does B is C::D' ~~ /\s+ does \s+ ([\w||'::']+)/; say $/
p6eval rakudo bf472b: OUTPUT«「 does B」␤ 0 => 「B」␤␤»
FROGGS ahh, the rest should match B, not C::D 08:08
lue I fear a bug is what I have found. This works, but I don't know how many times 'does' appears.
FROGGS r: 'does B' ~~ /(\s+ does \s+ ([\w||'::']+))*/; say $/ 08:09
p6eval rakudo bf472b: OUTPUT«「」␤␤»
FROGGS r: 'does B' ~~ /(\s+ does \s+ ([\w||'::']+))/; say $/
p6eval rakudo bf472b: OUTPUT«#<failed match>␤»
FROGGS r: 'class A does B is C::D' ~~ /(\s+ does \s+ ([\w||'::']+))/; say $/
p6eval rakudo bf472b: OUTPUT«「 does B」␤ 0 => 「 does B」␤ 0 => 「B」␤␤»
FROGGS if you use * than its still fine if it doesnt match anything 08:10
lue Actually, it looks like 'does' and 'is' only ever appear once in what I'm processing, but the inability to generalize annoys me. 08:11
r: 'class A does B is C::D' ~~ /[does \s+ ([\w||'::']+)]*/; say $/ 08:12
p6eval rakudo bf472b: OUTPUT«「」␤␤»
lue r: 'does B ' ~~ /[does \s+ ([\w||'::']+)]*/; say $/
p6eval rakudo bf472b: OUTPUT«「does B」␤ 0 => 「B」␤␤»
FROGGS r: 'class A does B is C::D' ~~ /[does \s+ ([\w||'::']+)]+/; say $/
p6eval rakudo bf472b: OUTPUT«「does B」␤ 0 => 「B」␤␤»
lue O.o
FROGGS looks like * is non greedy
* is "zero times or more", so no match is good too 08:13
lue r: 'does B ~~ /[does \s+ ([\w||'::']+)]*/; say $/
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Confused␤at /tmp/Tv4KWFY94e:1␤»
lue r: 'does B' ~~ /[does \s+ ([\w||'::']+)]*/; say $/
p6eval rakudo bf472b: OUTPUT«「does B」␤ 0 => 「B」␤␤»
lue r: 'class A does B is C::D' ~~ /[does \s+ ([\w||'::']+)]*/; say $/ 08:14
p6eval rakudo bf472b: OUTPUT«「」␤␤»
lue r: 'class A does B is C::D' ~~ /[does \s+ ([\w||'::']+)]*!/; say $/
p6eval rakudo bf472b: OUTPUT«「」␤␤»
FROGGS damnit, have to reboot, brb
lue I thought they were greedy by default. In any case, forcing it to be greedy doesn't help.
FROGGS maybe thats the bug ;o) 08:15
08:15 FROGGS left, flightrecorder left
lue r: 'does B' ~~ /[does \s+ ([\w||'::']+)]*?/; say $/ 08:15
p6eval rakudo bf472b: OUTPUT«「」␤␤»
lue o.o It would seem * is magically frugal here --> 'class A does B is C::D' ~~ /[does \s+ ([\w||'::']+)]*/; say $/ 08:16
08:17 flightrecorder joined, FROGGS joined
FROGGS thats better... 08:17
lue r: 'does B' ~~ /[does \s+ ([\w||'::']+)]*?/; say $/ # FROGGS: doing s/*/*?/ in a known working match... 08:18
p6eval rakudo bf472b: OUTPUT«「」␤␤»
FROGGS r: say 'does B' ~~ /[does \w]*?/; 08:19
p6eval rakudo bf472b: OUTPUT«「」␤␤»
FROGGS r: say 'does B' ~~ /[does \w]*/; say 'does B' ~~ /[does \w]*!/; say 'does B' ~~ /[does \w]*?/;
p6eval rakudo bf472b: OUTPUT«「」␤␤「」␤␤「」␤␤»
lue r: say 'does B' ~~ m:s/[does \w]*?/;
p6eval rakudo bf472b: OUTPUT«「」␤␤»
FROGGS r: say 'does B' ~~ /[does B]*/; say 'does B' ~~ /[does B]*!/; say 'does B' ~~ /[does B]*?/;
p6eval rakudo bf472b: OUTPUT«「」␤␤「」␤␤「」␤␤»
FROGGS r: say 'does B' ~~ /(does B)*/; say 'does B' ~~ /(does B)*!/; say 'does B' ~~ /(does B)*?/; 08:20
p6eval rakudo bf472b: OUTPUT«「」␤␤「」␤␤「」␤␤»
lue (matches don't match literal whitespace by default)
FROGGS ohh
right
lue hence the m:s/ I used.
FROGGS r: say 'does B' ~~ /(does\sB)*/; say 'does B' ~~ /(does\sB)*!/; say 'does B' ~~ /(does\sB)*?/;
p6eval rakudo bf472b: OUTPUT«「does B」␤ 0 => 「does B」␤␤「does B」␤ 0 => 「does B」␤␤「」␤␤»
FROGGS huh
r: say 'does B' ~~ /[does\sB]*/; 08:21
p6eval rakudo bf472b: OUTPUT«「does B」␤␤»
FROGGS why does it work now?
lue r: say 'does B' ~~ /[does\sB]*/; say 'does B' ~~ /[does\sB]*!/; say 'does B' ~~ /[does\sB]*?/;
p6eval rakudo bf472b: OUTPUT«「does B」␤␤「does B」␤␤「」␤␤»
FROGGS r: say 'does B' ~~ /[does \s B]*/;
p6eval rakudo bf472b: OUTPUT«「does B」␤␤»
FROGGS hmmm
r: say 'does B' ~~ /[does \s \w]*/;
p6eval rakudo bf472b: OUTPUT«「does B」␤␤»
lue calls for all the awake regexperts 08:22
r: say 'class A does B' ~~ /[does\sB]*/; say 'does B' ~~ /[does\sB]*!/; say 'does B' ~~ /[does\sB]*?/;
p6eval rakudo bf472b: OUTPUT«「」␤␤「does B」␤␤「」␤␤»
FROGGS ohh
that explains it 08:23
moritz lue: what's the question?
lue
.oO(feels like it's trying to match from the beginning of string when it shouldn't.)
08:24
r: 'class A does B is C::D' ~~ /[\s+ does \s+ ([\w||'::']+)]*/; say $/ # moritz: why?
p6eval rakudo bf472b: OUTPUT«「」␤␤»
moritz r: 'class A does B is C::D' ~~ /[\s+ does \s+ ([\w||'::']+)]*/; say $/
p6eval rakudo bf472b: OUTPUT«「」␤␤»
moritz lue: it tries to match at position 0 first 08:25
lue: and succeeds, with the empty match
lue: then it stops.
FROGGS ya, makes sense some how
08:25 domidumont left
moritz the foremost principle of the regex engine is to try the left-most match first 08:25
finding the longest match is only second principle 08:26
lue That makes complete sense, yet feels entirely wrong at the same time.
08:26 domidumont joined
lue (In this case, that is) 08:26
moritz if it feels wrong, then there's something wrong inside you that makes it feel wrong to you 08:27
FROGGS bah
moritz like, using * instead of + if you really want at least one match
tadzik good morning
FROGGS mornin' 08:28
moritz good morning tadzik
lue (there might not be a match though, and I doubt ? would help much)
08:28 araujo joined, araujo left, araujo joined 08:29 Khisanth left
lue r: 'class A does B is C::D' ~~ /.+ [\s+ does \s+ ([\w||'::']+)]*/; say $/ 08:29
moritz lue: then use + and deal with a possibly failing match
p6eval rakudo bf472b: OUTPUT«「class A does B is C::D」␤␤»
lue r: 'class A does B is C::D' ~~ /.+? [\s+ does \s+ ([\w||'::']+)]*/; say $/
p6eval rakudo bf472b: OUTPUT«「c」␤␤»
lue is sadly laughing right now. 08:30
08:30 wamba joined
lue It seems like I'll have to deal with a failing match then (although now the code loses that strange appeal code that doesn't have conditionals has). 08:32
In any case, good knight o/
08:33 cognominal joined
FROGGS lue: gnight 08:40
08:42 cognominal left, Khisanth joined 08:43 domidumont left 08:45 cognominal joined 08:50 Kharec joined 08:51 larks left 08:53 larks joined 08:59 fhelmberger joined 09:07 xinming left 09:08 xinming joined 09:09 cognominal left 09:16 cognominal joined
dalek ecza: 9ce3bae | sorear++ | / (4 files):
use UUIDs instead of Run. to segragate runtime and compiler module versions; build is quite shot at this point
09:18
timotimo is there a way for Configure.pl to check out only a shallow clone of parrot and nqp? 09:35
09:37 dakkar joined 09:44 fhelmberger left
dalek ecza: 2efdd99 | sorear++ | / (2 files):
Port compiler binding into the kernel proper
10:03
10:03 cognominal left 10:04 am0c_ joined, am0c left
sorear timotimo: unsure, doubtful 10:05
ask jnthn
10:05 am0c_ is now known as am0c
dalek ecza: 19fa03a | sorear++ | lib/CompilerBinding.cs:
Fix call names
10:08
moritz timotimo: no; but you can obtain and unpack a tarball of the appropriate version yourself 10:09
10:09 hypolin left
timotimo do i need to tell Configure.pl about that somehow? 10:09
10:10 cognominal joined
sorear wow. the new segregation regimen *works* 10:11
tomorrow: try and reconstruct the build system
sleep&
10:13 kresike joined
kresike helo all you happy perl6 people 10:13
jnthn ehlo kresike 10:15
kresike jnthn, I'm not an SMTP server :)
jnthn :D 10:16
Ah, the days when it was a worthwhile perforamnce win to choose 4-letter command names so you could do 32-bit integer comparisons to see what the command was... 10:17
10:19 Chillance joined 10:20 bowtie joined
moritz did they even have 32bit integers in those days? :-) 10:22
10:24 anuby left
tadzik :> 10:24
10:32 Kharec left 10:33 Kharec joined, Kharec left 10:34 Kharec joined, SmokeMachine joined 10:37 fhelmberger joined, thou left 10:40 perigrin left 11:02 rindolf joined
dalek rlito: 98415bf | (Flavio S. Glock)++ | t5/01-perlito/31-autoload.t:
Perlito5 - tests - add AUTOLOAD tests
11:04
11:05 Su-Shee_ joined
dalek rlito: 8d65dd4 | (Flavio S. Glock)++ | t5/01-perlito/32-autoload-method.t:
Perlito5 - tests - add AUTOLOAD tests
11:08
11:09 Su-Shee left 11:15 birdwindupbird left 11:22 mtymula joined
mtymula Hello 11:22
moritz hi 11:23
mtymula i am trying to create exec out of perl6 file hello.pl
on my win32
moritz this doesn't work (yet)
mtymula oh crap...
tadzik (:
well, doesn't it work on niecza maybe? 11:24
mtymula only windows
?
tadzik no, it dosn't work on unices either, afaik
moritz that's correct
mtymula ok, so no exec
when one can expect that feature?? 11:25
moritz you can expect it whenever you like 11:26
but we don't have a timeline for it
tadzik and if you expect it now, we'll send you this magic marker included! :-)
mtymula yeah:) 11:27
you know.. i am writing a thesis about perl6
i need to know what is what and what is working
so i guess i should look at apocalypses?? 11:28
moritz no
tadzik nope :)
that has nothing to do with working
mtymula ok,
moritz the synopsis are what we try to implement
tadzik perl6.org/compilers/features is the "what is working"
moritz and the bug tracker for what is not working
tadzik :D
mtymula oh tight i've seen that site before
hahaha 11:29
*that
masak g'day, #perl6
mtymula ok so i've got only one q 11:30
masak mtymula: Perl 6 is a language that compiles down to bytecode, not machine code. why do you expect it to compile down to machine code, and why is it a problem for you that it doesn't?
mtymula oh it is not a prolbem for me
i just need to know that stuff for my science work
that i am doing
masak I see. 11:31
well, the reason it's not part of any timeline is that Perl 6 is not chiefly meant to be used that way.
nor is, for example, Java. 11:32
it compiles down to those .class files, which one then interprets.
mtymula good 11:33
masak in Perl 5 and 6, the process is a little simpler, since you don't have to do it in two steps, and you never see the intermediate format.
but the principle is exactly the same.
therefore, .exe files would be a detour. 11:34
huf eventually someone will come up with a way to pack the entire perl6 interpreter and half the world into one single file, along with your code... 11:35
mtymula i am supposed to make a http html app with connection to database and some fancy looking tables on the gui side. My question is, do you know about any deatours or not implemented functionalities that can prevent me from doing that task??
huf that'll be an exe fsvo exe
masak mtymula: check out github.com/tadzik/zblog 11:36
mtymula: it's a web frontend to a database.
works in Rakudo, today.
tadzik for only 2.99
masak but that's not all...
tadzik 'fcourse not 11:37
mtymula ok, thanks a lot
tadzik you get to write your own Fancy Looking Tables. Absolutely free!
huf who do i call _now_?
tadzik GHOSTBUSTERS
huf \o/
masak you can expect some things not to be implemented yet. basically, if you come in with the expectations of CPAN, you will be disappoint.
in other words, you can almost always compensate, but sometimes it takes toil and sweat to do so. 11:38
jnthn And please share your sweat on modules.perl6.org :)
masak we should make that our new slogan. 11:39
modules.perl6.org -- "sweat that you can share!"
jnthn Sponsored by Pocari!
masak shapes himself like a bunch of katakana
mtymula is there any other way to contact you, so i could make perhaps some interview or inquiry and add it to my science papers?? 11:40
FROGGS masak: I almost sent that contributor agreement (it's at home, just need to get en envelope)
masak FROGGS: cool!
mtymula: I think many here would be willing to do interviews via email, or privmsg here on IRC. 11:41
FROGGS I'm not used to paper, you see
masak FROGGS: I know the feeling.
tadzik I think I've emailed a scan of my CLA
jnthn FROGGS: I know, I always hate it when people expect paper things dong...
masak tadzik: ooh, clever
tadzik well, lazy ;) 11:42
FROGGS tadzik: MRA! I can do that tuu
11:42 am0c left
tadzik it was awesome 11:42
like, not leaving my cave
FROGGS *g*
ya, sunlight, bah
masak .oO( but then how would they know it's real and not created in Paint or something...? )
mtymula ok people so I will get back to you with more questions:) have a nice day 11:43
11:43 am0c joined
mtymula !! 11:43
tadzik same to you :)
11:44 GlitchMr joined
masak have($day, :nice) 11:46
11:47 JJ_Brain joined
masak perl6: my @odd = 1,3,5 ... 8; say @odd[^4] 11:48
surely this should time out?
[Coke]: ^
p6eval rakudo bf472b, niecza v22-36-g19fa03a: OUTPUT«(timeout)»
jnthn Needs binding
moritz perl6: my @odd := 1, 3, 5 ... 8; say @odd[^4] 11:49
p6eval rakudo bf472b, niecza v22-36-g19fa03a: OUTPUT«1 3 5 7␤»
moritz perl6: my @odd := 1, 3, 5 ... 8; say @odd[^8]
p6eval rakudo bf472b, niecza v22-36-g19fa03a: OUTPUT«1 3 5 7 9 11 13 15␤»
masak [Coke]: seems you're only testing the first half of rt.perl.org/rt3/Ticket/Display.html?id=76648 11:50
jnthn: right, that's what I meant. I couldn't see which RT ticket it was coming from, but it looked to me like it should hang.
<moritz> if it feels wrong, then there's something wrong inside you that makes it feel wrong to you 11:59
moritz is a stern teacher :)
11:59 JJ_Brain left 12:00 JJ_Brain joined, JJ_Brain left
moritz sometimes is 12:03
12:14 am0c_ joined 12:15 am0c left 12:16 birdwindupbird joined 12:17 am0c_ is now known as am0c 12:20 brrt joined, Su-Shee_ is now known as Su-Shee, gootle left 12:30 mtymula left 12:31 tokuhiro_ left 12:32 tokuhiro_ joined 12:36 Psyche^ joined 12:39 Patterner left, Psyche^ is now known as Patterner
dalek rlito: 643adab | (Flavio S. Glock)++ | / (4 files):
Perlito5 - js2 - p5call_sub() placeholder for AUTOLOAD
12:45
12:55 SamuraiJack left 12:59 sqirrel joined 13:03 cognominal left 13:04 cognominal joined 13:09 cognominal left 13:12 cognominal joined 13:23 kaleem left 13:41 ilogger2 joined, ChanServ sets mode: +v ilogger2 13:42 takesako joined 13:46 Pleiades` joined 13:47 cognominal joined 13:50 _ilbot joined 13:56 ruoso joined 14:11 atrodo joined, PacoAir joined 14:12 cognominal left 14:14 tokuhiro_ joined 14:18 cognominal joined, PacoAir left 14:19 PacoAir joined 14:23 kaleem joined 14:35 kaleem left, kaleem joined, domidumont joined
FROGGS [Coke]: reinstalling opensolaris... 14:36
14:40 larks joined 14:51 rurban_ joined 14:55 wamba joined
FROGGS
.oO( masak is also known as the symbol )
14:58
.oO( ... formerly known as prince )
15:01 rurban_ left
geekosaur somewhat appropriate since irc won't let him use his symbol :) 15:04
15:05 stopbit joined 15:06 dakkar joined 15:10 perigrin joined, kaare_ joined 15:15 Shozan joined
masak seems a bit stormy on the IRCs today. 15:18
FROGGS there should be a relay chat forecast... 15:24
15:24 grondilu joined
grondilu rn: class Foo { has $.str; method postcircumfix:<( )>($i, $k) { $.str.substr: $i, $k } }; my Foo $x .= new: :str("hello"); say $x.(2, 1) 15:24
p6eval rakudo bf472b: OUTPUT«Not enough positional parameters passed; got 2 but expected 3␤ in method postcircumfix:<( )> at /tmp/AbMJCtzaIi:1␤ in at src/gen/BOOTSTRAP.pm:852␤ in any at src/gen/BOOTSTRAP.pm:836␤ in block at /tmp/AbMJCtzaIi:1␤␤»
..niecza v22-36-g19fa03a: OUTPUT«l␤»
Pompel I've heard that the IRC can be quite deadly to the MSN-lubbers.
grondilu rn: class Foo { has $.str; method postcircumfix:<( )>($i, $k) { $.str.substr: $i, $k } }; my Foo $x .= new: :str("hello"); say $x(2, 1)
p6eval rakudo bf472b: OUTPUT«Not enough positional parameters passed; got 2 but expected 3␤ in method postcircumfix:<( )> at /tmp/a7DuiH_YNl:1␤ in at src/gen/BOOTSTRAP.pm:852␤ in any at src/gen/BOOTSTRAP.pm:836␤ in block at /tmp/a7DuiH_YNl:1␤␤»
..niecza v22-36-g19fa03a: OUTPUT«l␤»
grondilu submits rakudobug 15:29
15:30 Kharec joined 15:31 xilo joined 15:34 skids joined, cognominal_ joined, cognominal left
grondilu rn: my class {} $; 15:37
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Confused␤at /tmp/bH7frpmJSL:1␤»
..niecza v22-36-g19fa03a: OUTPUT«===SORRY!===␤␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/PtQKqHwDHr line 1:␤------> my class {}⏏ $;␤␤Parse failed␤␤»
masak grondilu: I think you're getting two parameters to postcircumfix:<( )> because it packages your (2, 1) as a capture and passes that as a single argument. 15:38
I don't remember whether that's still spec or no.
grondilu r: class Foo { has $.str; method postcircumfix:<( )>($i, $k) { $.str.substr: $i, $k } }; my Foo $x .= new: :str("hello"); say $x(|(2, 1))
p6eval rakudo bf472b: OUTPUT«Not enough positional parameters passed; got 2 but expected 3␤ in method postcircumfix:<( )> at /tmp/cgrJZnKyKj:1␤ in at src/gen/BOOTSTRAP.pm:852␤ in any at src/gen/BOOTSTRAP.pm:836␤ in block at /tmp/cgrJZnKyKj:1␤␤»
grondilu I don't see why it should passes that as a capture. 15:39
*pass 15:40
15:40 cognominal_ left, bluescreen10 joined
masak I'm not justifying it doing so; I'm explaining why 2 parameters were expected. (the invocant and the capture) 15:40
FROGGS masak: do you get mails when I reply to RT tickets?
masak FROGGS: depends. 15:41
FROGGS: do you mark them as "cc to p6c"?
FROGGS if you are the owner
masak FROGGS: then yes.
15:41 cognominal_ joined
masak when I am the requestor, I get emails. 15:41
FROGGS k, because you might noticed that I check old tickets and reply if it is fixed now... but I cant add tags or close tickets 15:42
moritz somebody should give you write access 15:43
FROGGS maybe, I'd like to add 'testneeded' to some 15:44
moritz [Coke]: can you give FROGGS (RT ID froggs.de) write access to the perl6 RT queue?
FROGGS FROGGS.de if case matters
15:50 cognominal_ left 15:52 prammer joined
FROGGS masak: your bugs 94128 and 79174 are the same... 15:54
rt.perl.org/rt3/Ticket/Display.html?id=94128 <-> rt.perl.org/rt3/Ticket/Display.html?id=79174
15:56 rurban joined, cognominal joined
rurban I have a potential nqp fix for the remaining nqp crash with threaded parrot: github.com/parrot/parrot/issues/869 15:57
phenny rurban: 13 Nov 04:11Z <isBEKaml> tell rurban that I can now build parrot+rakudo successfully on cygwin. it was a line ending issue from msysgit, installing cygwin's git and a fresh checkout resolved them all.
15:57 am0c joined
rurban nqp needs to check also GC'ed away types, which are enum_class_Proxy 15:58
15:58 grondilu left 16:02 kaleem left 16:03 larks left
dalek p: a93915b | rurban++ | src/pmc/nqplexpad.pmc:
[parrot #869] Check also for proxied lexinfo with threaded parrots

Tadzik came up with an abnormal testcase, which crashed in nqp on a threaded parrot. See [parrot #869]. Parrot_NQPLexPad_set_pointer needs to check for enum_class_Proxy also. Note this commit does not fix the problem, only the segfault. I do not know which lexinfo name_map to get with enum_class_Proxy.
16:03
FROGGS haha, tadzik makes abnormal testcases ;o) 16:04
16:06 mtymula joined, jnthn joined
dalek p: 6d8b63d | rurban++ | src/pmc/nqplexpad.pmc:
[whitsepace] parrot #869 Parrot_NQPLexPad_set_pointer sorry for the hard tab
16:06
mtymula hello
rurban A very abormal case in which the lexpad gets GC'ed in a different thread
So threads are not quite ready yet, but almost. 16:07
mtymula I am doing this tutorial perl6maven.com/tutorial/perl6-loop-...ing-values 16:08
when tutorial says that i should get :
use of uninitialized value of type Mu in string context in block <anon> at examples/arrays/missing_values_fixed.p6:5
i get only MU()
is it correct?
FROGGS rurban: thats awesome, I'm looking forward to perl6 threads (still have stomach ache when thinking of perl5's ithreads...) 16:09
masak mtymula: I think so.
mtymula masak: thx
masak phz
jnthn *pzh :P 16:10
16:10 larks joined, larks left, larks joined
masak dng :) 16:10
jnthn rurban: Is it actually a GC issue? 16:11
rurban: Or can it happen whenever we create a LexPad in one thread that refers to a LexInfo in another thread?
rurban This could also be the case. I do not know this code well enough 16:12
jnthn set_pointer is called by Parrot to provide the context that the lexpad will be for
rurban jnthn: Yes, I think your explanation is better
Can you think of a fix? 16:13
jnthn No.
We really need to look at the real LexInfo there, in general.
Well, the NQPLexInfo.
So the ansewr is "however we get the really thing from the proxy" I guess.
*real
rurban I sent nine a message if he could help us. He invented these proxies 16:14
jnthn *nod*
Well, whatever fix applies for NQP there should be good for Rakudo too
rurban Or whiteknight maybe
I just don't know if we stepped into a can of worms
We eventually might need to check all pmcs for proxies 16:15
jnthn urgh
Yeah, this potentially could go fairly deep. 16:16
rurban A transparent proxy would be better 16:17
benabik I thought the proxies were fairly transparent. 16:18
16:20 am0c left 16:23 BooK joined
rurban I asked the mailing list 16:26
tadzik yeah, threads moving :) 16:38
kresike bye folks 16:44
16:46 cognominal left
rurban whiteknight explained the threads proxies issues on the list. We might need new macros to access a pmc vtable (proxy_pmc->data->target_pmc->vtable) 16:50
He argued to merge threads and fix nqp over time 16:51
moritz does that mean that vtable accesses get slower? 16:52
16:56 cognominal joined, rafl joined 17:00 flussence joined 17:07 rafl left, domidumont left
rurban You need to check for the proxy case, yes. One more int comparison 17:07
17:07 domidumont joined
rurban I think I have a good nqp fix now 17:07
17:08 rafl joined 17:09 rafl left, aindilis joined
jnthn rurban: Next issue: all the 6model related ops look for an object to be a SixModelObject PMC, and thus as soon as any object gets shared we hit this issue again, I suspect. 17:09
17:10 rafl joined
rurban But then it will be easier to abstract. You just need to check the Proxy case and if so access the data->target instead 17:11
17:12 MayDaniel joined 17:13 thou joined
rurban Oh I see. 17:14
17:20 cognominal left
rurban How advanced is NQPP5QRegex? 50% 17:20
17:27 erkan joined, erkan left, erkan joined 17:33 SamuraiJack joined 17:36 FROGGS joined 17:39 am0c_ joined, am0c_ left 17:40 am0c_ joined 17:41 am0c_ left 17:42 larks left 17:44 am0c_ joined 17:45 larks joined
masak rn: say <turtles closures MOP>.roll, " all the way down!" 17:46
p6eval niecza v22-36-g19fa03a: OUTPUT«closures all the way down!␤»
..rakudo bf472b: OUTPUT«MOP all the way down!␤»
17:46 am0c_ left
masak :P 17:46
benabik No turtles for you. 17:47
masak who needs turtles when one has infinite closures and MOP!
17:49 am0c_ joined 17:50 am0c_ is now known as am0c 17:55 am0c left, am0c joined 17:56 rafl left, rafl joined
masak re rt.perl.org/rt3//Public/Bug/Displa...?id=100124 17:57
it may well be that that is "expected behavior", I dunno.
it's certainly more consistent than when the ticket was filed.
I guess it all hinges on whether it should be OK to compose the *same* role twice, through two different paths. 17:58
dalek ast: be54170 | moritz++ | S32-exceptions/misc.t:
fudge test for RT #114134
masak I think a strong case could be made for yes, that should be possible.
in which case the behavior is not the expected one.
17:59 cognominal joined 18:03 grondilu joined
grondilu has just realised he can still use @_ 18:04
rn: sub f { @_ }; say f <hello perl6>;
p6eval rakudo bf472b, niecza v22-36-g19fa03a: OUTPUT«hello perl6␤»
masak yes. it's readonly, though. 18:05
that's a big difference to Perl 5.
benabik r: sub f { say @_.shift }; f <hello perl6> 18:06
p6eval rakudo bf472b: OUTPUT«hello␤»
grondilu rn: sub f { shift }; say f <hello perl6>; 18:07
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'shift' will never work with no arguments (line 1)␤ Expected any of:␤ :(@a)␤»
..niecza v22-36-g19fa03a: OUTPUT«Unhandled exception: No value for parameter '@array' in 'shift'␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (shift @ 1) ␤ at /tmp/GnPyeXcEEa line 1 (f @ 4) ␤ at /tmp/GnPyeXcEEa line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 42…
grondilu wonder why shift could not be called with no arguments
masak because functions don't have default arguments like that in Perl 6. 18:09
japhb rn: sub f { .shift }; say f <hello perl6>;
masak underlying reason is that you shouldn't be expected as a programmer to memorize arbitrary lists of which functions do have default arguments and which don't.
p6eval rakudo bf472b: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in sub f at /tmp/bLIfA4apWj:1␤ in block at /tmp/bLIfA4apWj:1␤␤»
..niecza v22-36-g19fa03a: OUTPUT«Unhandled exception: Unable to resolve method shift in type Parcel␤ at /tmp/Wu7tHk0ggy line 1 (f @ 4) ␤ at /tmp/Wu7tHk0ggy line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4211 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting li…
japhb Interesting
benabik .shift calls $_.shift, not @_.shift, I think 18:10
masak I think the shortest way to write that is @_.shift
benabik: it does, yes.
.shift always means $_.shift
japhb benabik, I knew that. I just wondered how the two compilers would react.
jnthn japhb: You have to mention @_ in order to get the *@_ signature.
In Rakudo, anyways...
japhb jnthn, yes, I know.
I guess I should have said # Just curious at the end of my test. ;-) 18:11
grondilu rn: sub f { @_.shift; @_ }; say f <hello perl6>; 18:12
p6eval rakudo bf472b, niecza v22-36-g19fa03a: OUTPUT«perl6␤»
grondilu well it's not readonly, after all.
.oO(unless being able to shift an array does not mean we can mutate its individual values, so it still is readonly)
18:14
masak I think it should mean that. 18:16
skids grondilu: S06 says "the slurpy star means the declared formal parameter is not considered readonly; only its elements are." 18:17
masak interesting.
grondilu skids: ok
masak I guess that does make sense, since the array is created as part of the parameter binding.
18:18 dakkar left, mtymula left
sorear o/ 18:21
arnsholt And it won't ever be something external, so forcing it to be immutable isn't really necessary in a way 18:25
skids it's a DWIM WIN-WIN :-) 18:26
grondilu rn: my @a = ^10; sub f(*@a) { @a[0] = "foo" }; f @a; say @a; 18:27
p6eval rakudo bf472b: OUTPUT«0 1 2 3 4 5 6 7 8 9␤»
..niecza v22-36-g19fa03a: OUTPUT«foo 1 2 3 4 5 6 7 8 9␤»
grondilu slurpy star NYI in rakudo? 18:28
arnsholt grondilu: I think @a[0] inside f will be the whole list 1..9 18:30
You're probably thinking of f(|@a) which flattens, but then you still won't be modifying the @a outside
skids r: my @a = ^10; sub f(*@a is rw) { @a[0] = "foo" }; f @a; say @a; 18:31
p6eval rakudo bf472b: OUTPUT«0 1 2 3 4 5 6 7 8 9␤»
skids (I think that's supposed to work according to spec.)
arnsholt r: my @a = ^10; sub f(*@a is rw) { @a[0][0] = "foo" }; f @a; say @a;
p6eval rakudo bf472b: OUTPUT«Cannot assign to a non-container␤ in sub f at /tmp/qillKolrn1:1␤ in block at /tmp/qillKolrn1:1␤␤»
arnsholt Huh 18:32
18:32 Kharec left
arnsholt At any rate, func(@array) will never flatten in Perl 6 (unlike Perl 5). For flattening you want func(|@array) 18:32
grondilu it's not really about flattening, it's about mutating, as mentioned in the sentence skids quoted from S06. But I guess I should read this part again more carefully. 18:34
skids S06 also says the "is rw" distributes to the elements of a slurpy, so I read that as the above should have worked.
grondilu rn: my @a = <foo bar>; sub f(*@a is rw) { @a[1] = "foo" }; f @æ; say @a;' 18:35
p6eval niecza v22-36-g19fa03a: OUTPUT«===SORRY!===␤␤Variable @æ is not predeclared at /tmp/I6WVOkWBGW line 1:␤------> ; sub f(*@a is rw) { @a[1] = "foo" }; f ⏏@æ; say @a;'␤␤Bogus statement at /tmp/I6WVOkWBGW line 1:␤------> is rw) { @a[1] = "foo" }; f…
..rakudo bf472b: OUTPUT«===SORRY!===␤Variable @æ is not declared␤at /tmp/whQYeYGyip:1␤»
grondilu rn: my @a = <foo bar>; sub f(*@a is rw) { @a[1] = "foo" }; f @a; say @a;'
p6eval niecza v22-36-g19fa03a: OUTPUT«===SORRY!===␤␤Bogus statement at /tmp/hiRHUMjUTR line 1:␤------> is rw) { @a[1] = "foo" }; f @a; say @a;⏏'␤␤Parse failed␤␤»
..rakudo bf472b: OUTPUT«===SORRY!===␤Unable to parse expression in quote:sym<apos>; couldn't find final "'" at line 2, near ""␤»
grondilu rn: my @a = <foo bar>; sub f(*@a is rw) { @a[1] = "foo" }; f @a; say @a; 18:36
p6eval niecza v22-36-g19fa03a: OUTPUT«foo foo␤»
..rakudo bf472b: OUTPUT«foo bar␤»
grondilu niecza and rakudo definitely don't agree with this stuff
rn: my @a = <foo bar>; sub f(@a is rw) { @a[1] = "foo" }; f @a; say @a;
p6eval rakudo bf472b, niecza v22-36-g19fa03a: OUTPUT«foo foo␤»
skids r: my @a = ^10; sub f(*@a is rw) { @a[0] = "foo"; say "inside f a is {@a}" }; f(@a); say @a; 18:37
p6eval rakudo bf472b: OUTPUT«inside f a is foo 1 2 3 4 5 6 7 8 9␤0 1 2 3 4 5 6 7 8 9␤»
TimToady we have two different definitions of "flattening" here 18:43
prefix | does one kind of flattening, and slurpy * does a different kind
| flattens an item into the argument list, whereas * manages the transition from positional arguments to variadic 18:44
the term "flatten" is rather badly overloaded 18:45
skids
.oO(that's probably why it's flat, because it got squished)
TimToady to look at it another way, the difference between p5 and p6 is not that we completely did away with item vs list context, but that the decision is made lazily based on binding to the signature 18:46
| lets you violate item-by-item binding on the caller's side, while * lets you violate it on the callee's side 18:47
generally speaking, the * is more normative, while the | is one of those safety valve features 18:49
skids r: my $b = 0; my @a := $b,1,2,3; sub f(@a is rw) { @a[0] = "foo"; say "inside f a is {@a}" }; f(@a); $b.say; @a.say 18:56
p6eval rakudo bf472b: OUTPUT«inside f a is foo 1 2 3␤foo␤foo 1 2 3␤»
skids r: my $b = 0; my @a := $b,1,2,3; sub f(*@a is rw) { @a[0] = "foo"; say "inside f a is {@a}" }; f(@a); $b.say; @a.say 18:57
p6eval rakudo bf472b: OUTPUT«inside f a is foo 1 2 3␤0␤0 1 2 3␤»
[Coke] moritz, FROGGS: FROGGS.de is now a perl6 bugadmin. 19:03
FROGGS \O/
[Coke]: thanks a lot!
[Coke] no worries. less for me to do! 19:06
FROGGS ha, I'll just mess all up, so more to do for you ;o)
MUHAHAAHA
[Coke] O_O; 19:08
[Coke] ponders stalling 73104 and 73184 19:10
dalek ast: 5828eb7 | coke++ | S02-magicals/progname.t:
Add test for RT #89704
19:11
[Coke] been sitting on that one for a while, I think. 19:13
19:13 spider-mario joined
dalek ast: 95bb282 | (Tobias Leich)++ | S32-temporal/Date.t:
Link stringification test to RT ticket

  rt.perl.org/rt3/Ticket/Display.html?id=112376
19:13
FROGGS yay, closed a ticket :o) 19:15
sorear FROGGS++ 19:16
FROGGS I guess there are about 50 tickets that already are fixed, and the half of it may already have tests
masak FROGGS++ 19:18
FROGGS wow, so much karma^^
19:18 Moukeddar joined
[Coke] FROGGS: Yes, going through those not marked testneeded often finds some already-fixed gold. 19:18
FROGGS what would I get when I even start hecking?
masak heckers traditionally sit on the second row. 19:21
19:22 rurban_ joined
sorear o/ masak 19:24
19:34 rurban_ left
masak \o 19:36
colomon o\ 19:39
tipdbmp Where can one find an explanation about the perl6 operators (old, meta, hyper, cross, etc.)? 19:40
sorear S03 19:42
tipdbmp Right.
FROGGS tipdbmp: if you need a shiny overview: www.ozonehouse.com/mark/periodic/ 19:43
r: say [max] <2 11> 19:46
p6eval rakudo bf472b: OUTPUT«2␤»
tipdbmp Haha, this is awesome! Tnx =). 19:47
19:47 SamuraiJack left 19:48 gdey joined 19:51 zby_home joined 19:55 cognominal left 20:03 cognominal joined 20:07 azawawi joined 20:09 domidumont left
azawawi hi #perl6 20:11
FROGGS hi 20:12
masak azawawi! \o/
sorear o/
masak ah, `[max] <2 11>` is from rt.perl.org/rt3/Ticket/Display.html?id=112250 20:14
FROGGS rite
max should do the same like cmp, but I didnt find the spec where it says what to do with stringified nums 20:15
20:16 larks left
TimToady n: say [max] <2 11> 20:16
p6eval niecza v22-36-g19fa03a: OUTPUT«11␤»
20:16 cognominal left
masak liked blog.ezyang.com/2012/11/extremist-programming/ 20:16
TimToady niecza++
20:17 larks joined
xenoterracide method modifiers 20:25
?
moritz exist 20:26
xenoterracide syntax? or docs?
moritz method modifier exists 20:27
xenoterracide that would be how I'd create one? 20:28
20:28 xilo left
TimToady grondilu: were you planning to unbitrot the wireworld example? 20:29
moritz xenoterracide: how should it look like? what should it do?
xenoterracide moritz: oh I don't know I was just trying to get a general concept of how I could create a before or around so I could start poking around with it. 20:30
jnthn You don't; you write a normal method that defers (with callsame/callwith/nextsame/nextwith) 20:31
moritz r: sub before(&m, &d) { &m.wrap({ d(); nextsame } }; class a { before method x() { say 42 }, { say 23 }; }; a.x 20:32
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Unable to parse expression in argument list; couldn't find final ')' at line 2, near "}; class a"␤»
moritz r: sub before(&m, &d) { &m.wrap({ d(); nextsame } }; class a { before ( method x() { say 42 }), { say 23 }; }; a.x
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Unable to parse expression in argument list; couldn't find final ')' at line 2, near "}; class a"␤»
jnthn moritz: missing ) after the wrap call 20:33
moritz r: sub before(&m, &d) { &m.wrap({ d(); nextsame }) }; class a { before ( method x() { say 42 }), { say 23 }; }; a.x
p6eval rakudo bf472b: OUTPUT«42␤»
moritz r: class A { say method x() { } };
p6eval rakudo bf472b: OUTPUT«x␤»
moritz r: sub before(&m, &d) { say "in before"; &m.wrap({ d(); nextsame }) }; class a { before ( method x() { say 42 }), { say 23 }; }; a.x 20:34
p6eval rakudo bf472b: OUTPUT«in before␤42␤»
moritz hm, seems that wrap and methods don't seem to mix well
20:36 zby_home left
jnthn moritz: You should do it with a trait 20:37
Otherwise you wrap a clone of the method (due to closure semantics), not the static compile time one that got stuck in the meta-object.
moritz oh. Closures. 20:38
jnthn :)
I'm sure one of my talks has an example of implementing method modifiers...
xenoterracide jnthn++
moritz++
jnthn If you want traits for 'em.
xenoterracide thanks for the help guys
I gotta run off to the office now
grondilu nr: class Foo { method postfix:<++> { say "tic" } }; my Foo $x; $x++; 20:42
p6eval niecza v22-36-g19fa03a: OUTPUT«Unhandled exception: Nominal type check failed for scalar store; got Int, needed Foo or subtype␤ at /tmp/_oysXJZ841 line 1 (mainline @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4211 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4212 …
..rakudo bf472b: OUTPUT«Type check failed in assignment to '$x'; expected 'Foo' but got 'Int'␤ in sub postfix:<++> at src/gen/CORE.setting:1612␤ in block at /tmp/ND6MA2WZ3A:1␤␤»
grondilu can't I redefine postfix:<++> as I want?
jnthn Yes, but not as a method. 20:43
moritz it's a sub
grondilu oh
ok
FROGGS
.oO( its a trap! )
moritz though if it's only for one type, you can just define a method succ
20:43 iemelianov left
moritz because the default postfix:<++> delegates to .succ 20:43
grondilu I should have guessed that. silly of me. 20:44
moritz doc.perl6.org/language/operators
20:44 xilo joined
moritz jnthn: fwiw bumping the parrot version to current master fixes the socket tests which have been failing on linux for quite some times 20:48
jnthn: and the readline stuff seems to be fixed too
jnthn: any objections to bumping?
jnthn moritz: I was a tad nervous about doing it this side of the release.
moritz: How confident are you the readline issues are gone? 20:49
The release is tomorrow which gives little time for feedback...
moritz jnthn: I had them on my machine; I don't have them now with current parrot
jnthn OK
moritz jnthn: and pmichaud++ had constructed a pure-PIR test case, which also succeeds now 20:50
jnthn I guess if we find they're still there in the coming days we can cut a point release or just ship an earlier Parrot for Star.
Do you think we're better of bumping it? 20:51
FROGGS release early release often...
20:51 am0c left
jnthn is really tired and not particularly a good person to be making decisions about anything this evening... :) 20:51
moritz jnthn: well, I'd like to bump the version because that fixes the socket behavior 20:54
otoh the modules might have adapted to the brokenness
moritz isn't fit for decisions either 20:55
jnthn Hm
Well, modules would need fixing before the Star release.
I dunno who'll be making that.
If it's me, it won't be happening extremely soon due to grueling teaching/conference schedule.
moritz: Anyway, I'm comfortable with whatever you feel is the Best thing. 20:56
tipdbmp What's the inverse of :<base>("base_number"), which converts a the number to base 10, i.e given a number in base 10 convert it to base <base> = 2 .. 26? 20:57
[Coke] the best thing? something about lamentations.
arnsholt When's the next star release again? 20:59
tipdbmp The sprintf "%x|o|b" could convert for base 16, 8, and 2 but what about the rest?
moritz r: say 32.base(12) 21:00
p6eval rakudo bf472b: OUTPUT«28␤»
FROGGS arnsholt: I'd say in a week since the 2012.10 is 23 days old 21:01
moritz arnsholt: typically "a few days after the compiler release, but before the end of the month" 21:02
tipdbmp tnx =)
arnsholt Right. In that case, I'd vote for holding off on the Parrot bump until the Star release is done
moritz it's probably the more sensible thing to do
arnsholt Fixing the modules on short notice, especially with the long US weekend coming up, is probably not something anyone wants
FROGGS why not bumping parrots version right after release? 21:03
I mean, right after tomorrow
moritz that's fine too
FROGGS but hmmm
if then somebody fixes a module than its crap again if you use the release version of rakudo 21:04
cant do it right
moritz but then there's the risk that module authors use bleading rakudo and fix their modules... right
so, doesn't hurt to wait until after the star release
FROGGS k
can you put the rakudo version in a module like: use 5.14 ? 21:05
moritz no :(
FROGGS k, expected that ;o)
21:06 bluescreen10 left
FROGGS is there a version check at all? (between modules) 21:06
moritz no
FROGGS k
moritz we had some module versioning in pre-nom days
but nobody used it, because we had no tooling for it
21:08 am0c joined
FROGGS cool, finally the whole spectest passes 21:10
21:11 Moukeddar left
jnthn
.oO( accidentally? )
21:16
21:18 Kharec joined
arnsholt I sort of have a feeling we want to spec some kind of facility that installs and registers a file so that it can be loaded with require and friends 21:18
21:19 kurahaupo joined
arnsholt A touch of hedge overflow there, but oh well 21:19
FROGGS there are file in t/spec/packages 21:20
files
grondilu rewrote rosettacode.org/wiki/Wireworld#Perl_6 which was broken 21:22
moritz grondilu++ 21:24
lue r: my @a = 2,3,4; my %h; %h.push(1=>@a); say %h.perl; @a = Nil; say %h.perl; 21:41
p6eval rakudo bf472b: OUTPUT«("1" => [2, 3, 4]).hash␤("1" => []).hash␤» 21:42
lue I'm sure I've misunderstood something here.
moritz r: my @a = 2, 3, 4; my %h; %h.push(1 => $_) for @a; say %h.perl; @a = Nil; say %h.perl 21:44
p6eval rakudo bf472b: OUTPUT«("1" => [2, 3, 4]).hash␤("1" => [2, 3, 4]).hash␤»
moritz lue: in your code there's no operation that would copy/clone @a, so the one in the hash is the same as outside
lue Thanks moritz! (Just didn't expect => @a to act more like := than =) 21:45
21:45 popl joined 21:46 hugeAPLfan1 joined
masak grondilu: if you do postfix:<++> (and print the initial $world before the loop), don't you get two identical ones as output? 21:48
21:49 kaare_ left
grondilu masak: I don't think so. Perl6 does not distinguish ++$_ and $_++, does it? It's actually always ++$_, iirc 21:49
masak surely not. 21:50
grondilu r: my $x; say $x++;
p6eval rakudo bf472b: OUTPUT«0␤»
masak r: say my $a = 5; say $a++ for ^3
p6eval rakudo bf472b: OUTPUT«5␤5␤6␤7␤»
masak r: say my $a = 5; say ++$a for ^3
p6eval rakudo bf472b: OUTPUT«5␤6␤7␤8␤»
grondilu hum... Where on earth did I get this silly idea? 21:51
eval: my $x; say $x++;
buubot_backup grondilu: ERROR: Can't call method "say" on an undefined value at (eval 20) line 1.
masak grondilu: but my question was more simple than that.
grondilu eval: my $x; print $x++;
buubot_backup grondilu: 01
masak grondilu: wasn't your *actual* output a duplication of the first state?
(or did you not run the program?)
eval: my $x; $x++ 21:52
buubot_backup masak: 0
grondilu masak: I did run the program and pasted the exact output, iirc
grondilu does it again
jnthn 'night, #perl6 21:54
grondilu well, there is no duplication. Not sure if it's normal.
FROGGS night jnthn
21:55 geekosaur joined 21:57 benabik joined
grondilu masak: when defining .succ on a base class, I'm not sure postfix:<++> is supposed to be smart enough to return the instance as it was *before* the .succ call. 21:58
masak yes, it is.
grondilu well it did not in this example. I tried twice.
masak I think the problem is that you're returning self from .succ, rather than a cloned object. 21:59
so it's you who are violating the implicit protocol of .succ
grondilu ok
I tried using LEAVE but it failed for some reason
masak I don't see the connection between succ and LEAVE.
grondilu method succ { return self; LEAVE { ... } } 22:00
masak what you want to do is return a new object, and leave self untouched.
grondilu really?
masak I have no idea why you'd use LEAVE that way.
really.
22:00 skids left
benabik 1.succ should return 2, not increment 1. 22:00
masak .succ is a query, not a command.
grondilu oh
it has no side-effect? 22:01
masak correct.
grondilu ok, I understand now :)
22:01 am0c left 22:02 am0c joined, azawawi left
grondilu ok. Now indeed it does duplicate the first step. 22:09
masak \o/ 22:10
grondilu this programm is still much more complicated than the P5 version. It's not quite satisfiying, imho 22:14
(but now at least it works)
masak if you want simplicity, don't put things in a class ;)
grondilu indeed
22:14 ifim joined
masak after all, the core data structure is an array of strings. 22:15
benabik Classes are about re-use, not simplicity.
masak roles are about re-use (in Perl 6). :)
classes are about encapsulation.
grondilu aren't classes about instanciation? 22:16
masak .oO( and an almost fanatical devotion to the pope ) 22:18
sergot hi o/ 22:21
ifim \o 22:23
huf hmm, where are you from, grondilu? 22:24
ifim I think we can agree than OOP as a whole is about dirty business 22:25
popl We're all from the Internet here, huf.
Come on down. We all float down here.
huf oh, i was just curious which language caused the c in "instanciation" 22:26
22:26 hugeAPLfan1 left
ifim instantiation in Spanish is instanciación 22:28
grondilu huf: France, why? (funny it's the second time in a week someone asks me this on this channel) 22:29
huf oh, spanish too?
hmm...
popl el boligrafo # My Spanish is A++
grondilu in french: instance => instanciation. But now, I have some doubts... 22:30
huf what sound does the c make?
grondilu same sound
popl ssss 22:31
ifim popl: *bolígrafo (A++)-- :p
grondilu just checked the spelling of the word here: fr.wikipedia.org/wiki/Instance_(programmation)
popl ifim: My keyboard won't do that without coaxing.
huf oh okay then :)
popl ifim: Even our typing is Americanized. :D 22:32
masak I've seen some Germans make the "instanciation" typo, too. 22:35
huf i got confused for a second between sounds and letters, and initially wanted to know who else writes "ts" with a c 22:36
grondilu I think slavic languages pronounce c as "ts" 22:37
ifim instance comes from the latin word "instantia" 22:38
lue for one can't get the word "instantiation" to stop sounding weird in his head. 22:39
grondilu checks the french spelling in an other source
spider-mario ifim: fr.wiktionary.org/wiki/instanciation 22:40
oh, another source.
sorry.
rurban thanks to moritz for reminding me to bump a parrot release. not much parrot changes, pretty stable. threads need more nqp changes, so we did not include it yet, but please test nqp with threads so we can fix the remaining nqp bugs with threads. we consider threads stable enough to be merged. 22:41
grondilu dictionary.reverso.net/french-defin...tanciation
So I don't know why we use a 'c' in french. Go figure.
spider-mario well, instance. 22:42
grondilu yeah but if it comes from 'instantia', there is no reason we could not write "instantiation" 22:43
ifim grondilu: anglos got that word better than us 22:44
grondilu oh I remember now. 't' can not be pronounced as 's' when it follows one conson. That's probably the reson.
*reason
spider-mario I don’t think so
« concurrentiel »
grondilu indeed
spider-mario (or « différentiel », which I like better) 22:45
grondilu I totally forgot the rule then. But there is definitely one.
spider-mario (or « potentiel »)
« initiation »
grondilu Might be about the number of voyels that follow 't'
spider-mario « différentiation » looks a little like “instantiation” 22:46
except for the e instead of the a
grondilu true 22:47
maybe 't' becomes 's' when followed by two voyels??
(but instantiation would be an acceptable spelling) 22:48
*(but then)
masak I think it comes down to Latin consonant rules when conjugating verbs.
FROGGS masak: got time to look at github.com/rakudo/rakudo/pull/87 ? 22:52
masak sure. 22:54
FROGGS coll
err, cool
masak FROGGS: is it fixing some RT ticket I should also look at?
oh, nvm. 22:55
it's linked from the commit.
FROGGS ;o)
22:55 spider-mario left
masak is this correlated with the fix STD applied? 22:56
std: do { } for 1
p6eval std d38bbd0: OUTPUT«ok 00:00 43m␤»
masak seems not.
I think I'd prefer a fix that did what STD did to fix this.
22:56 cognominal joined
masak seeing as STD's behavior has changed. 22:57
FROGGS well, is there a do...for ? I thought not 22:59
std: repeat { } for 1
p6eval std d38bbd0: OUTPUT«===SORRY!===␤"repeat" is missing its "while" or "until" at /tmp/07oxU2N9I9 line 1:␤------> repeat { } ⏏for 1␤ expecting any of:␤ horizontal whitespace␤ statement_control␤Parse failed␤FAILED 00:00 42m␤»
FROGGS at least that is/was still the same
std: repeat { say 42 } for 1
p6eval std d38bbd0: OUTPUT«===SORRY!===␤"repeat" is missing its "while" or "until" at /tmp/37dAw4hTTF line 1:␤------> repeat { say 42 } ⏏for 1␤ expecting any of:␤ horizontal whitespace␤ statement_control␤Parse failed␤FAILED 00:00 42m␤»
FROGGS std: do { say 42 } for 1
p6eval std d38bbd0: OUTPUT«ok 00:00 43m␤»
FROGGS w/e 23:00
masak I think that's correct, actually. 'do' just makes an expression out of a block or statement.
FROGGS r: do { say 42 } 23:01
p6eval rakudo bf472b: OUTPUT«42␤»
23:01 wamba left
FROGGS r: do { say 42 } while my $i++ < 5 23:01
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Unable to parse expression in circumfix:sym<ang>; couldn't find final '>' at line 2, near ""␤»
23:02 dedis0 joined
FROGGS r: my $i = 0; do { say 42; $i++ } while $i < 5 23:02
p6eval rakudo bf472b: OUTPUT«===SORRY!===␤Unsupported use of do...while; in Perl 6 please use repeat...while␤at /tmp/eKmHVqwkQC:1␤»
FROGGS n: my $i = 0; do { say 42; $i++ } while $i < 5 23:04
p6eval niecza v22-36-g19fa03a: OUTPUT«===SORRY!===␤␤Unsupported use of do...while; in Perl 6 please use repeat...while at /tmp/EvkrdgzwYi line 1 (EOF):␤------> $i = 0; do { say 42; $i++ } while $i < 5⏏<EOL>␤␤Parse failed␤␤»
23:05 aloha joined
masak 'night, #perl6 23:06
FROGGS gnight 23:07
23:11 kurahaupo left, kurahaupo joined, kurahaupo left 23:17 lue joined 23:21 kurahaupo joined 23:24 gdey left 23:28 kurahaupo left 23:30 kurahaupo joined, stopbit left 23:35 skids joined 23:42 MayDaniel left 23:49 Kharec left, FROGGS left 23:54 kurahaupo left 23:55 kurahaupo joined