Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-08-07

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 Schwern joined #perl6
00:10 wknight8111 joined #perl6
00:20 dug_ joined #perl6
00:32 penk joined #perl6
01:05 alester_ joined #perl6
01:31 hercynium joined #perl6
02:08 BinGOs_ joined #perl6
02:35 BinGOs joined #perl6
02:40 justatheory joined #perl6
02:45 kanru joined #perl6
02:47 whereiskurt joined #perl6
02:59 BinGOs_ joined #perl6
03:50 Schwern joined #perl6
03:54 BinGOs joined #perl6
04:15 BinGOs joined #perl6
04:36 masak joined #perl6
05:11 melling joined #perl6
05:17 melling left #perl6
05:33 zostay joined #perl6
05:38 Psyche^ joined #perl6
06:13 hcchien joined #perl6
06:17 ycheng joined #perl6
06:40 ashizawa joined #perl6
06:50 masak joined #perl6
07:07 pbuetow joined #perl6
07:09 felipe joined #perl6
07:09 cotto joined #perl6
07:15 pmurias joined #perl6
07:18 barney joined #perl6
07:49 agentzh joined #perl6
07:54 jan__ joined #perl6
08:19 luqui joined #perl6
08:22 cosimo joined #perl6
08:27 pugs_svn r21818 | pmurias++ | [mold] conditional branch
08:35 BinGOs joined #perl6
08:40 pmurias how should the variant of call with responder interface,capture,and identifier be called?
09:02 pugs_svn r21819 | lwall++ | [STD vs t] user-defined prefix, infix, and postfix ops now derive new languages
09:02 pugs_svn r21819 | lwall++ | (no support for equiv or assoc traits yet, nor for circumfix etc.)
09:02 pugs_svn r21819 | lwall++ | start of support for $?PARSER, now parses 99.74% of t/
09:02 pugs_svn r21819 | lwall++ | traits and sigs may now be intermixed
09:02 pugs_svn r21819 | lwall++ | an anonumous subname may be represented with '&' in sub & is foo {...}
09:02 pugs_svn r21819 | lwall++ | now parses 99.74% of t
09:25 iblechbot joined #perl6
09:32 elmex joined #perl6
09:37 kcwu joined #perl6
09:44 jan__ joined #perl6
09:56 kanru joined #perl6
09:59 pmurias TimToady: you went for a $*Parser instead of propagating changes?
10:03 pmurias $*PARSER actually
10:16 kanru joined #perl6
10:25 pugs_svn r21820 | jnthn++ | [spectest] Skip a test that we are currently failing in Rakudo, and that causes the rest of the file (that we can pass) to also fail after we die.
10:34 whereiskurt joined #perl6
10:35 pugs_svn r21821 | pmurias++ | [mold] call2 - still untested :(
10:35 jferrero joined #perl6
10:46 pugs_svn r21822 | pmurias++ | [m0ld] added a Makefile, merged lets
10:56 pmurias audreyt: have you looked into plugging m0ld into Pugs.Gen yet?, i almost finished all the ops for m0ld and i'm not sure what to focus on now
11:06 audreyt sorry, I was a bit occupied with new $work
11:06 audreyt will take a look to m0ld tonight
11:08 whereiskurt joined #perl6
11:10 ez joined #perl6
11:15 pmurias audreyt: no hurry, there is lots of stuff in smop i can work on
11:16 pugs_svn r21823 | pmurias++ | [m0ld] case is used for pattern matching instead of mutiple function definitions
11:22 Lorn joined #perl6
11:30 Alias_ joined #perl6
11:31 pugs_svn r21824 | pmurias++ | [m0ld] Data.Map is imported as Map
11:34 whereiskurt_ joined #perl6
12:07 mjk joined #perl6
12:08 AzureStone_ joined #perl6
12:26 meppl joined #perl6
12:33 wknight8111 joined #perl6
12:50 bbkr joined #perl6
13:03 ez joined #perl6
13:04 alester_ joined #perl6
13:12 iblechbot joined #perl6
13:15 cmarcelo joined #perl6
13:23 hercynium joined #perl6
13:41 pugs_svn r21825 | jnthn++ | [spectest] Some tests for array and hash attributes.
13:42 gnuvince @karma lwall
13:42 lambdabot lwall has a karma of 47
13:42 gnuvince left #perl6
13:46 pmurias @karma TimToady
13:46 lambdabot TimToady has a karma of 1
14:10 ez joined #perl6
14:14 gbacon @karma+ TimToady
14:14 lambdabot TimToady's karma raised to 2.
14:31 alester joined #perl6
14:33 fridim_ joined #perl6
14:37 rindolf joined #perl6
14:55 pugs_svn r21826 | jnthn++ | [spectest] Unskip a test that Rakudo can now pass.
15:11 kanru joined #perl6
15:28 ez joined #perl6
15:45 simcop2387 joined #perl6
15:47 ron joined #perl6
15:48 fridim_ joined #perl6
15:50 ron perl6: my $a = '0123456'; say substr($a, -5, -2);
15:50 p6eval elf 21826, pugs: OUTPUT[234␤]
15:50 p6eval ..rakudo 29834: OUTPUT[23456␤]
15:52 ron I'm guessing perl6 is off and may work on it ...
15:52 ron rakudo
15:52 pugs_svn r21827 | jnthn++ | [spectest] A couple more tests for mixins, to cover a bug fixed today in Rakudo.
15:54 Lunchy joined #perl6
16:03 pugs_svn r21828 | jnthn++ | [spectest] Various bits of fudging and tweaking of the handles spectest so Rakudo is able to run some of it.
16:03 kanru joined #perl6
16:17 fridim__ joined #perl6
16:22 alester joined #perl6
16:27 timbunce joined #perl6
16:28 pugs_svn r21829 | jnthn++ | [spectest] Some fudging in hash.t; now Rakudo can run 60% of the tests in this file.
16:33 timbunce off topic: Unix question: what's the command to take multiple text files and output their contents side-by-side. i.e., the first lines from each, newline, the send from etc etc.
16:33 timbunce I know pr can do columns, but it wants to 'snake' the contents so the lines are no longer in sync.
16:34 timbunce I'm sure there's a simple command for it but it's escaping me and my searches at the moment.
16:36 ron joined #perl6
16:36 ron timbunce: maybe paste ??
16:37 timbunce The paste command is the closest I've found (just now) but doesn't pad the columns. I'll do though.
16:37 timbunce Thanks ron.
16:42 justatheory joined #perl6
16:42 sri_work joined #perl6
16:44 ruoso joined #perl6
16:50 hercynium joined #perl6
16:59 TJCRI joined #perl6
16:59 pmurias joined #perl6
17:00 pmurias ruoso: hi
17:00 ruoso hi pmurias
17:04 pmurias what's the next think i should be doing with Mold, porting Code to use it?
17:05 ruoso yes... I think so...
17:09 * ruoso installing ghc
17:12 jferrero joined #perl6
17:21 pmurias is just replacing the old slime Code ok, as it seems it has never fully worked?
17:21 ruoso yes... and we also need to support Code signature anyway...
17:21 ruoso which means supporting lexical scopes first
17:22 ruoso I've been re-reading the specs to see if the model in the wiki fits
17:24 ruoso I still need to re-think on a good way to mark variables as "is context"
17:24 ruoso or "is context<rw>"
17:28 pmurias we can store that info in a hash
17:34 ruoso pmurias, you mean having %.items and %.traits
17:34 ruoso ?
17:35 pmurias ruoso: something like that
17:36 ruoso I thought about having %.items having values of a special type that would describe all that info, besides holding the container...
17:37 ruoso something like a Variable type...
17:38 ruoso pmurias, btw... 24_m0ld.m0ld is very impressive...
17:39 TimToady in theory the only time you have to check is when you're chasing up the dynamic stack looking for a context var
17:39 ruoso yes... that was what I was thinking...
17:39 TimToady though certain kinds of optimizations that copy the context downward might also want to look at it
17:39 TimToady what optimizations you can get away with depend on <rw>
17:40 TimToady basically, whether you copy the value down or the ref
17:40 TimToady btw, currently testing to see if I'm at 100%
17:40 TimToady I suspect I am
17:40 TimToady well, STD is
17:40 TimToady I'm never really 100%... :/
17:41 TimToady but 'make testt' is looking good so far, so I'll go ahead and check in
17:42 ruoso I'm not considering doing any optimization at this point... only making sure there's room for it later...
17:43 pmurias i dosn't make much sense to optimize untill we are running on llvm
17:43 ruoso pmurias, you know something that would be very cool... replacing slime by mold in p6opaque and in the p6opaque tests (including dispatch_benchmark)...
17:44 ruoso then we could have a good notion of how much mold improves in speed...
17:46 [particle] pmurias: you know about llvm-gcc, yes?
17:46 pmurias yes
17:46 [particle] good
17:46 ruoso [particle], but what we're considering is using llvm as the interpreter itself...
17:46 pugs_svn r21830 | lwall++ | [STD] refine nibbler to avoid LTM for now
17:46 pugs_svn r21830 | lwall++ | avoid feeding canmatch() multiple large unicode characters at once
17:46 pugs_svn r21830 | lwall++ |     since that tends to make way too many digraph cache files
17:46 pugs_svn r21830 | lwall++ | [t] whack illegal adverbials
17:46 ruoso at some point...
17:48 pmurias ruoso: re replacing slime, would it be possible to replace it by use v6 blocks
17:48 pmurias m0ld isn't meant for being handwritten
17:48 ruoso in p6opaque we have use v6 blocks already
17:48 ruoso and in the tests also
17:50 pmurias i see long sm0p block in src/p6opaque.c
17:50 ruoso it's cool to realise that mold and slime are coexisting during this tests...
17:50 ruoso ahm..
17:50 ruoso only the tests are using v6 blocks...
17:50 ruoso :(
17:51 ruoso but I think it's not that hard to replace..
17:51 * ruoso taking a deep breath to read the sm0p blocks...
17:52 TimToady crumb, got an "identifier too long" error out of p5...
17:53 TimToady adding more bare blocks to self-defined.t
17:53 TimToady (to limit scope of user-defined operators)
17:54 TimToady (which tend to add long components to the current type name)
17:54 TimToady (because p5 doesn't have anonymous packages really...)
17:54 pmurias re Variable type, i think it's better to reduce the number of classes before we can write them in C
17:54 pmurias TimToady: we can use Class::MOP for creating anonymous classes
17:54 ruoso pmurias, before we can write it in P6, you mean...
17:55 pmurias ruoso: yes, of course ;)
17:55 ruoso maybe we could think on the traits as Roles
17:56 ruoso and later we could make $container ~~ ContextVariable
17:56 ruoso to see if it's a context variable
17:56 pugs_svn r21831 | lwall++ | [STD] limit scope of user-defined ops to work around p5 limitation on identifier length
17:56 pugs_svn r21831 | lwall++ | (why does p5 have a limitation on identifier length?  probably my own fault, grrr)
17:58 pmurias ruoso: sounds resonable, and comfortably moves it down the ROADMAP
17:59 ruoso geez... replacing sm0p by 'use v6' blocks was easier then I expected...
18:00 pugs_svn r21832 | ruoso++ | [smop] replace sm0p blocks by use v6 blocks in p6opaque....
18:00 ruoso TimToady, do you think it makes sense to think on the variable traits as "container roles"?
18:01 ruoso we have only one sm0p block left in src/
18:01 pugs_svn r21833 | lwall++ | [STD] remove factorial cheat now that postfix:<!> is recognized
18:02 TimToady for lexicals it's almost more a trait on the use of the *name*, since there can be many identical containers for a given variable
18:03 TimToady you probably want to keep your lexical defs separate from the actual pads anyway, like p5 does
18:03 ruoso yes... yes... that's the reason why smop will have a double boxing on the variables
18:03 TimToady that allows you to have lexical defs that point to fixed offsets in the pad
18:03 pmurias ruoso++ # radical code shrinking with "use v6"
18:03 ruoso the variable container is a container that has the actual container...
18:04 ruoso TimToady, binding works because of this "double boxing"
18:04 ruoso pmurias, I'd like to get rid of the last sm0p block in src/
18:05 ruoso but that one is a very fragile one
18:05 ruoso because it's where the variable is actually freed
18:05 ruoso and that's where an important slime feature comes in...
18:05 ruoso which is "forget()"
18:05 ruoso it does a forget() before calling the actual free
18:06 ruoso so we're sure that there isn't any other copy of that value in any other place
18:06 ruoso smop_lowlevel.sm0p:232
18:06 ruoso I think we can't really convert that to a "use v6" block... but we can probably replace it with a mold block
18:08 ruoso pmurias, what do you think?
18:08 ruoso actually.. how do you think we could solve that?
18:08 pmurias looking at what forget is
18:09 ruoso forget releases the slime nodes before the current one
18:09 ruoso which in mold could be implemented just by a cleaning of some selected registers
18:11 ruoso pmurias, does mold already support sending an object as the capture, as in (|$object)
18:11 ruoso ?
18:12 pmurias ruoso: yes
18:13 pmurias it's the last untested opcode
18:13 ruoso good
18:13 ruoso smop_lowlevel is a good test case ;)
18:15 pmurias i'm unsure weather to add some syntax sugar to m0ld
18:15 ruoso I'm not sure that's needed for smop_lowlevel...
18:16 ruoso we can have a mold block creation there..
18:16 ruoso with a lot of comments explaining what it is
18:17 pmurias meant it in a different context, but yes we could use a mold block creation there
18:17 ruoso pmurias, also... take a look at smop_lowlevel.sm0p:118
18:18 ruoso in that line, the lowlevel free operator removes the last reference of the value in the current slime block
18:18 ruoso something like that would be needed...
18:18 ruoso it's an important bootstrap element...
18:19 pmurias just manual overwritting the register could work
18:19 pmurias * manually
18:20 ruoso that's fine by me... it's just that the "free" call needs to do that *after* it was invoked...
18:21 ruoso because it obviously needs to receive the value as argument before doing it...
18:22 cmarcelo joined #perl6
18:22 ruoso and it needs to be done that way... because DESTROYALL might recurse, so free needs to be called after DESTROYALL returns...
18:24 pmurias ok i'll do it tommorow morning of later today
18:24 ruoso :D
18:25 meppl joined #perl6
18:29 pmurias ;) i meant it to be of rather than on, as i find that staying coding up late is not really worth it
18:31 pmurias ruso: is there anything about m0ld i should write? the wiki page feels skimpy as it is
18:31 pmurias * ruoso
18:32 ruoso pmurias, I think it's ok for now... I have a feeling that we're going to have s1p soon... so m0ld will have a limited use...
18:32 ruoso because s1p will generate C+m0ld (or C using Mold directly)
18:34 mofino C can harness the awesome power of mold!?
18:34 mofino what can't C do!?
18:34 mofino libfungus
18:34 * mofino goes back into the darkness
18:37 pugs_svn r21834 | lwall++ | [STD] EXPR gets upset if we don't hoist $<sym> from prefix into pre
18:39 pmurias ruoso: i just wanted audreyt to have an easier job with s1p, although i'm not sure if she prefers reading docs to reading code
18:44 ruoso and I'm also not sure she'll want to write C+m0ld instead of C+Mold
18:45 pmurias and anything about Mold?
18:45 pmurias btw i'm confusing Mold and m0ld myself so maybe the names are to similar
18:46 ruoso heh...
18:46 ruoso writing more about Mold is certainly a good idea
18:48 mofino Needs more mold!
18:48 pmurias i don't really now how to start, any requests?
18:50 * pmurias was suprised after reading on wikipedia that slime molds can actually crawl about
18:56 ruoso pmurias, I think a more structured page on the opcodes would be helpfull\
19:02 Caelum joined #perl6
19:07 jfredett_ joined #perl6
19:08 Schwern joined #perl6
19:20 eternaleye joined #perl6
19:20 fridim_ joined #perl6
19:36 cjfields joined #perl6
19:50 Alias_ joined #perl6
19:58 pugs_svn r21835 | lwall++ | [symbolic_deref.t] commented out illegal syntax
20:07 buubot joined #perl6
20:09 ruoso pmurias, in the s1p Hash implementation, after the key being autovivified, do you store the container or do you return a proxy object every time?
20:10 pmurias ruoso: looking
20:11 pmurias ruoso: i don't do either hashing or autovivification
20:12 ruoso let me put the question another way...
20:12 pmurias ok ;)
20:12 pmurias you mean how should it be done?
20:12 ruoso is the return of postcircumfix:<{}> something that I can modify? or is it just a proxy for the stored value?
20:13 ruoso meaning... can I just FETCH and STORE? or may I suppose that this object could "does" something...
20:15 cookys joined #perl6
20:15 pmurias ruoso: the object returned is the actuall hash cell
20:17 ruoso pmurias, alright...
20:17 ruoso which means that you're implementing a hash in p5 style
20:17 ruoso where touching it autovivifies it
20:18 pmurias i can fix it, it's just a quick hack
20:19 pmurias i think will have the actual Hash in Perl 6
20:19 pmurias s/will/we will
20:19 ruoso yes yes...
20:19 TimToady if the hash cell doesn't exist, you return a protoobject with a WHENCE that knows where to autovifify
20:19 ruoso but I'm not thinking about Hash itself now, but its usage in LexicalScope
20:20 ruoso TimToady, there's one thing I'm not sure about is how is this WHENCE block detect if you're wanting to use the hash cell as a scalar, an array or whatever...
20:20 ruoso s/how is this/how will this/
20:21 ruoso unless this protoobject is of some magical type that can coerce to whatever
20:21 * TimToady waves his hands vaguely and mutters "left as an exercise for the reader"
20:21 [particle] Object is that type, no?
20:22 TimToady you return the "of" protoobject with a WHENCE
20:22 ruoso pugs: my $a = Object.new(); $a<1> = 2; say $a<1>;
20:22 p6eval pugs: OUTPUT[2␤]
20:23 pugs_svn r21836 | lwall++ | [STD] distinguish &infix:<x> inside declaration from outside
20:24 * ruoso not really sure on how Object will turn itself into Hash....
20:24 wknight8111 joined #perl6
20:25 pugs_svn r21837 | jnthn++ | [spectest] Skip a test in Rakudo that I think is a bit suspect; requested clarification from p6l.
20:26 TimToady the WHENCEthing returned by $a<1> would know both how to turn Object into an hash and how to add the 1 if used as lvalue, I suppose
20:26 ruoso hmm...
20:27 pmurias maybe just WHENCE has the method which autovivified is as an arguments?
20:27 TimToady it's a closure, so it can have whatever it likes
20:28 TimToady and the WHENCE closure need not be generated if provably in rvalue context
20:28 * ruoso is missing something in this picture... but have to go now...
20:28 TimToady this is all specced, I think
20:29 TimToady nap&
20:29 pmurias ruoso: i changed the wiki page format
20:30 pmurias * Mold wiki page
20:32 ruoso home &
20:35 cognominal_ joined #perl6
20:53 pugs_svn r21838 | lwall++ | [STD] more opdef tuneups
20:57 [particle] committing while napping... this is becoming common in the pugs repo
21:12 pugs_svn r21839 | jnthn++ | [spectest] Unskip and un-todo some more tests that Rakudo is now passing.
21:18 pugs_svn r21840 | fglock++ | [PCR] Runtime::Regex with dfa-ish "parallel alternation" committed as a separate file;
21:18 pugs_svn r21840 | fglock++ | - low-level tests pass.
21:18 pugs_svn r21840 | fglock++ | - pending integration with the main runtime.
21:18 pugs_svn r21840 | fglock++ | Runtime::Match: added clone()
21:22 preflex joined #perl6
21:24 whereiskurt_ joined #perl6
21:28 Caelum joined #perl6
21:44 hercynium joined #perl6
21:59 pugs_svn r21841 | jnthn++ | [spectest] Unskip a some more hash composer tests for Rakudo.
21:59 whereiskurt__ joined #perl6
22:01 mauke left #perl6
22:31 TimToady _  ___   ___ _  __
22:31 TimToady |/ _ \ / _ (_)/ /
22:31 TimToady | | | | | | | |/ /
22:31 TimToady | | |_| | |_| / /_
22:31 TimToady |_|\___/ \___/_/(_)
22:31 TimToady heh
22:32 Schwern joined #perl6
22:32 TimToady trying again:
22:32 TimToady _  ___   ___ _  __
22:32 TimToady / |/ _ \ / _ (_)/ /
22:32 TimToady | | | | | | | |/ /
22:32 TimToady | | |_| | |_| / /_
22:32 TimToady |_|\___/ \___/_/(_)
22:33 xinming It's a good time to remember for the perl 6 on the road, :-)
22:34 TimToady 'course, that's just parsing t/ 100%, not parsing t/ 100% correctly...
22:34 Caelum joined #perl6
22:35 [particle] can you push it to 111%?
22:35 TimToady but about as well as you can do without a symbol table...
22:35 TimToady sure, just keep adding thrust
22:36 [particle] get it parsing ext/
22:36 TimToady scared to try
22:36 [particle] hrmm, actually, there's a bunch of non-perl6 there
22:36 [particle] makefile.pl etc
22:37 TimToady course, by spec p6 is supposed to recognize that... :)
22:37 [particle] congrats, though. that's a big milestone
22:37 [particle] yeah, well, let's not go there
22:37 [particle] of course, your parser can actually embed perl to parse Perl 5
22:37 TimToady I think my next major milestone will be a 100x speedup...
22:38 [particle] still written in perl 5?
22:38 TimToady I can probably hit 100x on the embedded perl 5 :)
22:38 TimToady yes
22:38 [particle] :)
22:38 TimToady there's *lots* of room for improvement all over
22:38 [particle] hot diggity.
22:39 TimToady consider that it takes it 3 minutes to parse itself, but gimme5 does it in 1 second
22:40 dduncan joined #perl6
22:41 TimToady should be able to get into the same ballpark as gimme5, within a factor of 2 or 3 anyway
22:41 [particle] hopefully 2-3 faster :)
22:41 [particle] move over toke.c
22:42 TimToady well, that's when we're compiling p6 straight down to the metal
22:42 TimToady got a ways to go on that yet
22:43 [particle] how long to parse t/ ?
22:43 TimToady 'bout an hour right now
22:43 [particle] ok, so 10x would really change your life
22:44 TimToady one can only get so far running tests while one is sleeping :)
22:44 TimToady but "so far" is at least where we are now
22:45 TimToady but I kept holding out for 100% before looking at optimizing at all
22:45 [particle] complete, correct, etc
22:45 [particle] but we're ignoring the first bit
22:46 TimToady the next thing to do is probably to actually implement the ratchet optimization beyond just throwing in a .[0] here and there
22:46 TimToady currently all the code assumes anything might backtrack even if it doesn't
22:48 [particle] that'll trim some trees
22:50 [particle] ok, i've gotta get yaml::xs to install, so i can play with it
22:50 TimToady a custom dfa matcher will also help a lot; it spends a great amount of time trying to avoid running tre
22:50 TimToady and Moose
22:50 [particle] well, i'm busy getting minicpan set up
22:50 TimToady tre doesn't work on macs; dunno about windows
22:50 [particle] since i'll be downloading half of cpan anyway
22:50 [particle] no tre on windows
22:51 TimToady another reason to come up with our own dfa
22:51 [particle] i'm using ubuntu 8.04
22:51 [particle] just so i can play
22:51 [particle] but i'd love to port it windowward
22:51 TimToady I'm also on ubuntu at the moment
22:53 TimToady another medium-term goal would be to write something that takes the yaml parse of STD.pm and produces STD.pmc to replace gimme5
22:53 TimToady but I think a speedup comes first to avoid quadratic development
22:54 [particle] indeed
22:54 [particle] however exploratory code in that direction is possible
22:55 TimToady and has already been discussed here, in fact, though usually in the middle of the night from my perspective :)
22:55 [particle] the ast generated, do you see that as an official ast?
22:55 TimToady it's just a parse tree currenltly
22:55 [particle] oh right
22:56 TimToady no make/reduce actions at all
22:57 [particle] shoot. i've put off that yaml dumper/loader for past long enough.
22:58 TimToady I've got several more yaks looking fuzzy if you're interested
22:59 [particle] i wish yaks were friendlier.
23:00 TimToady I just wish that once you shaved 'em they'd stay shaved...
23:00 [particle] yep, even if you kill'em, that hair keeps growing
23:01 pbuetow_ joined #perl6
23:04 [particle] i can't believe i'm debugging the jvm for work today.
23:07 [particle] an old jvm (1.3.1). on a platform i don't know (rhel 3).
23:08 [particle] damn yaks.
23:16 whereiskurt__ joined #perl6
23:40 ruoso joined #perl6
23:54 cognominal_ joined #perl6
23:56 bacek joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo