»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by Juerd on 28 August 2009.
00:07 lmc left 00:25 justatheory left 00:32 Student left, elmex left, synth left, lisppaste3 left, rjh left, garron left, blaze-x left, Woodi left, leedo_ left, Infinoid left, buu left, meteorjay left, yves left, solarion left, clkao left, christine left, integral left, dmpk2k left, TiMBuS left, rhr left, omega left, dbrock` left, Patterner left, cotto left, japhb left, hudnix left, wolverian left, mj41_ left, zostay left, ingy left, silug left, payload left, dalek left, zaphar_ps left, frettled left, diakopter left, sri_ left, mtve left, jan_ left, nothingmuch left, jql left, jrtayloriv left, Limbic_Region left, crythias left, simcop2387 left, zerhash left, Matt-W left, tylerni7 left, Grrrr left, sjohnson left, mdxi left, zev left, lucs left, mspauldi1g left, arnsholt left, Rint left, pjcj left, hcchien left, kcwu left, kst left, avar left, cls_bsd left, moritz_ left, allbery_b left, Intensity left, KatrinaTheLamia left, avuserow left, ezra left, pugs_svn left, s1n left, hugme left, nbrown left, mikehh left, BooK left, drbean left, sbp left, phenny left, pmichaud left, buubot left, devin left, Caelum left, ssm left, tak11 left, NorwayGeek|Away left, szabgab left, donaldh left, [particle] left, Confield left, JarJarBinks left, Maddingue left, Helios- left, kolibrie left, Khisanth left, frodwith left, nsh left, c9s left, PerlJam left, ewilhelm left, tomaw_ left 00:33 diakopter joined, jrtayloriv joined, TiMBuS joined, Limbic_Region joined, crythias joined, rhr joined, omega joined, tak11 joined, dbrock` joined, Student joined, elmex joined, dalek joined, Patterner joined, zaphar_ps joined, NorwayGeek|Away joined, synth joined, szabgab joined, simcop2387 joined, ssm joined, donaldh joined, avuserow joined, zerhash joined, lisppaste3 joined, arnsholt joined, mikehh joined, mspauldi1g joined, Confield joined, nbrown joined, tomaw_ joined, japhb joined, leedo_ joined, mj41_ joined, drbean joined, ingy joined, [particle] joined, hcchien joined, kst joined, hudnix joined, jan_ joined, meteorjay joined, cotto joined, hugme joined, lucs joined, zev joined, zostay joined, clkao joined, sri_ joined, avar joined, Woodi joined, integral joined, irc.freenode.net sets mode: +o diakopter, Helios- joined, mdxi joined, KatrinaTheLamia joined, nothingmuch joined, kolibrie joined, Khisanth joined, sjohnson joined, Intensity joined, yves joined, blaze-x joined, wolverian joined, pjcj joined, garron joined, Grrrr joined, frettled joined, kcwu joined, buu joined, buubot joined, Caelum joined, tylerni7 joined, silug joined, devin joined, s1n joined, jql joined, BooK joined, Rint joined, Matt-W joined, ewilhelm joined, nsh joined, dmpk2k joined, Infinoid joined, rjh joined, solarion joined, christine joined, mtve joined, allbery_b joined, moritz_ joined, cls_bsd joined, sbp joined, phenny joined, pugs_svn joined, ezra joined, pmichaud joined, irc.freenode.net sets mode: +oovo Matt-W moritz_ pugs_svn pmichaud, JarJarBinks joined, PerlJam joined, Maddingue joined, c9s joined, frodwith joined, irc.freenode.net sets mode: +o PerlJam 00:43 Whiteknight joined 00:54 payload joined, PZt joined, rhr_ joined 01:07 rhr left
jrtayloriv In NQP, if I'm trying to match the # sign in a token, can I just put it in quotes like '#', or do I have to do something special so that it's not treated as the beginning of a comment? 01:08
01:08 drbean left, drbean joined
pmichaud ...nqp? 01:12
nqp doesn't do regexes yet.
(it probably will by the end of september, but it doesn't do it today)
jrtayloriv lol -- oops PGE, sorry. 01:13
pmichaud oh. To match a #, it needs to be in single quotes for PGE, yes. 01:15
otherwise it's a comment.
jrtayloriv thanks.
diakopter vijs: say "blue" if 0 01:16
p6eval vijs 28370: OUTPUT«blue␤␤ time in interpreter: 0.006814 s␤»
diakopter perl6: say "blue" if 0
p6eval elf 28374, pugs, rakudo 0eaf62: ( no output )
01:17 lambdabot joined
diakopter starts 01:17
TimToady: ooohhhh; so that's what statement_mod_cond is for :) 01:18
01:23 lambdabot left 01:25 lambdabot joined
TimToady @karma diakopter 01:26
lambdabot diakopter has a karma of 22
crythias my karma ran over my dogma
lambda... the dance of the forbidden greek letter. 01:27
TimToady my lambda is wearing your kappa 01:28
crythias Omicron Gamma
TimToady psi! there's nothing nu. 01:29
crythias I was delta bad hand. 01:30
TimToady decom-mu-ting &
diakopter snicker
crythias Let's play a new gamma. 01:33
Iota try something ... what did you eta for dinner? 01:34
01:34 kcwu left
crythias If at first you don't compile, vi, vi again. 01:35
01:42 Whiteknight left 01:50 stephenlb left 01:51 [1]Limbic_Region joined 01:55 jrtayloriv left, jrtayloriv joined 01:57 dukeleto left 02:08 nihiliad joined, Limbic_Region left, [1]Limbic_Region is now known as Limbic_Region 02:30 dukeleto joined 02:33 lambdabot left 02:35 lambdabot joined
crythias perl6: 10 GOTO 10 02:42
p6eval pugs: OUTPUT«*** ␤ Unexpected "GOTO"␤ expecting operator␤ at /tmp/uOvopJLgG4 line 1, column 4␤»
..rakudo 0eaf62: OUTPUT«Confused at line 2, near "GOTO 10"␤in Main (src/gen_setting.pm:3469)␤»
..elf 28374: OUTPUT«Parse error in: /tmp/4XMflHYfTW␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: 10 GOTO 10␤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:210:in
..`_UNI…
crythias that's just scary
02:43 rhr joined
crythias perl6: 10 cls 02:43
p6eval rakudo 0eaf62: OUTPUT«Confused at line 2, near "cls"␤in Main (src/gen_setting.pm:3469)␤»
..pugs: OUTPUT«*** ␤ Unexpected "cls"␤ expecting operator␤ at /tmp/VlDMFOz83g line 1, column 4␤»
..elf 28374: OUTPUT«Parse error in: /tmp/V8stxc8WZO␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: 10 cls␤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:210:in
..`_UNIT'␤ …
crythias perl6: 10 PRINT "HELLO, WORLD!"; 02:44
p6eval elf 28374: OUTPUT«Parse error in: /tmp/60x5a8Pxkg␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: 10 PRINT "HELLO, WORLD!";␤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.…
..pugs: OUTPUT«*** ␤ Unexpected "PRINT"␤ expecting operator␤ at /tmp/o8h0QTPOZG line 1, column 4␤»
..rakudo 0eaf62: OUTPUT«Confused at line 2, near "PRINT \"HEL"␤in Main (src/gen_setting.pm:3469)␤»
crythias perl6: say "Ain't no thing but a perl thang" 02:45
p6eval elf 28374, pugs, rakudo 0eaf62: OUTPUT«Ain't no thing but a perl thang␤»
crythias perl6: require HiRes::Graphics; 02:46
p6eval rakudo 0eaf62: OUTPUT«invoke() not implemented in class 'Undef'␤in Main (/tmp/zhYNVOSfcj:2)␤»
..pugs: OUTPUT«*** Unsafe function 'require' called under safe mode␤ at /tmp/DOfshjyaaO line 1, column 1␤»
..elf 28374: OUTPUT«Undefined subroutine &GLOBAL::require called at (eval 122) line 3.␤ at ./elf_h line 5881␤»
02:47 dukeleto left 02:48 rhr_ left 03:12 Limbic_Region left 03:14 jrtayloriv left 03:22 jrtayloriv joined, __ash__ joined
tak11 pastebin.com/d7d6838ac <= anyone know how to fix that error when running perl Makefile.pl in trying to build pugs, 03:40
cabal update, says command not found*
03:52 crythias left 04:02 PZt left 04:15 __ash__ left 04:17 tak11 left 04:46 justatheory joined 04:48 justatheory left, justatheory joined 05:02 __ash__ joined 05:09 kent\n left 05:13 charsbar left 05:14 charsbar joined 05:15 Student left 05:28 rfordinal joined, justatheory left 05:29 masak joined
masak morning, #perl6! 05:29
TimToady top o' the evening t' ya 05:30
05:35 rfordinal left 05:45 __ash__ left 05:47 JimmyZ joined 06:05 kcwu joined
moritz_ \o/ 06:21
masak |o| 06:22
06:43 mberends joined
masak mberends: ahoj! 06:46
mberends hai masak, moritz_ !
I'm in a Windows classroom this week, trying out various ways of building Rakudo 06:48
masak last test I made work in Squerl: $dataset = Squerl::Dataset.new('').from('test'); my $sub = Squerl::Dataset.new('').from('something').filter('x' => 2); is $dataset.insert_sql($sub), 'INSERT INTO test SELECT * FROM something WHERE (x = 2)'
06:49 ruoso left
moritz_ so a dataset is a also an SQL builder? 06:49
masak yes, it outpus some sort of default SQL.
but it seems very overridable, so I guess different adapters supply dialect modifications ad lib. 06:50
s/pus/puts/ 06:57
moritz_ yesterday night I tried to implement some of thew new features of infix:<...> 07:04
but it depends on signature handling features that aren't available from perl yet (only PIR), it seems
unless... 07:05
rakudo: sub infix<....>(\$cap) { say $cap.perl }; 1, 2 .... 3, 4 07:06
p6eval rakudo 0eaf62: OUTPUT«Malformed routine definition at line 2, near "infix<...."␤in Main (src/gen_setting.pm:3469)␤»
moritz_ rakudo: multi sub infix<...>(\$cap) { say $cap.perl }; 1, 2 ... 3, 4
p6eval rakudo 0eaf62: OUTPUT«Malformed routine definition at line 2, near "infix<...>"␤in Main (src/gen_setting.pm:3469)␤»
moritz_ rakudo: multi sub infix:<...>(\$cap) { say $cap.perl }; 1, 2 ... 3, 4
p6eval rakudo 0eaf62: OUTPUT«Malformed routine definition at line 2, near "infix:<..."␤in Main (src/gen_setting.pm:3469)␤»
moritz_ rakudo: multi sub infix:<...>($cap) { say $cap.perl }; 1, 2 ... 3, 4
p6eval rakudo 0eaf62: OUTPUT«No applicable candidates found to dispatch to for 'infix:...'␤in Main (/tmp/NlVUcHTOME:2)␤»
moritz_ rakudo: multi sub infix:<...>(|$cap) { say $cap.perl }; 1, 2 ... 3, 4 07:07
p6eval rakudo 0eaf62: OUTPUT«Malformed routine definition at line 2, near "infix:<..."␤in Main (src/gen_setting.pm:3469)␤»
masak I think prefix:<|> is for call-side only.
moritz_ so what's the syntax for a signature that receives a raw capture?
masak and I don't really see what prefix:<\> would mean in a signature.
'Capture $cap', perhaps? 07:08
though even that would need to be special-cased, I guess...
moritz_ std: multi sub infix:<...>(\$cap) { say "hi" } 07:10
p6eval std 28370: OUTPUT«ok 00:03 98m␤»
07:14 explorer joined
masak moritz_: I don't see any example of \$var in any signature in S06. 07:14
std: multi foo(4) {} 07:15
p6eval std 28370: OUTPUT«ok 00:01 99m␤»
masak rakudo: multi foo(4) { say "OH FOUR" }; foo(4)
p6eval rakudo 0eaf62: OUTPUT«OH FOUR␤»
masak that is so cool. 07:16
moritz_ S06:2945:=item .cando(\$capture)
masak but that's a call as well, isn't it? 07:17
not a declaration.
07:17 iblechbot joined
moritz_ I think it's a declaration 07:18
STD.pm parses it.
but I think it's underspecced
07:19 nihiliad left
masak std: multi foo(\$capture1, \$capture2) {} 07:19
p6eval std 28370: OUTPUT«ok 00:01 96m␤»
07:19 ejs joined 07:20 donaldh left
JimmyZ rakudo: multi foo(Int $a) { say "Int" }; multi foo(String $a) { say "String" }; foo(4); foo('4'); 07:20
p6eval rakudo 0eaf62: OUTPUT«Malformed routine definition at line 2, near "foo(String"␤in Main (src/gen_setting.pm:3469)␤»
masak JimmyZ: Str.
JimmyZ rakudo: multi foo(Int $a) { say "Int" }; multi foo(Str $a) { say "String" }; foo(4); foo('4');
p6eval rakudo 0eaf62: OUTPUT«Int␤String␤»
JimmyZ masak: ;)
masak looks forward to '$a as Int' 07:21
moritz_ too 07:23
07:24 donaldh joined
moritz_ augment class Any { method sin($self as Num:) { ... } } 07:24
07:28 dbrock` left 07:29 ejs1 joined 07:33 cmv joined 07:35 am0c joined 07:38 ejs left 07:41 jauaor left, araujo left 07:48 cmv left 07:54 meppl joined, cmv joined 08:04 TiMBuS left 08:17 dukeleto joined
masak what's the well-thought-out-practice way to test that a given method call produces a given exception? 08:19
moritz_ 1) write an exception hierarchy 08:20
masak :P
moritz_ 2) write a test function that does the check
3) ...
Matt-W 4) PROFIT
moritz_ 4) Prophet!
masak my goal includes (1), but probably not the exception hierarchy you mean. 08:21
it's for Squerl.
moritz_: and your (2) is just evading my actual question...
moritz_ masak: I know. 08:22
masak: a few months ago TimToady++ added a thorough description of $! to the specs
masak: that all needs testing and implementing 08:23
r26968, if you're curious
08:24 zloyrusskiy joined
masak rakudo: class MyException {}; class Cranky { method foo() { die MyException.new } }; Cranky.new.foo 08:24
p6eval rakudo 0eaf62: OUTPUT«MyException()<0x2ad3a6f805e0>␤in method Cranky::foo (/tmp/k4r7IW97CC:2)␤called from Main (/tmp/k4r7IW97CC:2)␤»
masak rakudo: class MyException {}; class Cranky { method foo() { die MyException.new } }; try { Cranky.new.foo }
p6eval rakudo 0eaf62: ( no output )
masak rakudo: class MyException {}; class Cranky { method foo() { die MyException.new } }; try { Cranky.new.foo; CATCH { say "OH HAI" } }
p6eval rakudo 0eaf62: OUTPUT«OH HAI␤»
masak rakudo: class MyException {}; class Cranky { method foo() { die MyException.new } }; try { Cranky.new.foo; CATCH { say "OH HAI $!" } } 08:25
p6eval rakudo 0eaf62: OUTPUT«OH HAI MyException()<0x2b72fa807000>␤»
masak rakudo: class MyException {}; class Cranky { method foo() { die MyException.new } }; try { Cranky.new.foo; CATCH { say $! ~~ MyException } }
p6eval rakudo 0eaf62: OUTPUT«0␤»
masak o.O
probably stringifies on the way...
moritz_ rakudo: class MyException {}; class Cranky { method foo() { die MyException.new } }; try { Cranky.new.foo; CATCH { say $!.WHAT } 08:28
p6eval rakudo 0eaf62: OUTPUT«Unable to parse block; couldn't find final '}' at line 2, near ""␤in Main (src/gen_setting.pm:3469)␤»
masak it's not unlikely that I will need this for Squerl, so that might motivate me to write Perl 6 spectests.
moritz_ rakudo: class MyException {}; class Cranky { method foo() { die MyException.new } }; try { Cranky.new.foo; CATCH { say $!.WHAT } }
p6eval rakudo 0eaf62: ( no output )
moritz_ rakudo: class MyException {}; class Cranky { method foo() { die MyException.new } }; say "hi"; try { Cranky.new.foo; CATCH { say $!.WHAT } } 08:29
p6eval rakudo 0eaf62: OUTPUT«hi␤»
moritz_ am I doing something really stupid here?
Matt-W interesting
that looks... buggy
moritz_ ah, it segfaults 08:30
Matt-W Ah
masak work remains to be done here(TM).
QED.
Matt-W Buggy
rakudobug@...
Matt-W gets the fly spray
moritz_ btw rakudo auto-updating on the p6eval server is currently b0rked
I tried to be too clever
masak :/ 08:33
rakudo: say 1/0; say "Alive"; say (1/0).Num 08:35
p6eval rakudo 0eaf62: OUTPUT«Alive␤Divide by zero␤»
masak note that the first &say call doesn't print anything.
not even a newline.
masak submits rakudobug
moritz_ masak: I just submitted the segfault, FYI 08:36
masak: I think yours is already submitted, but I'm not sure
masak moritz_: ok. 08:37
submitting it Justin Case.
moritz_ masak: could you please run t/spec/S32-num/rat.t and tell me if it succeeds? 08:42
masak runs it
whoa, lots of tests... 08:44
PASS
moritz_ thanks
on my laptop at home it dies at the end
and I have no idea why
I nuked the parrot build 08:45
and started from a fresh rakudo checkout
masak hm, but it appears I didn't have the latest version... running again.
hm, and it quickly becomes evident that I need to rebuild Rakudo itself. ;) 08:47
rakudo: my %h; %h{42} = 1; say %h.keys[0].WHAT 08:57
p6eval rakudo 0eaf62: OUTPUT«Str()␤»
masak currently, since Rakudo hashes coerce to Str, there's not much of an issue concerning hash key identity. which equality predicate will be used when general keys can be added? 08:59
09:00 synth left
jnthn masak: I'd guess === 09:00
masak jnthn! 09:01
jnthn masak!
masak jnthn: sounds reasonable to me.
jnthn has awful wifi at this hotel...but it's a nice hotel otherwise.
Going to Korea tomorrow.
masak rakudo: say "OH HAI" === "OH HAI"
p6eval rakudo 0eaf62: OUTPUT«1␤»
masak phew.
09:02 M_o_C joined
jnthn masak: Aye, === generally does the right thing for value / referency type-y things. 09:02
masak rakudo: say "OH HAI" === "OH " ~ "HAI"
p6eval rakudo 0eaf62: OUTPUT«1␤»
masak \o/
jnthn Thus why it feels right to me here.
masak (Perl 6)++
jnthn Indeed.
jnthn is enjoying his travels, but also looking forward to digging back into Rakudo hacking. 09:03
masak aye. 09:04
jnthn wonders what the RT bug count is 09:07
Hopefully, I get to close up some of the oldest ones in the next couple of months. 09:08
masak jnthn: we're at 494 new/opened/stalled RT tickets. 09:09
pushing 500 :)
jnthn oh noes
epic need for rakudo hacking 09:10
masak wonders how pmichaud++'s PGE refactors are progressing
jnthn hopes they're going well, but hasn't been watching or talked to pm of late 09:11
masak moritz_: oh, and that test file you asked about PASSes here even after I update Rakudo.
moritz_ masak: thanks 09:12
09:19 am0c left 09:23 iblechbot left 09:26 agentzh joined 09:44 pmurias joined
pmurias diakopter: do we have any ideas how vivjs should be called once it's extracted from viv? 09:44
masak TimToady: Google gives me 10 hits for 'guthlophikralique', all of them related to A12 :) 09:48
hm, I probably just created an 11th hit. 09:49
rakudo: class A { method foo { say "A"; nextsame } }; class B { method foo { say "B"; nextsame } }; class C is A is B { method foo { say "C"; nextsame } }; C.new.foo 09:50
p6eval rakudo 0eaf62: OUTPUT«C␤A␤B␤»
masak \o/
if &foo is the way to refer to the sub 'foo', what's the way to refer to a method '.foo' of a class C? 09:53
09:54 rfordinal joined
masak ah, C::foo 09:55
rakudo: class A { method foo { say "original" } }; (&A::foo).wrap({ say "before"; callsame; say "after" }); A.new.foo
p6eval rakudo 0eaf62: OUTPUT«before␤original␤after␤»
masak that is so cool.
who needs the MONKEY_TYPING pragma when that's possible? :P 09:56
09:57 rfordinal left
masak rakudo: sub foo { say "=" x 40 }; for reverse ^40 -> $n { &foo.wrap({ say "=" x $n; callsame; say "=" x $n }); }; foo 10:00
p6eval rakudo 0eaf62: OUTPUT«␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤========================================␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤»
pmurias shouldn't it be MONKEY_PATCHING?
masak pmurias: yes, but it got monkeypatched :P
(there was a spec change)
in the above code, why doesn't $n bind like I think it should? 10:01
I had hoped it would produce a nice triangle of ='s. 10:02
10:03 payload left
pmurias rakudo: sub foo { say 40 }; for reverse ^40 -> $n { &foo.wrap({ say $n; callsame; say $n }); }; foo 10:05
p6eval rakudo 0eaf62: OUTPUT«0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤40␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤»
pmurias rakudo: sub foo { say 40 }; for reverse ^40 -> $n { say $n;&foo.wrap({ say $n; callsame; say $n }); }; foo 10:06
p6eval rakudo 0eaf62: OUTPUT«39␤38␤37␤36␤35␤34␤33␤32␤31␤30␤29␤28␤27␤26␤25␤24␤23␤22␤21␤20␤19␤18␤17␤16␤15␤14␤13␤12␤11␤10␤9␤8␤7␤6␤5␤4␤3␤2␤1␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤40␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0􏿽xE2
mikehh rakudo (0220cc2) builds on parrot r41428 - make test / make spectest (up to 28374) PASS - Ubuntu 9.04 amd64
pmurias masak: looks like some sort of a scoping bug 10:07
masak submits rakudobug
rakudo: sub foo($n) { say $n; if $n { callsame($n-1) } }; foo(1)
p6eval rakudo 0eaf62: OUTPUT«1␤Null PMC access in clone()␤in sub foo (/tmp/LZ0ZSuvObp:2)␤called from Main (/tmp/LZ0ZSuvObp:2)␤»
masak submits rakudobug
10:09 iblechbot joined 10:13 agentzh left
moritz_ wow, that reddit submission and twittering of my blog post brought about 1k additional visitors to my website (in one day) 10:26
10:26 rfordinal3643 joined
masak there's still a trickle of tweets about it. 10:26
10:32 muixirt joined
muixirt rakudo: my @a; @a[0, 0] = 1; 10:33
p6eval rakudo 0eaf62: ( no output )
10:34 JimmyZ left
muixirt rakudo: my @a; @a[0, 0] = 1; say @a.perl 10:35
p6eval rakudo 0eaf62: OUTPUT«[undef]␤»
Matt-W moritz_: the one about rats? 10:43
moritz_ Matt-W: aye 10:44
somehow I regularly misjudge the popularity of my blog posts 10:45
I got lots of good feedback on the "when we reach 100% we did something wrong", but I thought it was boring and lengthy 10:46
now lots of talk about Rats, just because it has a pun in the title?
Matt-W I think it's also because there are a lot of programmers out there who are sick of dealing with floating point 10:48
that's certainly why *I* find it interesting
11:00 rfordinal joined, dakkar joined
masak the title certainly helps, though. 11:02
moritz_: "It might come as a shock to you if you haven't looked at Perl 5's source tree, and never compiled it from source and run the tests (and actually looked at the results), but it's true." -- you call that boring? :) it's in-depth journalism! 11:06
moritz_ :-)
I should ask here for creative titles more often :-) 11:07
masak "Rats, Cats and KitchenSinks, oh my!" :P 11:08
moritz_ only when they are implemented :-)
masak fair enough.
moritz_ rakudo: say KitchenSink.new
p6eval rakudo 0eaf62: OUTPUT«Could not find non-existent sub KitchenSink␤»
moritz_ we had a thread called "reuse everything but the kitchen sink" on p6l. My first thought was "why shouldn't KitchenSink be reusable too?" 11:09
11:11 rfordinal3643__ joined 11:15 am0c joined 11:16 frederico joined 11:17 baest left, baest joined 11:20 rfordinal3643 left 11:22 rfordinal3643 joined 11:23 rfordinal left, scottp joined 11:25 M_o_C left 11:32 payload joined 11:33 am0c left, rfordinal joined 11:34 am0c joined
masak rakudo: class Forest { class Frog { method speak { say "ribbit ribbit" } }; has Frog $.frog; method new() { my Frog $frog .= new; self.bless(*, :$frog) } }; Forest.new 11:34
p6eval rakudo 0eaf62: OUTPUT«Null PMC access in type()␤in method Forest::new (/tmp/FM8h5DDtSA:2)␤called from Main (/tmp/FM8h5DDtSA:2)␤»
masak submits frog-bug
moritz_ masak: nested classes are documented to be no working on the status page (just FYI) 11:35
masak that's ok.
they also shouldn't be emitting Null PMC access errors. :) 11:36
moritz_ aye
moritz_ is pleased to notice that some core modules are deprecated in blead perl 11:38
11:40 rfordinal3643 left 11:42 rfordinal3643__ left 11:43 rfordinal3643 joined 11:54 frederico left, chturne joined 11:56 frederico joined 11:57 rfordinal3643jlj joined 12:02 rfordinal left
masak rakudo: sub foo { say "OH HAI" }; &foo = &say; foo 12:05
p6eval rakudo 0eaf62: OUTPUT«␤»
moritz_ excuse me?
masak :)
it's a bug, right?
moritz_ yes, but what is the bug? 12:06
masak I reassigned &foo to &say.
and Rakudo let me.
moritz_ that &foo is assignable? or that it doesn't print the "OH HAI"+
masak that &foo is assignable.
moritz_ ok
masak the non-printing of "OH HAI" is just a consequence of &foo being assignable.
masak submits rakudobug 12:07
12:15 rfordinal3643 left 12:17 ruoso joined
ruoso bom dia, #perl6 12:17
masak o/ 12:19
rakudo: sub funny-smiley {}; say &funny-smiley.signature.perl
p6eval rakudo 0eaf62: OUTPUT«:()␤»
masak :()
moritz_ \o| 12:20
masak rakudo: sub zero(0) {}; say &zero.signature.perl 12:21
p6eval rakudo 0eaf62: OUTPUT«:(Int ::TYPE_CAPTURE18 where all({ ... }))␤»
masak ponders whether to contribute a patch for that
rakudo: say (:()).WHAT 12:23
p6eval rakudo 0eaf62: OUTPUT«The opcode 'descalarref_p' (descalarref<1>) was not found. Check the type and number of the arguments␤in Main (src/gen_setting.pm:3469)␤»
masak whoa!
masak submits rakudobug
what is this, a year ago?
12:27 PZt joined
moritz_ masak: betterworld reported a rakudo segfault with a 13 character program :-) 12:28
masak impressive!
moritz_ I'm trying to convince him to write a bug report 12:29
masak of course he should? why is there even hesitation? :)
moritz_ dunno 12:30
say 4.HOW.HOW
masak rakudo: say 4.HOW.HOW
p6eval rakudo 0eaf62: ( no output )
12:30 rfordinal3643jlj left
masak indeed. 12:30
betterworld++
dalek kudo: e9a7966 | moritz++ | t/harness:
submit smoker name to smolder, jdv79++
12:40
12:44 iblechbot left
pugs_svn r28375 | pmurias++ | [vivjs] make say print stuff in the firebug console in --jsx mode 12:52
r28376 | pmurias++ | [vivjs] extracted vivjs from viv into src/perl6/vivjs
pmurias diakopter: i extracted vivjs from viv if we have a better name we could rename it now 12:53
moritz_ does that mean the invocation to run vijs has changed? 12:57
pmurias yes 12:58
moritz_ to?
pmurias it's now vivjs
moritz_ pmurias: does it still work together with 'make snap'? 12:59
pmurias what's that?
moritz_ that's the make target in src/perl6/ which the evalbot uses to compile STD.pm
afk 13:00
pmurias moritz_: coping vivjs should do it
13:03 zloyrusskiy left
pmurias diakopter: i'm disabling the interpreter took * seconds thing as it's annoying 13:05
pugs_svn r28377 | pmurias++ | [vivjs] slight cleanup
masak phenny: tell moritz_ does this help to make a more complete modules graph for proto? gist.github.com/191981 13:06
phenny masak: I'll pass that on when moritz_ is around.
13:09 scottp left
pugs_svn r28378 | jimmy++ | [Spec/S02-bits.pod]wrapping the line. 13:18
13:28 SmokeMachine joined
pmurias ruoso: gcc -L. -lperl -I . t-smopp5/basic.c should link with libperl.a? 13:28
diakopter vijs: say 3
p6eval vijs 28370: OUTPUT«read_file 'js/json2.js' - sysopen: No such file or directory at viv line 165␤»
pmurias diakopter: hi 13:29
diakopter hi
13:29 JimmyZ joined
pmurias diakopter: does the extracted vivjs work for you? 13:30
diakopter why did you use vivjs instead of vijs
it doesn't matter though; hopefully someone will contribute a better name :) 13:31
pmurias i forgot it's vijs 13:32
diakopter np
technically I could work on fixing it in p6eval, but I don't have access yet to the new p6eval chroot on my vps 13:33
ruoso pmurias, -l is for dynamic linking I think 13:35
pmurias and for static? 13:38
diakopter since when is svn update supposed to delete files with uncommitted changes without prompting
I guess I'm supposed to check whether the directory holding the files with uncommitted changes has been deleted :[ :[ 13:39
pmurias svn is bug ridden
diakopter :[
there went a couple hundred lines 13:40
13:41 JimmyZ_ joined
Patterner -l is for telling the linker the name of a library. -static and -shared are for the type of linking. 13:42
diakopter ok; I was wrong; it only said it D them; the modified files are still there in the original dir 13:47
but it did delete the unmodified files
you'd think the console output of svn update would say 'D this_file but din't actually delete it' 13:48
13:49 payload left
diakopter (but no, it just said:) 13:52
D js/builtins.js
D js/interp.js
D js/README
D js/libBigInt.js
which frightened me. :)
13:59 alester joined, synth joined 14:00 iblechbot joined 14:01 rfordinal joined 14:05 JimmyZ left 14:08 icwiener joined 14:10 crythias joined
crythias perl6: say Hello, world! 14:11
p6eval elf 28378: OUTPUT«Parse error in: /tmp/lb2nZYzVMP␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say ␤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…
..rakudo 0eaf62: OUTPUT«Confused at line 2, near "!"␤in Main (src/gen_setting.pm:3469)␤»
..pugs: OUTPUT«*** ␤ Unexpected "!"␤ expecting "::", dot, ":", "(", term postfix, operator or ","␤ at /tmp/yfP38kcNWC line 1, column 74␤»
masak crythias: you need quotes, not just massive amounts of whitespace :P
crythias well, that's not what the intro says
masak which intro? 14:12
crythias the whatchacallit. motd
topic
masak looks
crythias say 3
perl6: say 3
p6eval elf 28378, pugs, rakudo 0eaf62: OUTPUT«3␤»
crythias ok. but that's a number.
masak well, there's a difference between 3 and 'hello world'.
3 is a number, it doesn't need quotes. 14:13
crythias say 3+3
pmurias diakopter: commit early, commit often and you'll limit the amount of work that gets wasted
crythias perl6: say 3+3;
p6eval elf 28378, pugs, rakudo 0eaf62: OUTPUT«6␤»
moritz_ masak: I found the source of my weird testing bug... ~/.perl6/lib contained a Test.pm which tainted rakudo's spectest
phenny moritz_: 13:06Z <masak> tell moritz_ does this help to make a more complete modules graph for proto? gist.github.com/191981
moritz_ thanks phenny
14:13 muixirt left
masak moritz_: that's happened to me also. let's eradicate all Test.pm imposters before it's too late! 14:14
crythias perl6: say "Test.pm"
masak hm, 'impostors'?
p6eval elf 28378, pugs, rakudo 0eaf62: OUTPUT«Test.pm␤»
moritz_ and merge back all changes worth keeping to rakudo's Test.pm
masak aye.
though most are probably just old versions.
moritz_ masak: re project list, any data between 2009-02 and 2009-06? 14:15
erm, 2009-03 and 2009-06
masak looks
oh, indeed. 14:16
I'll update the gist.
moritz_ great
btw I found that my way of obtaining the data is unreliable
masak having done it manually, I'm not surprised :P 14:17
moritz_ it uses the @date form of git revisions
but in that case the date refers to the reflog, not to the commit date of the objects
masak there was a merge around 2009-02-16, for example. it wasn't really possible to give accurate numbers for a while.
14:17 KyleHa joined
moritz_ so it depends on when I updated my proto repo :( 14:17
masak huh. 14:18
14:18 abra joined
masak would you prefer one data point per date, or several? 14:19
moritz_ dontcare
oh wait
at most one data point per date 14:20
but I don't need a datapoint for every date
masak right.
diakopter pmurias: that might be a good point, if I felt responsible in any way for deleting/losing my own work (and if that had actually happened). 14:21
moritz_ gnuplot++ # being smart enough when plotting dates
diakopter: did the 'svn up' delete files that had local modifications? 14:22
diakopter no, as I stated above
moritz_ I didn't read all the backlog
masak moritz_: gist.github.com/191981
14:23 justatheory joined
diakopter I was perturbed that the js/ directory was deleted at all; I didn't realize I was assenting to that when I said it was ok for pmurias to fork viv 14:25
moritz_ I thought it was just moved 14:26
masak: rakudo.de/proto-projects-list.png updated
diakopter it might have been 'svn move'd, but it didn't merge my changes before the move.
14:26 FCO joined
masak moritz_: nice! 14:27
moritz_ diakopter: that's one of svn's shortcomings
masak something in early July doesn't look right, though...
s/July/June/ 14:28
moritz_ that might have been the period where I didn't update proto for qutie some time 14:29
masak bah, let's see if I can't automate this after all... 14:30
moritz_ a better method for obtaining the file contents at a given date would be most welcome 14:32
14:33 SmokeMachine left 14:35 __ash__ joined 14:39 JimmyZ_ left 14:40 Psyche^ joined
pugs_svn r28379 | moritz++ | [src/perl6] update 'make snap' to symlink vivjs/, not js/ 14:41
14:41 Patterner left, Psyche^ is now known as Patterner 14:42 __ash__ left 14:44 NorwayGeek|Away left
masak hm, how do I show the contents of a file from another revision/commit, preferably without using git-checkout? 14:44
I asked on #git, but they're having so much fun right now I don't think they saw my question. :) 14:45
BinGOs cherry-pick perhaps ? 14:46
masak well, I don't want to apply any new changes, just navigate the past.
BinGOs yeah, it appears that will apply the commit. 14:47
BinGOs goes back to idling. 14:48
Infinoid masak: git show <rev>:path/file
masak Infinoid: thanks.
14:49 mberends left 14:50 SmokeMachine joined
pugs_svn r28380 | moritz++ | [evalbot] fix path to vivjs 14:54
14:54 p6eval left, p6eval joined
moritz_ vijs: say 3 14:54
p6eval vijs 28379: OUTPUT«3␤»
diakopter moritz_: thanks :D 14:55
14:56 lucs_ joined 14:59 frederico left
masak moritz_: new data, completely undoctored. I hope I got it right. it doesn't seem to square exactly with the previous figures. gist.github.com/191981 14:59
15:00 FCO left
moritz_ masak: updated rakudo.de/proto-projects-list.png with your new data 15:04
masak still a strange discontinuity in June... 15:06
moritz_ anyway, for looking at trends it's good enough
masak moritz_: I can't help but point out that "Date" collides with... a date.
moritz_ masak: should I remove the label altogether? 15:07
pugs_svn r28381 | diakopter++ | [vijs] implement Bools & rudimentary (guessing :) Bool coercion, also trailing if condition on statement
masak possibly. 15:08
diakopter vijs: say 3 if 0; say 2 if True;
p6eval vijs 28379: OUTPUT«2␤»
moritz_ masak: done
diakopter perl6: say 3 if 0; say 2 if True; 15:09
moritz_ masak: would you like to have the scripts in the proto repo?
p6eval pugs, rakudo 0eaf62: OUTPUT«2␤»
..elf 28380: OUTPUT«Can't locate object method "Bool" via package "True" (perhaps you forgot to load "True"?) at (eval 123) line 6.␤ at ./elf_h line 5881␤»
TimToady \⚉/
masak moritz_: that might be a good idea. feel free to commit.
moritz_ masak: will do that from $home later today/tonight
masak TimToady: nice, long arms, there. :)
moritz_ TimToady: angeber :-)
(angeber = poser) 15:10
rakudo: class A { method b() { } }; A.new.b(3)
p6eval rakudo 0eaf62: OUTPUT«positional inside named args at position 2␤in method A::b (/tmp/ReMxAVMt4T:2)␤called from Main (/tmp/ReMxAVMt4T:2)␤»
15:15 Student joined
diakopter perl6: say True if "0" 15:15
p6eval elf 28381, pugs, rakudo 0eaf62: ( no output )
diakopter vijs: say True if "0"; 15:16
p6eval vijs 28379: ( no output )
diakopter vijs: say True
p6eval vijs 28379: OUTPUT«1␤»
diakopter perl6: say True
p6eval pugs, rakudo 0eaf62: OUTPUT«1␤» 15:17
..elf 28381: OUTPUT«True␤»
moritz_ diakopter: see t/spec/S03-operators/context-forcers.t for inspiration
crythias vijs: say True if diakopterrocks=1;
p6eval vijs 28379: OUTPUT«Undeclared routine:␤ diakopterrocks used at line 1␤»
crythias vijs: say True if theRunningMan>theCabbagePatch 15:18
p6eval vijs 28379: OUTPUT«Undeclared routines:␤ theCabbagePatch used at line 1␤ theRunningMan used at line 1␤execute(): execute error: undefined not yet implemented; srsly!!?!?␤last: termish␤0,1,2,phase,postDo,eval_args,invoker,context at vivjs line 66.␤»
15:19 iblechbot left
moritz_ vijs: say True; 15:21
p6eval vijs 28379: OUTPUT«1␤»
diakopter vijs: say True # breaks :D
p6eval vijs 28379: OUTPUT«1␤» 15:22
diakopter I mean
vijs: say True if False # breaks :D
p6eval vijs 28379: OUTPUT«execute(): execute error: TypeError: Cannot read property 'result' of undefined at vivjs line 66.␤»
15:23 payload joined 15:24 am0c left 15:27 cmv left
pugs_svn r28382 | jimmy++ | [zh-cn/syn/S02-bits.pod]added more chinese description, just warm-up. 15:28
15:35 anonymous5783 joined 15:36 dakkar left 15:41 masak left, nihiliad joined 15:43 ejs1 left 15:47 payload left 15:53 ejs joined 15:58 a2n joined 16:03 __ash__ joined 16:04 ejs1 joined 16:05 a2n left
crythias I tried to think about perl being prel (putting regular expressions linearly) but then I also thought .. what the heck does this have to do with keeping my hair nice and clean? Until I had someone regularly express that to me, for which, of course, I was grateful. 16:06
diakopter I misread prel for purel, and I thought, "you put Purel in your hair?" 16:07
16:08 anonymous5783 left
pugs_svn r28383 | diakopter++ | [vijs] make single-statement statement_lists work 16:08
crythias of all nits to pick... 16:09
16:11 payload joined 16:12 ejs left 16:13 hercynium joined
pugs_svn r28384 | diakopter++ | [vijs] make single-statement statement_lists with a false trailing condition work :) 16:14
diakopter vijs: say 2 if 0 16:15
p6eval vijs 28379: ( no output )
diakopter vijs: say 2 if 1
p6eval vijs 28379: OUTPUT«2␤»
TimToady vijs: say (2 if 0) 16:16
p6eval vijs 28379: OUTPUT«Undef␤»
diakopter rakudo: say (2 if 0)
p6eval rakudo 0eaf62: OUTPUT«␤»
TimToady well, I suppose that's about as close as you can get to Nil so far
but rakudo is correct here 16:17
crythias Especially if you don't want to violate the restraining order.
TimToady a Nil interpolates () into a list
pugs_svn r28385 | diakopter++ | [vijs] make the borogoves more mimsy 16:18
TimToady around here I usually have to restrain the violation orders
diakopter pugs: say (2 if 0) 16:20
p6eval pugs: OUTPUT«*** ␤ Unexpected "if"␤ expecting operator or ")"␤ at /tmp/o6Unwpdbl7 line 1, column 8␤»
16:20 ejs2 joined
crythias TimToady rearranged is y Do it, Mat? 16:20
diakopter would the real TimToady please stand up, please stand up? 16:21
pmichaud good morning, #perl6 16:25
diakopter or I'm a Dotty
crythias gotta love those dotty order violators. 16:26
diakopter pmichaud: 'morn
TimToady pmichaud: \⚉/
diakopter don't be mournin'
TimToady just keeping everyone honest about their unicode :) 16:27
pmichaud TimToady: got time for two questions about Cursor.pmc ?
TimToady soitnly
maybe diakopter can answer them :)
diakopter has been reading it a bit lately 16:28
pmichaud currently Cursor.pmc has a number of methods like add_macro, add_enum, etc. Would those more properly be placed into STD itself, or should they exist for all Cursor objects?
(do_need, do_use, etc.)
TimToady they're probably more related to STD, yes, but done in Cursor because gimme5 wasn't up to translating it yet... 16:29
pmichaud okay
that's what I figgered
second question is longer
diakopter starts typing the answer sooner
16:29 ejs1 left
TimToady but also because implementation kinda depends on the backend in P5, so impl dependent 16:30
pmichaud currently Cursor.pmc does the bulk of its work using lazymap and closures
TimToady well, tries to avoid lazymap as much as possible
pmichaud whereas PGE has done it by inlining the code
for example, PGE actually builds an inlined loop for handling the star quantifier, and runs that loop relatively lazily 16:31
TimToady which is more or less what all the "r" variants do under ratcheting
pmichaud recognizing that Cursor.pmc is really using lazymap as a form of continuation handling
do you have a gut feeling for whether PGE should move more towards the way that Cursor is handling things, or stick with the "generate a block of inlined code"?
PGE has gone with the inlined code approach because subroutine calls in parrot tend to be a bit expensive, so it's betting that the inlined code approach is more efficient. 16:32
That could be entirely wrong, though.
TimToady well, in theory the VM should do that for you :)
pmichaud should be inlining the code? heh 16:33
that's a nice theory.
TimToady not just theory anymore for JS
with tracing
anyway, while I've put some effort into inlining some stuff in the generated STD.pmc code, that could be construed (eventually) as a microoptimizaiton 16:34
diakopter interjects: mepostulates the non-inlined approach would be more favorable for LTM, since more state can be cached, per arguments-set 16:35
TimToady in a memoization sense, you mean?
diakopter that was my [probably dead wrong] thought, yeah 16:36
TimToady well, Cursor does memoize a number of things explicilty
TimToady has tagnly figners toady
anyway, most of the overhead of STD matching doesn't seem to be in the quantifiers 16:38
16:38 crythias left
pmichaud oh 16:38
where is the overhead?
in the alternations?
TimToady sec, ran NYTProf just yesterday...
pmichaud the other advantage/reason for the mechanism that PGE currently uses is that it holds down GC pressure by not creating lots of gc-able objects 16:39
since object creation and collection is a bit expensive for parrot also
anyway, after looking at things over the past couple of weeks, I've come to a few conclusions (more) 16:40
1. I'm basically rewriting PGE from the ground up to be able to better handle protoregexes. It might even get a new name :)
2. I have three basic approaches for the code that PGE generates
2a. Continue to generate inlined code, as PGE has done before. Has the advantage that I already have existing code to draw from and we know it works somewhat okay, disadvantage might be that it's less portable to non-Parrot platforms (but I suspect that could be fixed as well) 16:41
2b. Use something much closer to Cursor,pmc, which basically uses closures and lazymap to handle backtracking 16:42
diakopter (2b similar to my grammar-interpreter as parser-generator)
pmichaud 2c. Do something halfway between the two -- inline the code but use continuations to handle the loops and other constructs 16:43
diakopter (2c even more similar to... )
pmichaud (currently PGE uses simple stacks to handle "lightweight continuations" 16:44
[particle] i suspect 2a is easiest to debug in current parrot
pmichaud actually, they may be about equal
oh, another observation: it looks very likely that I'll be able to write much or most of this in NQP
which might have some big wins for portability 16:45
TimToady you can seen at least the top index.html at wall.org/~larry/nytprof
[particle] i mean to say, debug *and profile*
TimToady but I didn't copy over all the subfiles because some of them are huge
pmichaud [particle]: actually, I'd expect 2b to be easier to profile -- more subroutine entry/exit points 16:46
2a makes a regex into a single subroutine
[particle] hrmm, true
TimToady taking GC pressure into account is also potentially considered a microoptimization with good generational GC
[particle] i was thinking that we can't really profile yields well yet
but it would be easier than One Big Sub 16:47
16:47 stephenlb joined
pmichaud [particle]: oh, with 2b/2c we probably don't have yields 16:47
16:48 __ash__ left
pmichaud i.e., the "coroutines" are actually managed as list of cursors and closures 16:48
*lists
[particle] well, it seems to me that 2c can be more easily accomplished today, since you already have the inlining code ready, and that you can move from 2c to 2b
so perhaps 2c is the practical way to go 16:49
pmichaud at the moment they all seem equal-effort
PerlJam /me votes for 2c since you can vary the components of the mix from 0 to 100%
16:49 iblechbot joined
pmichaud true 16:49
PerlJam what [particle] said about practicality
pmichaud TimToady: nytprof seems to put a fair bit of time in SUBSUMEr 16:50
TimToady the main thing is you have to be very clear about what is mutable/immutable and never use continuations for anything mutable
pmichaud copying a capture set into multiple cursors seems like it could get expensive (more) 16:51
PGE also avoids that, but at the cost of making its cursors mutable, which I agree isn't really desirable
TimToady thing is, when you're ratcheting you can cheat with a mutable cursor
which is a lot of the time 16:52
pmichaud well, it's a lot of the time in STD :)
and in parsers
but not necessarily regexes :)
TimToady nod
pmichaud and not necessarily other grammars
*hll grammars
still, the point is a goodone
16:53 explorer left
pmichaud does STD currently cheat with mutable cursors in ratcheting? 16:53
if so, I wouldn't expect SUBSUMEr to be quite so high. Or I'd be concerned about the time cost of SUBSUME without-the-r :) 16:54
I have to go pick up kid from school (early release today)
TimToady SUBSUMEr still makes a fresh cursor
pmichaud okay, that's what I thought it did 16:55
I'll be back in an hour-ish
I'll backlog for other comments and thoughts -- thanks, this is all hugely helpful
16:57 __ash__ joined 17:09 MrRandom joined
MrRandom Hello, Which implementation of Perl 6 will be official one? 17:11
TimToady All of them
they're not Perl 6 if they don't pass the test suite
pugs_svn r28386 | diakopter++ | [vijs] implement leading if conditional - if 1 { say 3 }
diakopter vijs: if 0 { say 3 }; if True { say True ~ ' and ' ~ True } 17:12
p6eval vijs 28379: OUTPUT«1 and 1␤»
diakopter std: if 0 { say 3 } if True { say True ~ ' and ' ~ True }
p6eval std 28379: OUTPUT«===SORRY!===␤Missing semicolon or comma after block at /tmp/0GySzft0I0 line 1:␤------> if 0 { say 3 } ⏏if True { say True ~ ' and ' ~ True }␤ expecting any of:␤ infix stopper␤ statement␤Undeclared routine:␤ if used at line
..1␤FAILED 00:01 95m␤»
diakopter waits 17:13
lots o backtracking methinks
MrRandom Ok, so which implementation is 'the best' ? Which is worth of involve in?
diakopter MrRandom: whichever one's host language[s] you enjoy writing the most?
TimToady there are many different dimensions to be 'best' in 17:14
diakopter or whichever one's code repository software you enjoy using the most
17:14 ejs1 joined
diakopter :) 17:14
MrRandom diakopter: c# 17:15
diakopter well, it's just you and I in that camp, and perhaps jnthn on a good day
17:17 ejs1 left, cmv joined 17:18 abra left
TimToady diakopter: what does "lots o backtracking" refer to? 17:21
diakopter failing on the std: input seemed very much slower than succeeding on the prior input
maybe just p6eval host busyness 17:22
17:22 ejs2 left, MrRandom left
TimToady time appears to be identical here, modulo my CPU ticker 17:23
diakopter ok 17:24
sry for the noise
TimToady well, but it's an interesting question
fact is that the error can fail as soon as sees the second {
diakopter if 0 { say 3 } if else { say True ~ ' and ' ~ True } 17:25
TimToady so in theory it could be quite a bit faster to fail, if there's lots more
diakopter std: if 0 { say 3 } if else { say True ~ ' and ' ~ True }
p6eval std 28379: OUTPUT«===SORRY!===␤Missing semicolon or comma after block at /tmp/1eu9H1sm9r line 1:␤------> if 0 { say 3 } ⏏if else { say True ~ ' and ' ~ True }␤ expecting any of:␤ infix stopper␤ statement␤Undeclared routines:␤ else used at line 1␤
.. if used at li…
diakopter std: if 0 { say 3 } if XXX
p6eval std 28379: OUTPUT«===SORRY!===␤Missing semicolon or comma after block at /tmp/wHZN9tSPB0 line 1:␤------> if 0 { say 3 } ⏏if XXX␤ expecting any of:␤ infix stopper␤ statement␤Undeclared name:␤ XXX used at line 1␤Undeclared routine:␤ if used at line
..1␤FAILED 00:0…
diakopter std: if 0 { say 3 } if {
p6eval std 28379: OUTPUT«===SORRY!===␤Missing semicolon or comma after block at /tmp/2109IVn99E line 1:␤------> if 0 { say 3 } ⏏if {␤ expecting any of:␤ infix stopper␤ statement␤FAILED 00:02 95m␤»
TimToady might actually catch it sooner
but it might be transmogrifying a later error into the actual error 17:26
don't remember
diakopter it's thinking fourth dimensionally
TimToady actually, it's just an extra check at the end of a statement to see if there's trailing trash 17:27
which it might or might not have got to by backtracking 17:28
pmichaud hmmm, I wonder if I could speed up cursor generation by making the captures COW 17:39
TimToady pmichaud: you can look at all the nytprof data now, if you don't mind slow uploading over DSL 17:40
maybe, but the position changes constantly, so probably not much gain
for the spots where only the position changes, I use cursor_tweak to mutate the position in the current cursor (when I think I can get away with it) 17:41
pmichaud right
I don't mind creating multiple cursors, it's cloning the existing capture set that looks expensive to me
TimToady on the nytprof stuff, don't try going into STD.pm because nytprof doesn't know about STD.pmc
pmichaud (granted it's a shallow clone) 17:42
TimToady if there are long stretches with the same non-pos data, that could be broken out and referenced by a [pos,immutableptr] pair 17:43
pmichaud right
TimToady you still have to clone for submatches though
pmichaud that's kinda where I've been heading
TimToady or go back to an approach I tried once before I knew what I was doing, and keep all the bindings as a linked list 17:44
pmichaud ick
not going there :)
TimToady but then the clone only carries a linked list pointer
pmichaud interesting 17:45
TimToady but yeah, Cursor currently depends on the hashness of itself to make it also a proto Match
17:45 hercynium left, araujo joined
TimToady the problem with linked list is that you have to be able to manufacture a Match-ish object any time the user wants $<foo> 17:46
pmichaud well, here's the sort of thing I'm looking at
/ [ <foo>+ <bar> ] [ abc ]* /
ooops
/ [ <foo>+ <bar> ]* [ abc ]* /
anyway, we get through the first part and end up with some cursors that have $<foo> and $<bar> in them 17:47
TimToady which are already arrays because the outer rule set them up that way
pmichaud but in the [ abc ]* part (which could be more complex, of course), we end up making clones of the hash containing $<foo> and $<bar>, even though they remain identical 17:48
seems to me that all of the cursors created for the latter part could share the same hash
and that they're copy-on-write, so that if something later needs to modify a cursor, we clone it then
araujo hello 17:51
pmichaud anyway, looks like that would work for me, and it's likely to be even more efficient than what PGE is currently doing
17:51 __ash__ left
pmichaud I did have a spec question, however 17:52
given a regex like
/ foo [ bar || <xyz>+ ] / 17:53
are we guaranteed that the resulting match object will have an Array in $<xyz> ? Or does the Array exist only if the <xyz>+ part was matched?
i.e., if we matched the 'bar' part, is $<xyz> undef ?
(or non-existent)
TimToady most of the clones are just copying pointers to bindings anyway
it's probably the keys that are expensive 17:54
pmichaud in PGE's case, it's likely to be the creation of the extra one-per-cursor hashes
and yes, shallow cloning hashes in Parrot isn't cheap at the moment either :-| 17:55
(it's cheaper than deep cloning, obviously, but there's not a built-in mechanism to do it)
in my regex question above, I think that $<xyz> doesn't exist if we matched the 'bar' part 17:56
TimToady I believe STD inits the array anyway, checking 17:57
pmichaud well, the example that proves the case is
/ foo [ bar <xyz> || <xyz>+ ] /
if we match the bar part, then $<xyz> isn't an array
TimToady STD will make it an array anyway 17:59
pmichaud what's the correct spec?
TimToady I think STD's behavior is defensible, insofar as [...] doesn't submatch, and forces branches to share 18:01
pmichaud I think that doesn't match S05, though
checking
TimToady and STD is speck too :P
diakopter speckled
lisppaste3 TimToady pasted "translation of pm's first regex" at paste.lisp.org/display/87565 18:04
pmichaud S05:2970
and S05:3022 18:05
how does STD translate / foo [ bar <xyz> | baz <xyz> ] / ooc?
TimToady but S05:3039 18:06
pmichaud 3039 shows the case where there's a repeated subrule outside of the brackets
i.e., I agree that / foo [ bar <xyz> | baz ] <xyz> / always ends up with $<xyz> being an array 18:07
because there's a scope alternation where it's repeated more than once
18:07 donaldh left
TimToady missing quant? 18:07
pmichaud no
TimToady I don't think that one ends up with an array 18:08
18:08 donaldh joined
pmichaud that's what S05:3039 is saying, though 18:08
the example from S05:3039 is
/ <file> ':' [ <file> | none ] /
and it says that $<file> is an array
TimToady checking...
pmichaud because there are two <file>'s in the same scope
but that's different from 18:09
/ foo [ <file> | none ] /
because there's only one $<file> in the scope
same with
TimToady gimme5 would run about 5 times faster without unicode...
pmichaud / foo [ abc <file> | def <file> ] /
each alternation ends up with only one $<file>, so no array
TimToady the latter STD doesn't make an array 18:11
and / foo <xyz> [ bar <xyz> | baz ] / does make an array, so I think STD is sane 18:14
pmichaud okay
TimToady well, it's gimme5 doing it
pmichaud so then what about
/ foo [ bar <xyz>+ | baz ] /
TimToady it will certainly be an array
pugs_svn r28387 | diakopter++ | [vijs] flesh out statement_control__S_if; implement elsif (multiple, too), else blocks
TimToady even if you match baz
pmichaud and then
/ foo [ bar <xyz>+ | baz <xyz> ] / 18:15
?
TimToady it will still certainly be an array, I think
diakopter vijs: if 0 { say 3 } elsif 0 { say 4 } elsif 0 { say 6 } else { say 5 }
p6eval vijs 28379: OUTPUT«5␤»
pmichaud okay, so the quantifiers can reach across alternations?
diakopter vijs: if 0 { say 3 } elsif 0 { say 4 } elsif 1 { say 6 } else { say 5 }
p6eval vijs 28379: OUTPUT«6␤»
TimToady inside [], yes, but maybe not inside ()
checking
pmichaud right
diakopter vijs: if 0 { say 3 } elsif 1 { say 4 } elsif 0 { say 6 } else { say 5 }
p6eval vijs 28379: OUTPUT«4␤»
pmichaud oh wait 18:16
it I would think it would need to be that way inside () also
diakopter whee
pmichaud because of
TimToady mebbe
pmichaud / bar <xyz>+ | baz <xyz> /
does that force $<xyz> to be an array?
okay, I get it 18:17
"lexical scope" doesn't include alternations (more)
from S05 18:18
"If a subrule appears two (or more) times in any branch of a lexical
scope (i.e. twice within the same subpattern and alternation), or if the
subrule is quantified anywhere within a given scope,
...
18:18 rjh left
pmichaud so, it's the appearance twice within a branch of a lexical scope 18:18
18:18 lmc joined
pmichaud or quantified anywhere in the scope 18:18
where brackets and parens define the "scope"
I had been interpreting it that alternations defined a scope
so 18:19
/ foo [ bar | <xyz>+ ] / always ends up with an $<xyz> empty array
sorry, only parens define lexical scopes 18:20
similarly, / foo [ bar <xyz> | <xyz>+ ] / ends up with $<xyz> as being an array, because it's quantified within the scope
even though it's not quantified in the bar branch
18:21 rjh joined
TimToady currently / bar <xyz>+ | baz <xyz> / appears to always make an array 18:22
pmichaud I'm fine with that, based on my new understanding
18:22 SmokeMachine left, donaldh left
pmichaud instead of "lexical scope" perhaps we should say "capturing scope" ? 18:22
where parens define a new capturing scope?
"lexical scope" seems to me like it ought to be defined with curlies. 18:23
buu ingy: Hey, you around?
TimToady well, it's a matter of whether there's a sub-Match object
pmichaud right
wait
what do you mean by "sub-Match object"?
TimToady I mean the Match inside () is different than the Match outside it
pmichaud right
because () creates a new capturing scope 18:24
TimToady with [] they share
pmichaud [] doesn't create a new capturing scope, it's in the same capturing scope
18:24 NorwayGeek joined
pmichaud that's the current meaning of () and [], but S05 uses the phrase "lexical scope" for that 18:24
18:24 NorwayGeek left
pmichaud I'm wondering if "capturing scope" is more descriptive... especially since we now have the ability to define lexicals in regexes 18:25
er, lexical variables
18:25 NorwayGeek joined
sjohnson rakudo: say [1, 2, 3].WHAT 18:25
p6eval rakudo 0eaf62: OUTPUT«Array()␤»
18:25 lucs left
TimToady well, but () is a lexical scope of sorts, since :i and such are lexically scoped 18:26
but then so is [] that way
pmichaud that's a "modifier scope" :)
TimToady so yeah, capture scope or some such
sjohnson is [] a reference like in p5?
anonymous etc
pmichaud sjohnson: we don't really have references in p
p6
TimToady not inside regexen :)
we try hard to hide all the references
sjohnson what is the difference in p6 with [] () ? both array contexts?
TimToady [] has a list context inside, () is a Parcel that doesn't know yet 18:27
18:27 donaldh joined
pmichaud sjohnson: [] creates an array, () is just a grouper. (1,2,3) becomes a Parcel 18:27
(it's the comma that creates the Parcel, not the parens) 18:28
TimToady: okay, thanks for the spec clarification
PGE currently follows my (incorrect) interpretation of scopes; I'll update it in the new version
I like this way of thinking of it much better. 18:29
TimToady (1) is a degenerate Parcel
diakopter we don't serve their kind here
TimToady std: 2<3<4 18:30
p6eval std 28379: OUTPUT«===SORRY!===␤(Possible runaway string from line 1 to line 2)␤Whitespace required before < operator at /tmp/rL9admwpbs line 1:␤------> 2<⏏3<4␤ expecting escape␤FAILED 00:01 95m␤»
TimToady diakopter: yeah, like that
diakopter std: <3 Perl>>0 18:33
p6eval std 28379: OUTPUT«ok 00:03 95m␤»
TimToady it probably just appended that to your 0 file :) 18:34
pmichaud TimToady: S08 currently says that the comma creates the parcels, not the parens
sjohnson p6eval lost its cute plus sign
TimToady (1) is a virutal parcel, quickly anihilated
pmichaud okay
TimToady *virtual
pmichaud I'm fine with that
18:34 diakopter sets mode: +v p6eval
pmichaud my $x = 1; say $x.WHAT # Int 18:35
18:35 donaldh left
pmichaud my $x = (1); say $x.WHAT # Int 18:35
18:35 diakopter sets mode: +v lambdabot
pmichaud my $x = (1,2); say $x.WHAT # Parcel ? 18:35
TimToady probably not 18:37
(1,@x) as a Parcel has 2 elements
18:37 donaldh joined
TimToady but = will evaluate the @x 18:37
I suspect
18:38 leedo_ left
pmichaud oh, so then it becomes a List ? 18:38
18:38 leedo joined
TimToady seems likely 18:38
pmichaud I think that works for me
would it flatten in the case of 18:39
my $x = (1, (2, 3));
TimToady and \(1,@x) would maybe keep it a Parcel
yes, I think it would flatten that even when assigned to $x
pmichaud okay
S08 needs some updating there, then.
TimToady I suppose I should read it one of these months... 18:40
pmichaud well, I think it was just added yesterday :)
[particle] are the specs still read-once? someone should unset that bit. 18:41
TimToady course I could change my mind about it tomorrow too
read once but write-many
diakopter WMRO
pmichaud README is write many, read never 18:42
TimToady is checking to see if his avocado is operative
diakopter someone the other day made the mistake of saying the specs are specifications. I quickly corrected them of that nonsense; they're speculations. 18:43
pmichaud amen
18:44 icwiener left
pmichaud okay, time to do some more branestorming 18:44
diakopter I think that someone might have been myself :)
18:45 crythias joined, donaldh left, donaldh joined
pmichaud TimToady: how are you producing the regex translations as in the nopastes? Is there a convenient command line tool for it? 18:46
TimToady well, maybe they're SF, Specificational Fiction
18:47 donaldh left
TimToady I was editing a rule into STD and running gimme5 on it, but one could probably just do that with a separate grammar, now that I think of it 18:47
18:47 donaldh joined
pmichaud attempts 18:48
TimToady in fact, you can run gimme5 - and type a rule on the stdin 18:50
18:50 mberends joined
diakopter adds gimme5 to p6eval ;) 18:50
moritz_ NOE
diakopter gimme5: prepare to be flood-kicked 18:51
TimToady some of my jokes are almost funny too 18:52
diakopter permutes emphases on different words of that last 18:53
crythias So, a nun, a priest, and a rabbi walk into a bar. The bartender says, "What is this, some kind of joke?"
diakopter std: jokefail or fakefail 18:54
p6eval std 28379: OUTPUT«Undeclared routines:␤ fakefail used at line 1␤ jokefail used at line 1␤ or used at line 1␤ok 00:01 95m␤»
18:56 justatheory is now known as RhodiumTode
pmichaud ah yes, gimme5 is helpful 18:57
TimToady++
18:57 RhodiumTode is now known as justatheory, buubot left
diakopter std: my && 3 18:57
p6eval std 28379: OUTPUT«ok 00:02 125m␤»
pmichaud afk for a bit 18:58
diakopter std, wait, what?
18:59 buubot joined
diakopter buggo 18:59
18:59 molaf joined
crythias std: class jokefail { has $.value;}; class fakefail { has $.value }; jokefail.value=1; fakefail.value=2; say jokefail.value or fakefail.value; 19:00
p6eval std 28379: OUTPUT«ok 00:01 96m␤»
diakopter std: my & &3 19:01
p6eval std 28379: OUTPUT«ok 00:03 124m␤»
diakopter soar confused
19:02 SmokeMachine joined, cmv left, buubot left
diakopter rakudo: my & &3 19:03
p6eval rakudo 0eaf62: OUTPUT«Malformed declaration at line 2, near "& &3"␤in Main (src/gen_setting.pm:3469)␤»
19:03 buubot joined
diakopter buubot: help 19:04
TimToady: std: my & &3 # what does this mean 19:05
TimToady you're &-ing an anonymous & variable with &3 19:06
er, with 3
pmichaud (my &) & 3
moritz_ std: my $x + 3
p6eval std 28379: OUTPUT«ok 00:02 96m␤»
moritz_ std: my $ + 3
p6eval std 28379: OUTPUT«ok 00:02 96m␤»
pmichaud std: my $dog does Bite 19:07
p6eval std 28379: OUTPUT«ok 00:01 96m␤»
buubot diakopter: Provides help text for a specific command. Try 'help echo'. See also the command 'plugins' to list all of the currently loaded plugins.
diakopter buubot: i c.
buubot diakopter: i am me
crythias perl6: my $milkshake="Brings all the boys to they yard."; say $milkshake;
p6eval elf 28387, pugs, rakudo 0eaf62: OUTPUT«Brings all the boys to they yard.␤»
pmichaud std: my $ does Inflate 19:08
p6eval std 28379: OUTPUT«ok 00:02 96m␤»
diakopter apparently needs to discover anonymous variables somewhere in the specificulations
TimToady taquitos and guac and sour cream and Mega Death Sauce, yum 19:09
crythias perl6: my $TimToady="taquitos and guac and sour cream and Mega Death Sauce, yum"; say $TimToady;
p6eval elf 28387, pugs, rakudo 0eaf62: OUTPUT«taquitos and guac and sour cream and Mega Death Sauce, yum␤»
crythias hey. this is neat. it's almost like LOGO. 19:10
diakopter std: my & && my $ && my % 19:11
p6eval std 28379: OUTPUT«ok 00:06 124m␤»
TimToady diakopter: S02:1881 19:12
diakopter std: my &&&&3 19:13
p6eval std 28379: OUTPUT«ok 00:02 125m␤»
19:13 cmv joined
TimToady Dear Historian: we apologize for using line numbers, but it's easier for us, and you can always look up the current SVN copy. 19:13
PerlJam someone should turn std into something that can deparse.
TimToady hmm, viv can do that already 19:14
diakopter theoretically the irclog cgi could derive the updated line numbers with some creative subversioning
TimToady but it won't add extra parens for you
PerlJam adding spaces would help even :) 19:15
TimToady viv tries very hard to preserve whitespace exactly as it was currently 19:16
(as a round-tripping test) 19:17
PerlJam I guess parens would be needed to aid in figuring out what expressions like (* + * ** * - * * *).(2) really mean 19:18
diakopter --desugar_level=3325
TimToady funny how the Mega Death at 550k scovilles doesn't seem any hotter than Sudden Death at 105k--maybe I'm saturating the guages 19:19
pmichaud ...does the "Mega" take longer than the "Sudden", I wonder? 19:29
pugs_svn r28388 | diakopter++ | [vijs] implement Tight_and
diakopter vijs: say 1 && 3
p6eval vijs 28379: OUTPUT«3␤»
diakopter vijs: say (say 0) && (say 2) 19:30
p6eval vijs 28379: OUTPUT«0␤2␤1␤»
PerlJam vijs is 6 on javascript? 19:31
diakopter STD-ridden JS, even plusser
PerlJam cool 19:32
diakopter 6ON, the Perl 6 you apply directly to your 6.
PerlJam heh 19:33
diakopter: do you have an accompanying commercial with people slapping "Perl 6" stickers on every 6 they see?
diakopter no, but that would rocketh 19:34
TimToady just put camelia stickers everywhere
pmichaud one could do something along the "All your base..." video :)
19:35 donaldh left, donaldh joined 19:36 donaldh left
diakopter PerlJam: tho there's Perlito, too, Perl 6 subset that actually emits JS, bootstrapping nearly 19:37
19:37 donaldh joined
diakopter from flavio_glock 19:37
derivative/successor to mp6
diakopter looks online for Camelia stickers 19:40
pmurias diakopter: perlito is an mp6 backend 19:41
sjohnson it might help battle the ignorance of people thinking that Perl is a programming language that died 15 years ago 19:42
i hate talking to such people
i think Matt-W knows a few
PerlJam sjohnson: I tend to just laugh at those people 19:45
sjohnson they must really bet out of touch to think that, since most programs that support scripts use Perl or Python 19:47
pugs_svn r28389 | diakopter++ | [vijs] implement Tight_or (and alias Loose_and to Tight_and) 19:48
PerlJam sjohnson: just myopic. The web is the biggest new platform in the last 15 years. If you're not dominating the most recent platform, you're dying or dead. 19:53
Matt-W yes I do know some people like that 19:55
Most of them work with me :(
diakopter "ooo Perl; it's so dead it's *ghostly*" 19:56
19:58 ruoso left
TimToady phone 20:00
sjohnson unicode has everything! 20:02
Matt-W It's a little phone!
So cute
sjohnson
20:03 ruoso joined
Patterner It's a little starship! 20:04
Not so cute
sjohnson its.. a plane1 20:06
there should be a monthly challenge to find the cutest unicode character
pugs_svn r28390 | diakopter++ | [vijs] implement Loose_or (as alias to Tight_or); yes, it treats all infix operators at those precedences as ||; the others will be implmented as well.
20:08 pmurias left
sjohnson typo in 'implemented' 20:09
Patterner is there a piglet unicode character?
diakopter *implemented # sjohnson++
TimToady actually, ✈ is plane 0 20:11
sjohnson haha
excalamation mark fail on me
im sure you knew that tho
timtoady wit++
TimToady @karma wit 20:12
lambdabot wit has a karma of 1
crythias My sister is a binary pest. I told her to stop Boolean me.
sjohnson crythias: members.shaw.ca/smujohnson/snd/garlaff.mp3 20:13
20:14 am0c joined
ingy buu: hi 20:17
20:23 chturne left 20:24 NorwayGeek is now known as NorwayGeek|Away
jrtayloriv crythias, Tell her she octal leave you alone. 20:33
diakopter or else you'll put a hexa her
bah-dum-ching. 20:36
crythias ha ha ha
20:37 quietfanatic joined
crythias There is no spoon. Unless you declare it first. 20:37
diakopter Name it && claim it, I always say. 20:39
quietfanatic rakudo: class Y {has $.z}; subset X of Y where {.z == 0}; my $q = 4; say $q ~~ X;
p6eval rakudo 0eaf62: OUTPUT«Method 'z' not found for invocant of class 'Int'␤»
quietfanatic It checks the where {} before checking that it's a Y. 20:40
Bug?
moritz_ IMHO yes 20:41
please submit 20:42
TimToady should probably catch exceptions in a where
quietfanatic How duz I submitted bug? 20:43
moritz_ but in this case the where-block shouldn't even be run, no?
quietfanatic: mailto:rakudobug@perl.org
TimToady moritz_: ja, you'd think. 20:45
but maybe they're thinking of things like 2 ~~ subset * of Num where 1..4 20:47
20:47 molaf left
quietfanatic Any special things I should put in the message? 20:47
TimToady usually just a paste of appropriate lines of IRC will do 20:48
quietfanatic TimToady: Surely that'd be easier written as 2 ~~ Num & {1..4}
or Num & 1..4
pmichaud since it's effectively implemented using junctions, it's not short-circuiting on the junction yet 20:49
20:49 explorer joined
pmichaud i.e., it's testing both Y and where, but carping about the where 20:49
moritz_ pmichaud: IMHO it should use the "also" junction, which is an all() but with a defined order 20:50
pmichaud moritz_: agreed, "also" is nyi
moritz_ and short-circuits
I know
pmichaud I'm just 'splaining
TimToady in any case, a where that throws an exception should probably be treated as false, if try isn't too big an overhead 20:51
moritz_ ok :-)
pmichaud I don't think try will be too big an overhead
we can certainly try it and see :)
TimToady though the ~~ Y test should generally be faster anyway
which argues for putting it first in any case
though it could be argued on logical grounds that where { @pigs.fly } should make implication true 20:53
20:55 ruoso left 20:56 BooK left, BooK joined 20:58 crythias left 21:02 hercynium joined 21:29 cmv left 21:32 nihiliad left, nihiliad joined 21:38 crythias joined 21:41 KyleHa left 21:42 tak11 joined 22:10 lmc left 22:19 [particle] left 22:37 SmokeMachine left 22:38 c1sung left 22:39 meppl left 22:59 iblechbot left 23:05 am0c left 23:06 am0c joined 23:21 rhr_ joined 23:31 astinus_ joined 23:35 rhr left 23:37 buubot left 23:38 buubot joined, buubot left 23:39 buubot joined 23:47 badanov joined
badanov Hi 23:47
* taptaptap* Is this thing on?
Juerd It is! 23:51
23:54 guest1235123 joined
badanov Okay then 23:55
dunno if I can help, but I guess we will see then
I can straight from the perl6 website
guest1235123 badanov: using the web interface? 23:59
badanov yes
guest1235123 badanov: you can certainly help :)