pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, smop: etc.) || We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by TimToady on 25 January 2008.
rakudo_svn r28401 | pmichaud++ | [rakudo]: 00:23
r28401 | pmichaud++ | * Move postfix:<i> from builtins/op.pir to classes/Complex.pir .
dolmen pmichaud, are you working on Complex? 01:03
pmichaud I was just refactoring postfix:<i> at the moment. 01:04
rakudo: say 4+3i; 01:05
p6eval rakudo r28402 OUTPUT[4+3i␤]
Auzon rakudo: (4+3i).perl.say
p6eval rakudo r28402 OUTPUT[Method 'perl' not found for invocant of class 'Complex'␤current instr.: '_block11' pc 60 (EVAL_12:21)␤
dolmen I will try to improve that a bit
rakudo: say 3i.WHAT;
p6eval rakudo r28402 OUTPUT[Statement not terminated properly at line 1, near ".WHAT;"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
Auzon rakudo: (3i).WHAT.say 01:06
p6eval rakudo r28402 OUTPUT[Method 'WHAT' not found for invocant of class 'Complex'␤current instr.: '_block11' pc 42 (EVAL_12:18)␤
Auzon I thought .WHAT would be for Any?
rakudo: Any.WHAT.say
p6eval rakudo r28402 OUTPUT[Any␤]
pmichaud I didn't bother to map Parrot's Complex class to a Rakudo equivalent. 01:07
I can do that.
Auzon Would that improve anything?
pmichaud or I can leave it for dolmen to do it :-)
yes. The Complex type that is showing up now is actually a Parrot object (i.e., not a subclass of Perl 6's Object)
dolmen yes, I'm on it
pmichaud so that's why .WHAT is failing.
dolmen++
rakudo_svn r28403 | pmichaud++ | [rakudo]: 01:10
r28403 | pmichaud++ | * Fix prefix:<^>(Any) to return an exclusive Range instead of an inclusive one.
r28403 | pmichaud++ | * Refactor prefix:<^>(Any) into src/classes/Range.pir .
Auzon rakudo: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; Day.perl.say
p6eval rakudo r28402 OUTPUT[Statement not terminated properly at line 1, near "Mon Tue We"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
pmichaud rakudo doesn't do enum yet.
Auzon oh 01:11
pmichaud at least, I don't think it does, unless jonathan++ slipped it in on me. :-)
Auzon rakudo: my %h = enum <a b c>; %h.perl.say 01:15
p6eval rakudo r28403 OUTPUT[Could not find non-existent sub enum␤current instr.: '_block11' pc 56 (EVAL_12:24)␤
Tene Auzon: what is enum? 01:22
Auzon S12:1650 or perlcabal.org/syn/S12.html#Enums
lambdabot Title: S12
dolmen pmichaud, I created onload for Complex 01:36
pmichaud dolmen++ 01:37
dolmen I now have to replace the construction of Complex inf e.g. infix:+
s/inf/in/
I'm not sure if Complex is an object or just a wrapper around a parrot type 01:38
In postfix:i, "$0[1] = a" puzzles me 01:39
pmichaud follow the example for things like Int, Float
actually 01:40
you may just be able to do a 'register'
just a sec
nopaste.snit.ch/13281 01:42
methods then go into the ['Perl6Complex'] namespace
dolmen In Num and Int, this is reversed 01:51
pmichaud: Is it because 'Complex' is already the name of the parrot type? 01:52
pmichaud yes. 01:54
Since Parrot already grabs the name 'Complex', we have to use a different name for Rakudo's type.
which also tells me that my nopaste was wrong.
just a sec
(perhaps 'Hash' is a better model)
nopaste.snit.ch/13282 01:55
no, Hash isn't a good model either.
anyway, nopaste #13282 should be a better start.
dolmen I already wrote that 01:56
pmichaud (the 'name'=> option is what I added)
dolmen++ 01:57
Auzon What happens if someone defines a class name of 'also' and someone tries to inherit from it?
perl6: class also {}; class Foo is also {}; say Foo ~~ also; 01:58
p6eval kp6 r20832: OUTPUT[no method 'APPLY' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
..pugs: OUTPUT[␤]
..rakudo r28403: OUTPUT[invoke() not implemented in class 'also'␤current instr.: '_block11' pc 36 (EVAL_10:19)␤
..elf r20832: OUTPUT[syntax error at (eval 14) line 14, near "Foo ~"␤ at ./elf_f_faster line 4549␤]
pmichaud I suspect that class 'also' should fail.
actually, no.
hrm.
I'll let someone else figure that out. :-) 01:59
Auzon 'open' and 'nonfinal' have similar problems
and 'hidden'
Auzon S12:1797 says to 'use oo :closed :final', but 1806, 1817, and 1822 'use class :open' or 'use class :nonfinal'. Can someone explain the why this is inconsistent? 02:14
bacek__ rakudo: min({ abs $^a <=> abs $^b }, (-2..2)); 02:26
p6eval rakudo r28403 RESULT[0]
bacek__ rakudo: say min({ abs $^a <=> abs $^b }, (-2..2));
p6eval rakudo r28403 OUTPUT[0␤]
bacek__ rakudo: min({ abs 0+$^a <=> abs 0+$^b }, (-2..2));
p6eval rakudo r28403 RESULT[0]
Auzon rakudo: min(-50 .. 50).say
p6eval rakudo r28403 OUTPUT[-50␤]
pmichaud pugs: say ((0,1,2) X (0,1,2)).perl 02:29
p6eval OUTPUT[((0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2))␤]
Auzon I was wondering if you had an evalbot in #parrot that I blocked :P
pmichaud just was in the wrong window. Happens often to me.
bacek__ rakudo: my @array = <5 -3 7 0 1 -9>; say @array.min: { abs $^a <=> abs $^b }; 02:34
pugs_svnbot r20833 | Auzon++ | [gsoc_spectest] tests for is also/instead/open. (added 16 tests)
p6eval rakudo r28403 OUTPUT[absolute() not implemented in class 'Perl6Str'␤current instr.: '_block25' pc 162 (EVAL_12:67)␤
bacek__ rakudo: my @array = <5 -3 7 0 1 -9>; say @array.min: { abs 0+$^a <=> abs 0+$^b };
p6eval rakudo r28403 OUTPUT[0␤]
bacek__ pmichaud: probably bug in rakudo...
pmichaud why do you think that's a bug? 02:35
what answer do you expect?
oh, because the first one didnt do any output? 02:36
ah, I see.
I don't know that I've implemented abs yet.
at least for strings. Just a sec. 02:37
rakudo_svn r28404 | pmichaud++ | [rakudo]: 02:38
r28404 | pmichaud++ | * More prefix:<^> refactoring.
bacek__ but why it 'Perl6Str'?
rakudo_svn r28406 | pmichaud++ | [rakudo]: 02:43
r28406 | pmichaud++ | * Fix abs() for non-numeric types.
pugs_svnbot r20834 | bacek++ | [spec] Add more parentises around method calls 02:46
diakopter wants a Perl 6 "implementation" whose Test.pm causes it to always give what the test expects (not just fake success). Who wants to write a fudgefork to do that....? 02:47
pmichaud diakopter: ...explain? 02:48
diakopter pmichaud: :) just a joke... a pretend-implementation that feeds Test.pm whatever each test expects (dies_ok, is_deeply, etc) 02:49
Auzon You'd still need a good parser :P 02:50
diakopter in other words, an implementation that is complete.. that is, passes all the tests in the test suite
"complete" 02:51
that'd be a fun lightning talk 02:52
Auzon So basically a fake implementation that automatically passes all the tests? ;)
pmichaud I can do that by faking Test.pm :-)
diakopter pmichaud: yep, that's what I mean 02:56
well, sort of, I wanted it to actually produce the expected results, not just always give "ok"
rakudo_svn r28407 | duff++ | [rakudo]: 03:04
r28407 | duff++ | * Add run builtin (Zev++ RT50558)
r28407 | duff++ | * patch courtesy Zev Benjamin <zev-perl6 at strangersgate.com>
r28408 | pmichaud++ | [rakudo]: Fix abs(Int) to return Int. 03:05
rakudo_svn r28409 | pmichaud++ | [rakudo]: 03:22
r28409 | pmichaud++ | * Add S29-list/minmax.t to spectest_regression.data (bacek++)
Auzon elf: say 7 + 18 + 21 + 6 + 1 + 7 + 16 03:36
p6eval OUTPUT[76␤]
Auzon elf: say 76+73+39 03:46
p6eval OUTPUT[188␤]
kolibrie made it to YAPC 03:50
stevan_ kolibrie: your here too? 04:52
rakudo_svn r28413 | coke++ | [codingstd] 05:10
r28413 | coke++ |
r28413 | coke++ | Pass "make codetest"
pugs_svnbot r20835 | lwall++ | [STD] various repairs to fate system 05:35
r20835 | lwall++ | [gimme5] ability to process grammars that use Perl grammar
pmurias Nl 14:25
diakopter Nl? 14:25
pmurias diakopter: hi 14:26
diakopter pmurias: hi
pmurias typing accident
lunch&
diakopter @yaNApc
lambdabot Unknown command, try @list
pmurias will you be at yapc europe? 14:38
diakopter me? when is it 14:41
pmurias diakopter: August 13 - 15
diakopter permaybe 14:42
I only hear English - will I be at a loss
pmurias diakopter: it's English only 14:44
diakopter oh
pmurias the talks are
diakopter: were are you from by the way? 14:45
diakopter TimToady: is about to speak on pugscode/src/perl6/*.pm .... I'll summarize here :)
Wichita, KS
rakudo_svn r28424 | pmichaud++ | [rakudo]:
r28424 | pmichaud++ | * Add docs/spectest-progress.csv to track progress on passing spectests.
r28424 | pmichaud++ | (I'll keep this file up-to-date for the time being.)
pmurias what does permaybe mean? 15:02
pmurias ruoso: what should i focus on now a faster sm0p parser of cleaning up elf? 15:11
pmurias perl6: "abc" =~ /b/ 15:11
p6eval kp6 r20835: OUTPUT[syntax error at position 6, line 1 column 6:␤"abc" =~ /b␤ ^ HERE␤]
..pugs: OUTPUT[*** ␤ Unexpected "/"␤ There is no =~ operator in Perl 6 -- did you mean ~~ (match) or ~= (concat-assign)?␤ at /tmp/eQXymuWyjL line 1, column 10␤]
..rakudo r28424: OUTPUT[Method 'lvalue' not found for invocant of class 'PAST::Val'␤current instr.: 'parrot;PAST::Compiler;as_post' pc 2787 (src/PAST/Compiler.pir:718)␤
..elf r20835: RESULT[1␤]
TimToady hi, you're on YAPC-TV!!! 15:15
moritz_ YaY 15:16
rakudo: say "Hi, I'm the cool kid ;-)"
p6eval rakudo r28424 OUTPUT[Hi, I'm the cool kid ;-)␤]
rindolf Hi TimToady
Hi moritz_ 15:17
diakopter WELCOME YAPC 15:19
pugs_svnbot r20836 | pmurias++ | [elf] 15:41
r20836 | pmurias++ | removed =~
r20836 | pmurias++ | added a doubt to the two compilers section in the README
diakopter well, I would summarize it if the wifi were working here 15:45
factorial macro... 15:48
jrockway eval: 10!
TimToady perl6: sub postfix:<!> ($x) { [*] 1..$x }; 5! 15:49
p6eval kp6 r20836: OUTPUT[error in Block at compiled/perl5-kp6-mp6/lib/KindaPerl6/Grammar/Sub.pm line 362, <> line 1.␤*** Syntax Error in sub '': missing closing curly bracket ␤] 15:50
..pugs: RESULT[120]
..rakudo r28425: OUTPUT[Statement not terminated properly at line 1, near ":<!> ($x) "␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
..elf r20836: OUTPUT[syntax error at ./elf_f_faster line 3160, near ") ~"␤syntax error at ./elf_f_faster line 3161, near "))"␤syntax error at ./elf_f_faster line 3162, near "}elsif"␤Global symbol "$m" requires explicit package name at ./elf_f_faster line 3162.␤Execution of ./elf_f_faster aborted
..due to compilation errors.␤]
apeiron MØØSE 15:52
diakopter pmurias: you around?
pmurias diakopter: yes 15:53
diakopter you and Auzon want to hack STD5 into the evalbot? 15:54
pmurias diakopter: now?
diakopter :D 15:55
sure, why not
Auzon Sure, what needs to be done with it?
pmurias diakopter: a STD5 is quite verbose 15:56
;) a STD5 match
it would either flood the channel with --vertical or be mericlessly wraped 15:57
moritz_ so what can we print? parse failed/succeded? 15:58
diakopter probably grep just for the name/subrule that matched, 16:00
(s)
pmurias it would be pretty useless
diakopter it would show the subrules that matched
(in order they matched) 16:01
oops 16:02
pmurias moritz: if you have a wide screen or good eyesight and a small font you could try STD5_dump_match 16:02
or have evalbot nopaste the output of --vertical 16:03
diakopter: what do you need STD in evalbot for? 16:04
yap6: say 5 16:06
p6eval yap6 r20836 OUTPUT[parsed: [["use"],["v6"],[";"],["say"],[5],["EOI"]]␤]
diakopter pmurias: to show yapc
pmurias on the projector?
diakopter sure, yeah :)
Larry's about halfway done 16:07
with his talk
diakopter if you can do it in 15 minutes.. :D 16:07
pmurias does evalbot run perl5.10 16:08
?
diakopter no
does it need to?
pmurias STD5 runs on perl5.10 only
diakopter oh
pmurias you can call STD5 from the terminal if you want to show the match to people 16:09
ruoso pmurias, a faster sm0p parser is certainly much helpfull 16:09
diakopter pmurias: that's what he's doing 16:10
I just thought it would be cool to show it on irc too
moritz_ diakopter: I don't think that can be done fast and in a useful way ;) 16:11
diakopter ok
pmurias ruoso: i'm considering cleaning up elf and feeding it output of STD5 16:12
diakopter: would you like to write a sm0p parser? ;)
diakopter what's currently parsing it
moritz_ I think kp6
pmurias diakopter: elf is currently parsed by STD_red 16:13
which is STD hand-converted to ruby
moritz_ was talking about sm0p
pmurias diakopter: sorry got confused 16:14
diakopter: sm0p is currently parsed my a primtive (recdescent) perl6 grammar
ruoso well... there's a lowlevel method implemnetation already 16:15
there's a lowlevel scalar also
it should be possible to do something with that already
pmurias diakopter: v6/smop/sm0p/KP6Grammar.pm 16:16
ruoso: meant plugging STD5 into elf, more as an alternative as STD_red is enough for the code smop could run now 16:17
cycling& bbl 16:20
ruoso pmurias, I'm not sure I understood what you said... but that's probably because I'm not that familiar with STD5 internals 16:26
moritz_ let's ask the other way round - how hard/easy is sm0p to parse? it is specced somewhere? 16:27
pmurias ruoso: i was considering whether to write a faster sm0p parser or to cleanup elf and plug STD5 into it 16:28
moritz_: i would guess sm0p is pretty simple to parse
ruoso pmurias, writing a faster sm0p parser is already a usefull thing to do 16:29
ruoso but I think it should be possible to do some more things with smop than what sm0p does 16:30
moritz_ is v6/smop/sm0p/Grammar.pm intended to be a "real" Perl 6 grammar for sm0p? 16:31
pmurias &
moritz_ "token frame" could be made "rule frame", then all of those <ws> tokens could go away 16:32
ruoso moritz_, supposedly yes... 16:33
but the KP6 version works with KP6
there's a start of what a parrot version would be
moritz_ parrot = PGE or rakudo here? 16:34
ruoso moritz_, I think PGE 16:35
I never actually tested it
I mean...
I could never make it work...
but conceptually Grammar.pm describes it... it might have some bugs that were only fixed in the KP6 version 16:36
pmurias ruoso: is a faster sm0p parser something your blocking or would it just be usefull? 18:25
ruoso not really blocking... no... 18:27
it's just a PITA to wait KP6 everytime...
icwiener Hi, I watched for Perl 6 books and found some. Is is already possible to write a book that is not outdated quite fast? I mean, is the language itself solid enough to write books? Just curious because I'm considering buying the one James Lee wrote and not following the process closely enough to know such things. 18:37
Do you have any hints? Maybe about the book as well? :=) 18:38
PerlJam icwiener: what books on perl 6 did you find? 18:41
pmurias icwiener: the spec seems to gradualy stablise, but the implementations are rapidly changing 18:42
icwiener PerlJam: Perl 6 and Parrot Essentials (2004) 18:43
PerlJam: Perl 6 Now (2004)
and some more older books...
PerlJam icwiener: the latter really isn't a perl 6 book.
icwiener Oh, right just read the descriptive title. 18:44
PerlJam (It's about how to do perl 6 like things in perl 5 today)
pmurias @tell mncharity Foo.new(a=>1,b=>1) gets parsed as Foo.new(a=>(1,b=1))
lambdabot Consider it noted.
icwiener PerlJam: Beginning Perl 6: From Novice to Professional (July 2008)
PerlJam icwiener: the perl 6 portion of Perl 6 and Parrot Essentials is definitely outdated.
icwiener: the parrot portion is too, but the reference material is still fairly good. 18:45
pmurias you can always print out the synopsis
icwiener pmurias: So what is thought in the book (the latter one) might be "stable" but how it is done in the compiler/interpreter/whatever is still changing. Did I get that right? But the implementation is not important for learning from the book right? 18:46
pmurias icwiener: i haven't read the book 18:47
PerlJam pmurias: since it's not even out yet :)
icwiener PerlJam: What's with the latter book. Do you know it? It seems promising. The author wrote another Perl (5) book that is rated very highly.
PerlJam I wonder if I could cajole rdice into giving me a copy for review :)
icwiener: I know nothing about it. 18:48
icwiener: though I'd be leery of it give that perl 6 is still a christmas away
icwiener PerlJam: Ok. Maybe after you got your review copy... ;)
pmurias icwiener: what i mean is the book can only discuss how things are speced to be not how they are, as the language isn't implemented (fully|mostly) yet 18:49
PerlJam pmurias: well, it could say things like "in rakudo, you'd do this" and "i pugs, you'd do this" and "In <insert some other implementation>, you'd do this"
pmurias PerlJam: but it would outdate itself rapidly 18:50
not the pugs stuff :(
PerlJam pmurias: not for pugs since it hasn't changed in a year or so :)
Schwern is slowing down my IRC
Auzon Yeah, but Elf and Rakudo would be obsolete before it got to press. ;) 18:51
ingy /kick Sch
meh
/kick Sch*
Auzon rakudo: say try {1} 18:52
icwiener Hmm. Ok. Thank you for your advice. Helped a lot with my decision. :)
p6eval rakudo r28431 OUTPUT[1␤]
Auzon rakudo: say try {5**2}
p6eval rakudo r28431 OUTPUT[25␤]
PerlJam icwiener: why are you interested in perl 6?
icwiener: I ask because it's not suitable for some uses just yet
Auzon rakudo: my Int $foo; $foo = 'obviously not an Int'; say $foo;
p6eval rakudo r28431 OUTPUT[Type check failed␤current instr.: 'parrot;Perl6Object;infix:=' pc 59 (src/gen_builtins.pir:51)␤
Auzon rakudo: my Str $foo; $foo = 5; say $foo; 18:53
pmurias unless you're prepared to hack on the compiler
p6eval rakudo r28431 OUTPUT[Type check failed␤current instr.: 'parrot;Perl6Object;infix:=' pc 59 (src/gen_builtins.pir:51)␤
Eevee wow, try{} exists now?
when did that happen
Auzon Eevee: Not sure, but I think I have another test for Rakudo to pass unfudged.
Eevee you guys move too fast for me to keep up and do anything :P slow down 18:54
pmurias is scared of STD_red, but mncharity isn't here to fix it for him :(
icwiener PerlJam: Because I wrote some stuff in Perl 5 about five years ago and I need a nice language for prototyping at the end of the year (yes around christmas ;)) ... I have a month vacation in August so I thought that would be a nice opportunity to get into Perl 6. :)
PerlJam icwiener: well, if you don't mind the state it's in, I encourage you to use rakudo if you can. 18:56
Auzon Can I ask what you're prototyping?
rakudo_svn r28432 | pmichaud++ | [rakudo]: 18:59
r28432 | pmichaud++ | * SVN property fix on spectest-progress.csv .
icwiener Auzon: Nothing big. We have to implement a client server application in C and I think it's nice to have the client or the server written in some less problematic language. That way you do not have the problem of having a server and a client that are both not yet working correctly and it's hard to see where the problem is. 18:59
PerlJam: Thanks for the advise. 19:00
Auzon Interesting. Rakudo might be enough for you.
dolmen Auzon, is there sockets in rakudo yet? 19:01
Auzon Not that I know of. 19:01
icwiener But until christmas there will be, right? :)
dolmen :) 19:02
PerlJam Parrot has sockets, it's just not exposed to Rakudo yet (AFAIK)
Auzon rakudo: my Int $foo; say try {$foo = 'asdf'};
p6eval rakudo r28432 OUTPUT[Null PMC access in get_string()␤current instr.: 'print' pc 9561 (src/gen_builtins.pir:6286)␤
PerlJam So, all it would take is someone to write the glue.
dolmen oh, you're prototyping a Chritsmas gift :)
Auzon rakudo: my Int $foo; say eval '$foo = "asdf"';
p6eval rakudo r28432 OUTPUT[Scope not found for PAST::Var '$foo'␤current instr.: 'parrot;PCT::HLLCompiler;panic' pc 156 (src/PCT/HLLCompiler.pir:103)␤
icwiener dolmen: hehe, no. actually some stuff for an exam that is supposed to be given in january. 19:03
Auzon Alright. Well, good luck, icwiener. 19:04
away &
icwiener Thank you. To all of you. :) 19:05
Bye, for now.
rakudo_svn r28433 | pmichaud++ | [rakudo]: 19:27
r28433 | pmichaud++ | * Update Complex as subclass of Any, add .perl method (dolmen++)
r28433 | pmichaud++ | * Patch RT#55872 courtesy Olivier Mengu?\195?\169 [email@hidden.address]
r28433 | pmichaud++ | (with minor changes by pmichaud)
dolmen pmichaud++ 19:34
pugs_svnbot r20837 | diakopter++ | [yap6] fixed the ast output so it's actually a tree 19:47
diakopter www.perlcabal.org/svn/pugs/revision/?rev=20837 stupid pugs_svnbot 19:48
lambdabot Title: revision: /pugs (Rev: 20837, via SVN::Web)
diakopter heads to Alias' next talk
pmurias diakopter: why is pugs_svnbot stupid? 19:50
moritz_ because it doesn't fully show diakopter's wonderful commit messages 19:50
surprisingly it works well with everbody else's commits 19:51
diakopter :P 19:51
:PP 19:52
moritz_ anyway, diakopter++ # verbose commit messages
diakopter I think, rather, it's freenode that doesn't work with my commits.
moritz_ freenode? why? 19:53
diakopter b/c it kicks pugs_svnbot when it sends messages in too quick of succession 19:55
moritz_ I ignore joins and quits... was it really kicked? 19:56
diakopter yes 20:00
14:43:32 -!- pugs_svnbot [n=pugs_svn@feather.perl6.nl] has quit [Excess Flood]
pmurias Term::ANSIColor++ # my favourite module 20:09
moritz_ diakopter: is it that pugs based svn bot?
pmurias karma Term::ANSIColor 20:10
@karma Term::ANSIColor
lambdabot Term::ANSIColor has a karma of 1
moritz_ diakopter: I use Bot::BasicBot myself, it throttles automatically
diakopter so does botnix (dalek on #parrot) 20:15
rakudo_svn r28436 | pmichaud++ | [rakudo]: 20:20
r28436 | pmichaud++ | * Make rakudo's grammar slightly closer to STD.pm (expect_term).
spinclad_ i see rakudo_svn doesn't pass utf8 through as dalek does ('Olivier Mengué') 20:47
moritz_ yes, I'll have to investigate 20:49
later this week, hopefully
pmurias diakopter: is mncharity at the yapc? 21:15
diakopter pmurias: I don't know 21:23
pmurias :) 21:25
pmurias TimToady: use'ing Thing in "grammar Foo is Thing" is wrong 21:36
Perl lives in STD5 dosn't it?
pmurias diakopter: what did TimToady use for onscreen match dumping? 21:49
diakopter a script he had 21:54
I don't know; email him?
pmurias diakopter: i'm wandering if it was my script ;) 21:57
diakopter pmurias: it might have been, but there was no color 22:01
pmurias diakopter: you have seen the output of STD5_dump_match? 22:04
diakopter noo
TimToady I didn't have a chance to show it, ran out of time 22:05
and most of my examples aren't whole files
pmurias TimToady: did you use YAML? 22:06
TimToady mostly just filtered through ->hash to cut down the output, yeah. 22:07
but I mostly wasn't trying to show trees 22:08
but specific bits of stuff that flow from the grammar like the difference between prefix:<++> and postfix:<++> and the user-added prefix:<+->
and how the bits of code look, and how the LTM works 22:09
TimToady and I was gonna use your program and brag about it, but last night it didn't parse a file with just $a++ in it, so I left it in the way it was 22:09
PerlJam TimToady: so, for LTM, you stop ltm processing as soon as you hit something that's "over-quantified"? I.e. 'abc' ** 3..5 would work, but 'abc'+ would not? 22:10
PerlJam still doesn't quite understand ltm
TimToady 'abc'+ should count as one 'abc' 22:12
(if there's nothing after it) 22:13
though, actually, I think the + comes through to
since that might influence which is the longest token
TimToady after, an identifier is <alpha>\w*, more or less 22:13
TimToady sorry, just woke up from migraine-enforced nap, so not quite thinking straight yet 22:14
diakopter TimToady: want to know who won the golf?
TimToady sure 22:15
diakopter they tied the 18 holes
PerlJam I'm having sinus headaches myself. A nap sounds real good.
diakopter at even par
and Tiger won in the first sudden death hole
TimToady sudden death after that?
ah, well, I was a little surprised his knee held up
pugs_svnbot r20838 | pmurias++ | initial port of the sm0p grammar to gimme5 (the hack/rule engine compiles STD5)
TimToady I thought Rocco might have the advantage down the way
pmurias TimToady: STD5_dump_match seems to have broken down horribly for STD5 22:19
have you changed the way STD needs to be invoked 22:20
ruoso: if you aren't sleeping i have ci a initial version of the sm0p grammar running under gimme5 22:21
TimToady pmurias: I don't think so 22:23
ruoso pmurias, cool... 22:24
diakopter heads to tpf grant bof
ruoso pmurias, had you tested using it as the preprocessor? 22:25
pmurias it only does the matching
ruoso the grammar is a match and replace...
there is no real action....
pmurias i remove actions before passing it to gimme5 22:26
ruoso even if it's only string replace?
pmurias mncharity: hi 22:27
ruoso: yes, i'll use elf later to run the actions
ruoso alright then... 22:28
pmurias TimToady: could you paste the scripts you use to run STD5?
ruoso btw... I'm not really around here...
I'm finishing packaging for a transatlantic move
ruoso moving back to brasil
pmurias ruoso: i won't iterupt you then, so you don't forget anything ;) 22:30
* interupt
TimToady ~.~. 22:31
TimToady sorry, this wireless doesn't roam well... 22:32
pmurias: hang on a sec
mncharity hi pmurias
lambdabot mncharity: You have 1 new message. '/msg lambdabot @messages' to read it.
mncharity /msg lambdabot @messages
pmurias mncharity: are you at the yapc? 22:33
pmurias should have looked at the ip adress instead of asking stupidly 22:35
cjfields rakudo: 'A'..'D'.say; 22:36
p6eval rakudo r28443 OUTPUT[D␤]
pasteling "TimToady" at 198.37.17.244 pasted "tryfoo, runs the foo rule in STD (currently set up to test backref match)" (14 lines, 234B) at sial.org/pbot/31333
cjfields rakudo: say 'A'..'D';
p6eval rakudo r28443 OUTPUT[ABCD␤]
cjfields rakudo: say 'A'..'Z'
p6eval rakudo r28443
..OUTPUT[ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZDADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZFAFB
..FCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZGA...
cjfields Ugh.
rakudo: say 'A'..^'Z' 22:37
p6eval rakudo r28443 OUTPUT[ABCDEFGHIJKLMNOPQRSTUVWXY␤]
Auzon Wow. That's pretty WTFy.
cjfields yeah, just found that one.
Auzon You can use .say if you put the first group in parens
TimToady alpha ++ should never exceed the length on the right
and you have to have that test anyway, in case the comparison "misses" 22:38
Auzon rakudo: ('A' .. 'Z').perl.say
p6eval rakudo r28443 OUTPUT["A".."Z"␤]
TimToady on the other hand, it *should* stop on Z anyway
pmurias TimToady: foo works
dolmen rakudo: say ('A'..'Z')
p6eval rakudo r28443
..OUTPUT[ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZDADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZFAFB
..FCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZGA...
pmurias TimToady: does comp_unit work for you?
Auzon seems to me that the trimming needs to be just a bit shorter...
cjfields that's what I would think, but... 22:39
rakudo: say 'A'..'Y'
p6eval rakudo r28443 OUTPUT[ABCDEFGHIJKLMNOPQRSTUVWXY␤]
cjfields which is fine
pmurias foo works for me too
cjfields rakudo: say 'A'.. 22:40
p6eval rakudo r28443 OUTPUT[Statement not terminated properly at line 1, near ".."␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
pasteling "TimToady" at 198.37.17.244 pasted "trytry, which runs try.t as a comp_unit (where try.t is an old copy of radix.t)" (15 lines, 264B) at sial.org/pbot/31334
cjfields rakudo: say 'A'..'AA'
p6eval rakudo r28443 OUTPUT[A␤]
pmurias mncharity: i'm thinking it would be a good idea to add STD5 as a second parser to elf 22:41
TimToady pmurias: and yes, the last nopaste works with comp_unit
I can also run your program on try.t, not on a simple $a++
TimToady works on the most recent radix.t as well 22:44
so it's not that my try.t is old
pmurias so it's an STD bug 22:44
? 22:45
TimToady I don't know why your program doesn't work; didn't have a chance to look at it
pugs_svnbot r20839 | Auzon++ | [evalbot] shortened the max length slightly to keep output in one message.
TimToady I was up till 1:00 getting ready for my talk today
and had a sufficient number of my own bugs :) 22:46
pmurias it's your program that doesn't work
;)
it works on radix.t
dolmen rakudo: my $a = 'Z'; $a++; say $a;
p6eval rakudo r28443 OUTPUT[AA␤]
pmurias STD5_dump_match works on radix.t
mncharity pmurias: Foo.new(a=>1,b=>2) parsing as a=>(1,b=>2) is STD.pm spec (the precedence check in EXPR has been commented out there for a long time). :a<1>,:b<2> works. 22:47
not at yapc
TimToady could well be my bug, but I already had programs that parsed $a++, so I just used em
Auzon elf: say time 22:47
p6eval OUTPUT[syntax error at ./elf_f_faster line 3160, near ") ~"␤syntax error at ./elf_f_faster line 3161, near "))"␤syntax error at ./elf_f_faster line 3162, near "}elsif"␤Global symbol "$m" requires explicit package name at ./elf_f_faster line 3162.␤Execution of ./elf_f_faster aborted due to
..compilation errors.␤]
Auzon elf: sub time is p5 {time}; say time
pmurias TimToady: if i pass $a++ to comp_unit is spawns an error
p6eval OUTPUT[syntax error at ./elf_f_faster line 3160, near ") ~"␤syntax error at ./elf_f_faster line 3161, near "))"␤syntax error at ./elf_f_faster line 3162, near "}elsif"␤Global symbol "$m" requires explicit package name at ./elf_f_faster line 3162.␤Execution of ./elf_f_faster aborted due to
..compilation errors.␤]
Auzon elf: say 1 22:48
p6eval OUTPUT[syntax error at ./elf_f_faster line 3160, near ") ~"␤syntax error at ./elf_f_faster line 3161, near "))"␤syntax error at ./elf_f_faster line 3162, near "}elsif"␤Global symbol "$m" requires explicit package name at ./elf_f_faster line 3162.␤Execution of ./elf_f_faster aborted due to
..compilation errors.␤]
dolmen rakudo: my $a = 'AZ'; $a++; say $a;
Auzon evalbot control restart
Auzon oops, sorry 22:48
dolmen rakudo: my $a = 'AZ'; $a++; say $a; 22:48
Auzon rakudo: say 'A' .. 'Z'
TimToady it's probably somewhere in faststopper
p6eval rakudo r28443 OUTPUT[BA␤]
rakudo r28443
..OUTPUT[ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZDADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZEAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZFAFB
.....
mncharity elf: say 3
p6eval OUTPUT[syntax error at ./elf_f_faster line 3160, near ") ~"␤syntax error at ./elf_f_faster line 3161, near "))"␤syntax error at ./elf_f_faster line 3162, near "}elsif"␤Global symbol "$m" requires explicit package name at ./elf_f_faster line 3162.␤Execution of ./elf_f_faster aborted due to
..compila...
Auzon dang. It's still too long, by just a few characters 22:49
pmurias it's my fault
i changed =~ to ~~
mncharity :( we talked about that... 22:50
not right thing
pmurias mncharity: that = breaking the bootstrap?
i didn't break it, it just requires 5.10 22:51
pugs_svnbot r20840 | Auzon++ | [evalbot] last commit was just barely too long with the message length. Old length was 350 if it matters.
mncharity adding code is generally safer than changing or removing. and there's lots of stuff needing to be added. an infix:<~~> implementation in p6 would be neat. ;)
Auzon Do you have multi methods, mncharity?
pmurias mncharity: i disagree 22:52
mncharity very crude ones. basically just Class::Multimethods.
pmurias with the changing and removing bit
mncharity pmurias: re disagree, I know. how about I fork an "elf_p" from elf_f. that will also provide a place for you to work on adding STD. 22:54
TimToady pmurias: found it
pmurias mncharity: okay
mncharity Auzon: re multimethods, and on the SBCL backend, not yet (no even classes yet).
pugs_svnbot r20841 | lwall++ | [STD] accidental magical value collision at -1 in faststopper
Auzon with multimethods, it shouldn't be too hard to implement an infix:<~~> 22:55
TimToady pmurias: both .pos and $+endargs were using -1 to represent "no position yet", and -1 == -1, so it succeeded in failing :)
the sort of bug that only shows up if the file starts with EXPR rather than a statement_control 22:56
mncharity re infix:<~~>, oh, there's enough mm to do that. ie, fixed arity, no optional or named args, class-not-value based.
defining ~~ in the prelude won't actually get it called at the moment, unless you call it directly in GLOBAL::, but I was originally thinking of doing that this evening. 22:57
pmurias this = infix:<~~> 22:58
?
dolmen perl6: my $a = 'Z'; my $b = $a; $a++; say ($a gt $b).perl; 22:58
p6eval kp6 r20841: OUTPUT[syntax error at position 27, line 1 column 27:␤my $a = 'Z'; my $b = $a; $a++; say ($a gt $b).perl␤ ^ HERE␤]
..pugs: OUTPUT[Bool::False␤]
..rakudo r28443: OUTPUT[Bool::False␤]
..elf r20841: OUTPUT[syntax error at ./elf_f_faster line 3160, near ") ~"␤syntax error at ./elf_f_faster line 3161, near "))"␤syntax error at ./elf_f_faster line 3162, near "}elsif"␤Global symbol "$m" requires explicit package name at ./elf_f_faster line 3162.␤Execution of ./elf_f_faster aborted
..due to compila... 22:59
mncharity multi infix:<~~>(Blah $a,Blip $b){...} lather rinse repeat
pmurias upgrading evalbot to perl5.10 would fix it
shower&
TimToady pmurias: your program now works on my ++$a; file 23:00
mncharity problem is, instead of =~ , a nonspec 'can do anything we want it to' op being hardwired into the emitter, that's now been changed to ~~ . so... after the fork, will revert.
Auzon 5.10's infix:<~~> is slightly different in subtle ways from what I remember. The Perl 6 meaning changed sometime before 5.10 was released, so ~~ doesn't follow the P6 meaning in P5.
dolmen rakudo: say 'A'..^'AA' 23:01
p6eval rakudo r28443 OUTPUT[A␤]
mncharity the "so..." elaborates as 'which is rather an obstacle to then doing ~~ right'.
dolmen rakudo: say 'A'..'AA'
p6eval rakudo r28443 OUTPUT[A␤]
pmurias mncharity: =~ is speced 23:02
mncharity pmurias: ooo, htanks for the unicode fix 23:03
and the autobox... hmm... does that mean the feather autobox needs to be upgraded as well? 23:04
re '=~ is speced', ?
pmurias mncharity: it's speced not to be valid
pugs: my $a;$a =+ 3;say $a; 23:05
p6eval OUTPUT[3␤]
pmurias pugs: my $a;$a = ~ 3;say $a;
p6eval OUTPUT[3␤]
pmurias pugs: my $a;$a =~ 3;say $a;
p6eval OUTPUT[*** ␤ Unexpected "3"␤ There is no =~ operator in Perl 6 -- did you mean ~~ (match) or ~= (concat-assign)?␤ at /tmp/MXG4gIk6C0 line 1, column 13␤]
Auzon pugs: say "foo" . "bar" 23:06
p6eval OUTPUT[*** ␤ Unexpected "."␤ expecting operator, ":" or ","␤ at /tmp/woxbsc3lZL line 1, column 11␤]
pmurias as a way of catching a mistake cause by a perl5 mindset
s/mindest/usage/
Auzon same with .length
mncharity pmurias: "it's speced not to be valid". ah, ok. happily it will eventually go away when real regex support gets added. it could certainly be replaced with something non-prohibited, like ==~ , but that would be silly. 23:10
TimToady and everything else in STD that calls .obs
mncharity pmurias: misc/elfish/elf_p/ an ok name for the fork? 23:12
pmurias p meaning p(murias)? 23:16
mncharity re r20789, so autobox had a minor rev 'old api breaks even though it would be trivial to keep it working' change? eep... 2.53? that's just sooo wrong. 23:17
TimToady pmurias: there seems to be a bug in your program, parsing "++$a;\n" it nests sigil 4 deep for some reason
mncharity re p, or whatever. open to suggestions. or you can simply rename it of course. 23:18
TimToady the yaml output only shows one level of sigil, not 4
pmurias k
pmurias TimToady: found it $<sigil> = $<variable><sigil> 23:24
TimToady: why do you do it?
TimToady the assignment operator has to know whether it should parse as list or item assignment 23:28
and that depends on whether the sigil is '$'
pugs_svnbot r20842 | putter++ | [elf] Copy elf/elf_f_src to elfish/elf_p/ . An experimental fork for pmurias++. 23:30
TimToady it should probably just propagate the text of the sigil, not the node 23:31
mncharity Actually, that might have been better as elf_x - ie, a non-stable development branch. ah well.
pmurias TimToady: yes 23:32
TimToady I'll take a look at it sometime, so don't worry about it 23:33
dolmen rakudo: say ('a'..'z').chars 23:38
p6eval rakudo r28445 OUTPUT[Method 'chars' not found for invocant of class 'Range'␤current instr.: '_block11' pc 49 (EVAL_14:20)␤
dolmen rakudo: say ('a'..'z').perl.chars
p6eval rakudo r28445 OUTPUT[8␤]
TimToady .chars should be another one of those methods that has an Any variant that coerces to Str 23:39
dolmen rakudo: my $a = 'a'..'z'; say $a.chars 23:39
p6eval rakudo r28445 OUTPUT[Method 'chars' not found for invocant of class 'Range'␤current instr.: '_block11' pc 70 (EVAL_14:27)␤
dolmen rakudo: my Str $a = 'a'..'z'; say $a.chars
p6eval rakudo r28445 OUTPUT[Type check failed␤current instr.: 'parrot;Perl6Object;infix:=' pc 59 (src/gen_builtins.pir:51)␤
TimToady rakudo: say ~('a'..'z')
p6eval rakudo r28445 OUTPUT[get_string() not implemented in class 'Range'␤current instr.: 'prefix:~' pc 11061 (src/gen_builtins.pir:7401)␤
dolmen rakudo: say (~('a'..'z').chars) 23:40
p6eval rakudo r28445 OUTPUT[Method 'chars' not found for invocant of class 'Range'␤current instr.: '_block11' pc 49 (EVAL_14:20)␤
dolmen rakudo: say (~('a'..'z')).chars
p6eval rakudo r28445 OUTPUT[get_string() not implemented in class 'Range'␤current instr.: 'prefix:~' pc 11061 (src/gen_builtins.pir:7401)␤
TimToady if bare ~ doesn't work, adding a .chars won't make it better 23:42
TimToady perl6: say ('a'..'z').join.chars 23:43
p6eval kp6 r20842: OUTPUT[syntax error at position 4, line 1 column 4:␤say ('a'..'z').join.char␤ ^ HERE␤]
..pugs: OUTPUT[26␤]
..rakudo r28445: OUTPUT[Method 'join' not found for invocant of class 'Range'␤current instr.: '_block11' pc 49 (EVAL_14:20)␤
..elf r20842: OUTPUT[syntax error at ./elf_f_faster line 3160, near ") ~"␤syntax error at ./elf_f_faster line 3161, near "))"␤syntax error at ./elf_f_faster line 3162, near "}elsif"␤Global symbol "$m" requires explicit package name at ./elf_f_faster line 3162.␤Execution of ./elf_f_faster aborted
..due to compila...
TimToady perl6: say ['a'..'z'].join.chars 23:44
p6eval kp6 r20842: OUTPUT[syntax error at position 4, line 1 column 4:␤say ['a'..'z'].join.char␤ ^ HERE␤]
..pugs: OUTPUT[26␤]
..rakudo r28445: OUTPUT[2001␤]
..elf r20842: OUTPUT[syntax error at ./elf_f_faster line 3160, near ") ~"␤syntax error at ./elf_f_faster line 3161, near "))"␤syntax error at ./elf_f_faster line 3162, near "}elsif"␤Global symbol "$m" requires explicit package name at ./elf_f_faster line 3162.␤Execution of ./elf_f_faster aborted
..due to compila...
diakopter rakudo: 2001...?
p6eval rakudo r28445 OUTPUT[Statement not terminated properly at line 1, near "...?"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
TimToady ooh, rakudo is on a space odyssey
dolmen rakudo: say (~(('a'..'z').list)).chars 23:45
p6eval rakudo r28445 OUTPUT[2001␤]
dolmen rakudo: say (~(('a'..'y').list)).chars
p6eval rakudo r28445 OUTPUT[49␤]
dolmen rakudo: say (~(('A'..'Y').list)).chars
p6eval rakudo r28445 OUTPUT[49␤]
dolmen rakudo: say ('A'..'Y').list
p6eval rakudo r28445 OUTPUT[ABCDEFGHIJKLMNOPQRSTUVWXY␤]
dolmen rakudo: say ~(('A'..'Y').list) 23:47
p6eval rakudo r28445 OUTPUT[A B C D E F G H I J K L M N O P Q R S T U V W X Y␤]
diakopter rakudo: say ~(('A'..'Y').list.pick)
p6eval rakudo r28445 OUTPUT[Method 'pick' not found for invocant of class 'List'␤current instr.: '_block11' pc 58 (EVAL_14:21)␤
diakopter pugs: say ~(('A'..'Y').list.pick) 23:48
p6eval OUTPUT[P␤]
diakopter pugs: say ~(('R','A','K','U','D','O').list.pick) 23:49
p6eval OUTPUT[K␤]
diakopter pugs: say ~(('R','A','K','U','D','O').list.pick)
p6eval OUTPUT[K␤]
diakopter pugs: say ~(('R','A','K','U','D','O').list.pick)
p6eval OUTPUT[R␤]
TimToady perl6: say ('a'..'y').cat
p6eval kp6 r20842: OUTPUT[syntax error at position 4, line 1 column 4:␤say ('a'..'y').ca␤ ^ HERE␤]
..pugs: OUTPUT[*** Unimplemented unaryOp: cat␤ at /tmp/6x0LBEdYR3 line 1, column 5 - line 2, column 1␤]
..rakudo r28445: OUTPUT[Method 'cat' not found for invocant of class 'Range'␤current instr.: '_block11' pc 49 (EVAL_14:20)␤
..elf r20842: OUTPUT[syntax error at ./elf_f_faster line 3160, near ") ~"␤syntax error at ./elf_f_faster line 3161, near "))"␤syntax error at ./elf_f_faster line 3162, near "}elsif"␤Global symbol "$m" requires explicit package name at ./elf_f_faster line 3162.␤Execution of ./elf_f_faster aborted
..due to compila...
Auzon diakopter: try <r a k u d o> instead ;)
diakopter pugs: say ~(('rakudo').split('').pick) 23:50
p6eval OUTPUT[r␤]
diakopter pugs: say ~(('rakudo').split('').pick)
p6eval OUTPUT[u␤]
diakopter rakudo: say ~(('rakudo').split('').pick) 23:50
p6eval rakudo r28445 OUTPUT[Method 'pick' not found for invocant of class 'List'␤current instr.: '_block11' pc 47 (EVAL_12:20)␤
dolmen pugs: <rakudo>.split('').pick.say
p6eval OUTPUT[d␤]
diakopter rakudo: say ~(('rakudo').split(''))
p6eval rakudo r28445 OUTPUT[r a k u d o␤]
dolmen pugs: <rakudo>.split('').pick.say
p6eval OUTPUT[k␤]
TimToady perl6: say 'rakudo'.comb(/./).pick
p6eval kp6 r20842: OUTPUT[syntax error at position 17, line 1 column 17:␤say 'rakudo'.comb(/./).pic␤ ^ HERE␤] 23:51
..pugs: OUTPUT[k␤]
..rakudo r28445: OUTPUT[Method 'comb' not found for invocant of class 'Perl6Str'␤current instr.: '_block11' pc 45 (EVAL_12:22)␤
..elf r20842: OUTPUT[syntax error at ./elf_f_faster line 3160, near ") ~"␤syntax error at ./elf_f_faster line 3161, near "))"␤syntax error at ./elf_f_faster line 3162, near "}elsif"␤Global symbol "$m" requires explicit package name at ./elf_f_faster line 3162.␤Execution of ./elf_f_faster aborted
..due to compila...
TimToady split '' is so perl 5...
diakopter well it doesn't have chars
oh wait it does
oh wait that's even wrong; heh 23:52
rakudo: say ~(('rakudo').split('').item.perl) 23:53
p6eval rakudo r28445 OUTPUT[["r", "a", "k", "u", "d", "o"]␤]
mncharity "split '' is so perl 5..." :) 23:55