Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-09-14

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:08 Tene pmichaud: do they eq if you you just call .decode() twice?
00:09 Tene Hmm.  I get 1 when I run that.  I should update.
00:17 araujo left #perl6
00:31 whiteknight left #perl6
00:38 shortcircuit left #perl6
00:40 shortcircuit joined #perl6
00:42 pmichaud Tene: I'm running a rakudo against a more recent copy of Parrot (after some string encoding changes)
00:43 Tene ahh
00:43 pmichaud I get a failure that comes down to the fact that Buf.decode seems to be returning a string that is marked as 'ascii' encoding even though it's obviously unicode
00:43 pmichaud just a sec, I'll update
00:43 Tene spooky
00:43 Tene I'm on parrot 48933
00:43 Tene and they're equal
00:43 pmichaud right
00:43 pmichaud I'm on whatever revision is in the nopaste :)
00:44 pmichaud 48982
00:44 Tene oh, right, it's there
00:44 Tene Reading comprehension is great. :)
00:45 Guest27047 joined #perl6
00:45 pmichaud http://gist.github.com/578339   # same as previous nopaste, showing that encodings are somehow different
00:52 QinGW joined #perl6
00:55 QinGW1 joined #perl6
00:56 QinGW1 left #perl6
00:56 QinGW1 joined #perl6
00:59 ruoso left #perl6
00:59 QinGW left #perl6
01:00 pmichaud http://gist.github.com/578359   # somewhere is a bug in 'get_string_as' that is returning the wrong encoding
01:00 pmichaud I wonder if the problem is the zero-length string
01:01 pmichaud i.e., perhaps its encoding is being switched to ascii somewhere because it has length zero.
01:01 pmichaud a-ha
01:01 pmichaud I think I now.
01:01 pmichaud *know
01:02 pmichaud yes, bug confirmed.
01:02 pmichaud the encoding isn't being preserved in the packfile.
01:12 pmichaud filed as TT #1791
01:17 molaf__ joined #perl6
01:18 molaf_ left #perl6
01:24 Maco_ joined #perl6
01:25 Maco_ left #perl6
01:35 lichtkind joined #perl6
01:35 lichtkind is anyone from planetsix here?
01:36 lichtkind since use.perl ends please change my feed to http://blogs.perl.org/users/lichtkind/ tag: "Perl 6"
01:39 Chillance left #perl6
01:39 lichtkind left #perl6
02:02 masonkramer left #perl6
02:04 dalek rakudo: 4d96c92 | pmichaud++ | src/core/Buf.pm:
02:04 dalek rakudo: Change unicode constant string passed to ByteBuffer.get_string_as to work around TT #1791.
02:04 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​d96c92bf610d19519bda55a5b96986766fdd6c1
02:04 dalek rakudo: c71489b | pmichaud++ | docs/ChangeLog:
02:04 dalek rakudo: Merge branch 'master' of github.com:rakudo/rakudo
02:04 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​71489b47799d834e7b016322aa36e0b86fef7ce
02:07 meppl left #perl6
02:17 xinming left #perl6
02:17 xinming joined #perl6
02:40 araujo joined #perl6
02:45 LionMadeOfLions joined #perl6
03:01 orafu left #perl6
03:02 orafu joined #perl6
03:10 tylercurtis joined #perl6
03:10 Guest27047 left #perl6
03:24 sorear good * #perl6
03:28 [Coke] left #perl6
03:29 diakopter sorear: hi
03:30 jaldhar joined #perl6
03:32 jdv79 joined #perl6
03:36 sorear shocking
03:36 diakopter ? :)
03:37 sorear removing 1 pointer from backtrack state objects = 16% speedup
03:37 diakopter int r sting
03:44 patspam left #perl6
03:45 dalek niecza: 7f531ff | sorear++ | lib/Cursor.cs:
03:45 dalek niecza: Combine klasses and reps into a composite N-stack
03:45 dalek niecza: review: http://github.com/sorear/niecza/commit/7​f531ff4fc7c377c4467c79ec8a0ade3d4088315
03:45 dalek niecza: 69dcd45 | sorear++ | lib/Cursor.cs:
03:45 dalek niecza: Use a composite list for captures
03:45 dalek niecza: review: http://github.com/sorear/niecza/commit/6​9dcd45f5f4a5fc3f3dbf380149eef0e78ad9259
03:56 satyavvd joined #perl6
04:09 LaVolta joined #perl6
04:13 meppl joined #perl6
04:15 agentzh joined #perl6
04:15 justatheory left #perl6
04:16 justatheory joined #perl6
04:17 justatheory left #perl6
04:17 TimToady new entry: http://rosettacode.org/wiki/Create_a_t​wo-dimensional_array_at_runtime#Perl_6
04:18 * sorear is implementing <?foo> as <!!foo>
04:18 sorear feels a little silly :)
04:18 TimToady not quite correct under LTM
04:19 TimToady well, for the matching itself, it's fine
04:19 sorear yeah for the matching itself
04:19 TimToady but <?foo> includes foo in LTM, and <!...> doesn't
04:19 TimToady nodnoe
04:19 sorear LTM is handled by a different codepath
04:19 TimToady *d
04:20 TimToady maybe you should implement <!foo> and <??foo>...oh wait...
04:43 Aditcr joined #perl6
04:43 molaf__ left #perl6
04:43 cjk101010 joined #perl6
04:50 meppl left #perl6
04:55 sftp joined #perl6
05:08 envi^home joined #perl6
05:15 dalek niecza: 65081a4 | sorear++ | / (4 files):
05:15 dalek niecza: Give NState responsibilities for backtrack control
05:15 dalek niecza: review: http://github.com/sorear/niecza/commit/6​5081a4e8013576c7575a09fe7287c03ae78d645
05:15 dalek niecza: 1083311 | sorear++ | src/RxOp.pm:
05:15 dalek niecza: Implement optimizations for simple cases of **
05:15 dalek niecza: review: http://github.com/sorear/niecza/commit/1​083311d74c64bb9f21fd760ecb9c31dbd292cd4
05:15 dalek niecza: e698589 | sorear++ | / (3 files):
05:15 dalek niecza: Optimize use of literal strings in lookahead
05:15 dalek niecza: review: http://github.com/sorear/niecza/commit/e​6985892433cca0beed81e74d8b213f024abc71c
05:15 envi^home left #perl6
05:15 sftp left #perl6
05:19 envi^home joined #perl6
05:21 Aditcr left #perl6
05:25 sorear the LTM engine is *finally* showing up on the profile
05:40 gottreu_ joined #perl6
05:43 kaare joined #perl6
05:43 kaare is now known as Guest68652
05:48 am0c joined #perl6
05:57 masak joined #perl6
05:57 masak oh hai, #perl6!
05:57 Cyrus joined #perl6
05:58 sorear hello masak
05:58 masak bon matin.
06:00 JimmyZ joined #perl6
06:00 wtw_ joined #perl6
06:03 QinGW joined #perl6
06:04 QinGW2 joined #perl6
06:04 gottreu_ left #perl6
06:05 QinGW1 left #perl6
06:07 QinGW left #perl6
06:10 JimmyZ left #perl6
06:24 plobsing left #perl6
06:24 uniejo joined #perl6
06:38 am0c left #perl6
06:40 cmadsen1 joined #perl6
06:43 s1n left #perl6
06:44 cmadsen left #perl6
06:45 dalek niecza: 664f420 | sorear++ | / (3 files):
06:45 dalek niecza: Avoid making a cursor uselessly for alternation
06:45 dalek niecza: review: http://github.com/sorear/niecza/commit/6​64f4208bc7f9a824a39697fff8b947b4ac6fc2c
06:45 dalek niecza: 5d21502 | sorear++ | lib/Cursor.cs:
06:45 dalek niecza: Refactor NFA generation
06:45 dalek niecza: review: http://github.com/sorear/niecza/commit/5​d215029dc23c0f6960c6ce17f5f36a92ac3b306
06:45 dalek niecza: d4df43e | sorear++ | lib/Cursor.cs:
06:45 dalek niecza: Implement lazy DFA generation
06:45 dalek niecza: review: http://github.com/sorear/niecza/commit/d​4df43e08e4d1999107bc2f1cd5e2440ae4ee868
06:47 masak sorear: [backlog] I hope that some day I will reach for perl6 for most of my quick-and-dirty file scraping and reporting needs.
06:48 sorear 31.4 ms / 6.01MB
06:48 sorear masak: oh?
06:49 masak I don't know yet if it's a realistic vision, but I still haven't ruled it out. :)
06:49 TimToady s/quick-and-dirty file scraping and reporting//
06:50 boggy joined #perl6
06:50 masak ;)
06:50 moritz_ std: s/quick-and-dirty file scraping and reporting//
06:50 p6eval std 32123: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unrecognized regex metacharacter - (must be quoted to match literally) at /tmp/oT_snfQ7cN line 1:␤------> [32ms/quick-[33m⏏[31mand-dirty file scraping and reporting//[0m␤Couldn't find terminator / at /tmp/oT_snfQ7cN line 1:␤------>
06:50 p6eval ..[32ms/quick-[…
06:50 masak well, on the higher end I already reach for Perl 6 often enough.
06:50 boggy left #perl6
06:51 masak moritz_: sometimes we unashamedly use p5 substitutions :)
06:51 boggy joined #perl6
06:51 TimToady I was using sed
06:51 masak lol
06:52 Trashlord left #perl6
06:54 sorear apparently I've was blind when I created this "file of JSON as big as STD", I made it 30 times too big
06:54 Trashlord joined #perl6
06:56 daxim joined #perl6
06:56 s1n joined #perl6
06:58 moritz_ http://www.perl.com/pub/2010/09/p​eople-of-perl-6-moritz-lenz.html
07:00 masak I was just going to post that :)
07:00 masak a good read. moritz_++
07:00 moritz_ thanks
07:00 * sorear isn't going to make much more of a dent in niecza parsing slowness without gradual types
07:00 moritz_ chromatic++
07:01 sorear calling all methods all the time as if they could be method foo(*@_ is rw) is rw, hurts
07:03 sorear moritz_: what is an object pipe?
07:03 sorear that sounds fun
07:03 moritz_ sorear: what is used in a feed operator
07:05 azert0x joined #perl6
07:10 dalek roast: 50a95bb | moritz++ | S03-series/arity-2-or-more.t:
07:10 dalek roast: [series] unfudge some tests
07:10 dalek roast: review: http://github.com/perl6/roast/commit/50​a95bb752d11d3c366b0f38405aeac1970377fb
07:15 shade\ joined #perl6
07:16 snearch joined #perl6
07:16 sorear moritz_: Do they have an independant existance?
07:17 moritz_ sorear: don't know
07:20 meppl joined #perl6
07:20 masak rakudo: for (1, 2, 3, 4, 5) -> $x, $y { say "$x $y" }
07:20 p6eval rakudo c71489: OUTPUT«1 2␤3 4␤Not enough positional parameters passed; got 1 but expected 2␤  in <anon> at line 2:/tmp/XJL94D01LS␤  in main program body at line 1␤»
07:21 masak no more StopIteration. Rakudo++
07:25 moritz_ rakudo: for (1, 2, 3, 4, 5) -> $x, $y? { say "$x $y" }
07:25 p6eval rakudo c71489: OUTPUT«1 2␤3 4␤5 Mu()␤»
07:25 moritz_ rakudo++
07:26 moritz_ though I'd argue that $y? should default to Any, even though the type constraint is Mu
07:26 moritz_ much like
07:26 sorear moritz_: The stuff on feeds in the spec confuses me
07:26 moritz_ my $x; say $x.WHAT; $x = Mu; say "alive"
07:26 moritz_ rakudo: my $x; say $x.WHAT; $x = Mu; say "alive"
07:26 p6eval rakudo c71489: OUTPUT«Any()␤alive␤»
07:26 moritz_ sorear: you're not the first one to be confused by it
07:26 moritz_ afk
07:26 masak rakudo: my @a = (1, 2, 3); @a ,= 4; @a.say;
07:27 p6eval rakudo c71489: OUTPUT«1234␤»
07:27 masak \o/
07:28 cmadsen1 left #perl6
07:28 cmadsen joined #perl6
07:32 pmichaud moritz++  # people of perl 6
07:33 mathw o/
07:35 masak \o
07:35 pmichaud _o_
07:35 mathw moritz++
07:36 * pmichaud wonders if he'll ever be a "People of Perl 6"  :-)
07:36 mathw Of course not
07:36 daxim pumpking?
07:36 mathw You're a Lord at least
07:36 pmichaud .oO( Lord of Least? )  :-)
07:37 masak Lord at Least of Perl 6!
07:37 masak that's some title!
07:38 jnthn morning, #perl6
07:38 pmichaud jnthn: o/
07:38 masak jnthn! \o/
07:38 sorear hello jnthn
07:38 sorear I'm done optimizing niecza's regexes for now :)
07:39 PacoLinux left #perl6
07:40 jnthn This mobile broadband has...quite some latency. :-)
07:42 mathw ah mobile
07:42 mathw the non-future
07:43 jnthn It's fine in one place.
07:43 jnthn But i'm on the train.
07:43 * tylercurtis is done writing action methods for Bennu for tonight.
07:43 jnthn sorear: So, what next? :-)
07:43 tylercurtis Good night, #perl6.
07:44 sorear random features for a while
07:44 sorear then I'll need to figure out how to make roles work
07:44 sorear which will be ... interesting
07:44 mathw :)
07:44 PacoLinux joined #perl6
07:44 mathw I'm still kind of trying to figure out what roles are for
07:45 sorear I've designed my ClassHOW into a corner; I'm not sure how I can extend it
07:45 mathw I think my OO design brain is just programmed for systems which don't have them
07:45 mathw So I have no handles to grasp
07:45 mathw I've only run into one situation recently where I would have used one (I used C++ multiple inheritance to get a similar effect)
07:45 sorear So I want to steal jnthn++'s ClassHOW
07:46 jnthn Working on it... :-)
07:46 tylercurtis phenny: tell TimToady STD's statement_control:if is lovely. Thank you for that. It was a pleasure to write an action method for.
07:46 phenny tylercurtis: I'll pass that on when TimToady is around.
07:46 jnthn ooh, a station. Connection stability!
07:47 jnthn sjn: You'll be glad to know I'm on my way. :-)
07:47 sorear The latest timing figures are 31.4 seconds for 6,010,001 bytes
07:47 sorear JSON::Tiny
07:47 jnthn Whee.
07:48 sorear seems STD uses my ($x, $y, $z) = foo; in quite a few places
07:48 * sorear ponders how that should work in Perl6
07:48 kjeldahl joined #perl6
07:48 jnthn It's just list assignment, afaik.
07:48 pmichaud I think Rakudo treats it as "Parcel assignment"
07:49 jnthn Pro tip: before feeling shocked how much the coffee is, be sure you're awake enough to differentiate between 15 and 50.
07:49 pmichaud i.e., it's the STORE method on Parcel
07:49 jnthn *yawn*
07:50 jnthn It's kind of a bootstrapping problem though. I needed the coffee to be awake enough. :-)
07:50 * sorear tries to find the impl of that
07:50 jnthn Probably src/builtins/Parcel.pir or some such
07:50 pmichaud src/builtins/Parcel.pir:207
07:51 * pmichaud notes that bootstraps applied properly are an alternative to the coffee  :)
07:53 sorear rakudo: my $x = "hi"; my $y = "lo"; ($x, *, *, *, *, $y) = ((0 ... 4),$x); say $y;
07:53 p6eval rakudo c71489: OUTPUT«hi␤»
07:53 masak pmichaud: that's a scary use of "properly"... :)
07:53 * sorear wonders how this is workign
07:54 sorear oh, it's entirely eager
07:54 sorear rakudo: my (@x) = (0 ... *); say "alive"
07:54 pmichaud list assignment is eager, yes :-)
07:54 p6eval rakudo c71489: OUTPUT«(timeout)»
07:55 jnthn rakudo: my @x := (0 ... *); say @x[42]
07:55 p6eval rakudo c71489: OUTPUT«42␤»
07:55 pmichaud rakudo:  my (@x) = 0..*;    # curious
07:55 p6eval rakudo c71489: OUTPUT«(timeout)»
07:55 pmichaud ah, that should probably succeed.
07:55 * jnthn checks his lazy slide
07:56 jnthn rakudo: my @fib = 1, 1, *+* ... Inf; say @fib[10];
07:56 pmichaud I can fix this last case, I suspect.
07:56 sorear Wait wait *what*
07:56 p6eval rakudo c71489: OUTPUT«89␤»
07:56 sorear How can it possibly succeed and WHY
07:56 jnthn pmichaud: ...so how come that one works?
07:56 moritz_ phenny, tell [Coke] about http://irclog.perlgeek.de/​perl6/2010-09-14#i_2822295
07:56 phenny moritz_: I'll pass that on when [Coke] is around.
07:57 bacek left #perl6
07:57 jnthn pmichaud: And can I rely on it doing so?
07:57 jnthn rakudo: my @fib := 1, 1, *+* ... Inf; say @fib[10];
07:57 p6eval rakudo c71489:  ( no output )
07:57 sorear What should I do with List!fill after niecza starts implementing private methods correctly?
07:57 jnthn And yet that doesn't? Hmm
07:57 pmichaud jnthn: precedence
07:57 pmichaud rakudo still has := as item
07:57 jnthn oh
07:57 pmichaud (I can fix that as soon as I get a stable parrot)
07:58 tylercurtis iirc, the spec says somewhere that list assignment is only mostly eager. It eagerly evaluates anything that's already there, but is lazy about the rest.
07:58 pmichaud I'm not sure why  the assignment version worked.
07:58 jnthn rakudo: my @fib := (1, 1, *+* ... Inf); say @fib[10];
07:58 * tylercurtis didn't think that was the case in Rakudo, though.
07:58 p6eval rakudo c71489: OUTPUT«89␤»
07:58 jnthn pmichaud: Should it twiddle my example to use binding?
07:58 pmichaud I'd have to see how series got implemented to know why that's working.
07:58 jnthn *I
07:58 pmichaud jnthn: no, I wouldn't expect that.
07:59 sorear tylercurtis: as someone who has hacked on lazy evaluators in the past, I assure you that the spec's notion of "mostly eager" is completely insane
07:59 pmichaud oh, sorry
07:59 pmichaud jnthn: yes, you should make your example using binding for now.... the handling of infinite series isn't well spec'd yet.
07:59 tylercurtis sorear: good to know.
07:59 jnthn Twiddled, thanks.
08:00 pmichaud infinite ranges we can handle:
08:00 pmichaud rakudo:  my @a = 1..*;  say @a[10];
08:00 p6eval rakudo c71489: OUTPUT«11␤»
08:00 kjeldahl_ joined #perl6
08:00 pmichaud infinite series... not so much yet.
08:00 sorear pmichaud: Why does that make any sense at all?
08:00 tylercurtis rakudo: my @fib = lazy 1, 1, *+* ... *; say @fib[10]; # wonders...
08:00 p6eval rakudo c71489: OUTPUT«Could not find sub &lazy␤  in main program body at line 22:/tmp/3DsI3LZDfp␤»
08:01 pmichaud sorear: "mostly eager" is allowed to stop evaluating if it knows that the thing it's working on is "infinite"
08:01 tylercurtis I'm pretty sure that wouldn't be the right thing even if Rakudo did have &lazy.
08:01 bacek joined #perl6
08:01 pmichaud so, since the range  1..*  can easily determine it's infinite, eager evaluation is allowed to stop there
08:01 sorear ah, it's a liberal approximation of finiteness
08:01 pmichaud we don't yet have a clean definition for what might make something like   1...*   halt eager evaluation, or a gather/take loop
08:02 sorear that makes much more sense
08:02 pmichaud TimToady++ and I have been discussing this here on-and-off over the past couple of weeks
08:02 pmichaud (and yes, there are some spec changes afoot)
08:03 sorear hmm.  Why does Parcel!STORE have a cont_rpa: case?
08:03 sorear Are people supposed to put rpas in Parcels?
08:03 pmichaud in Rakudo, Parcel isa RPA
08:04 pmichaud i.e., Rakudo treats any RPA it encounters like a Parcel
08:04 pmichaud that handles nested parcels on the lhs, iirc
08:04 pmichaud e.g., as in   (@foo[3,4,5], $x) = ...
08:05 kjeldahl_ left #perl6
08:05 * tylercurtis can't actually understand how exactly "my @foo = 1..*" isn't "my @foo; @foo[0] = 1..*;".
08:05 moritz_ tylercurtis: list assignment is special-cased
08:06 tylercurtis moritz_: in what way?
08:06 moritz_ tylercurtis: the right-hand side can be asked if it is a flattening list, as opposed to a single item
08:06 pmichaud I think it's somewhat more accurate to say that item assignment is special-cased :-)
08:06 moritz_ so it can differentiate between (1, 2, 3) and [1, 2, 3]
08:07 moritz_ pmichaud: both are true, I think :-)
08:07 sorear &infix:<=> checks the "list" alloflag on the LHS
08:08 tylercurtis moritz_: Ah. Okay. Is that specced? Or implementation strategy of Rakudo? Or implementation strategy of Rakudo that should become spec?
08:08 pmichaud anyway, sleep time here.
08:08 jnthn sleep well
08:08 tylercurtis G'night, pmichaud.
08:08 colomon moritz_: if every case is special, isn't that the same as no cases being special?  ;)
08:08 colomon o/
08:09 pmichaud tylercurtis: it's spec'd that item assignment imposes item context on its rhs, and list assignment imposes flattening list on its rhs
08:09 moritz_ tylercurtis: not quite sure. pmichaud++ got a grant for writing up much of the rakudo list/iterator implementation into the spec... don't know if that part is covered
08:09 moritz_ colomon: if you look at the code, certainly not :-)
08:09 tylercurtis rakudo: say [1, 2, 3].flat.perl;
08:09 p6eval rakudo c71489: OUTPUT«[1, 2, 3]␤»
08:09 tylercurtis rakudo: say (1, 2, 3).flat.perl
08:09 p6eval rakudo c71489: OUTPUT«(1, 2, 3)␤»
08:09 sorear tylercurtis: a lot of the list stuff is specced mostly in tests.
08:09 pmichaud colomon: if every case is special, no case is general :)
08:10 moritz_ tylercurtis: beware of .perl, it is allowed to assume item context
08:10 PacoLinux left #perl6
08:10 tylercurtis rakudo: .say for [1, 2, 3].flat;
08:10 pmichaud note that    my @a = [1,2,3]    is like    my @a = flat [1,2,3]    and not   my @a = [1,2,3].flat
08:10 p6eval rakudo c71489: OUTPUT«1␤2␤3␤»
08:10 sorear Rakudo and niecza implement alloflags completely differently, but I doubt either one will become spec
08:10 tylercurtis .say for flat [1, 2, 3]
08:10 tylercurtis rakudo: .say for flat [1, 2, 3]
08:10 p6eval rakudo c71489: OUTPUT«1 2 3␤»
08:11 tylercurtis rakudo: .say for flat (1, 2, 3)
08:11 p6eval rakudo c71489: OUTPUT«1␤2␤3␤»
08:11 * tylercurtis somehow managed to forget about flat context.
08:12 tylercurtis Anyway, good night again, #perl6. Except, this time, I'm actually going to bed.
08:12 pmichaud me too.
08:13 tylercurtis left #perl6
08:13 moritz_ slepp well, the both of you
08:16 PacoLinux joined #perl6
08:18 Guest68652 is now known as kaare_
08:19 sorear rakudo: my ($foo, $, $bar) = (1,2,3); say $foo, $bar;
08:19 p6eval rakudo c71489: OUTPUT«13␤»
08:19 sorear rakudo: say (my ($foo, $, $bar)).perl
08:19 p6eval rakudo c71489: OUTPUT«(Any, Whatever.new(), Any)␤»
08:19 moritz_ rakudo: my ($foo, $, $bar) = (1,2,3); say callframe().my.keys.perl
08:19 p6eval rakudo c71489: OUTPUT«("\$foo", "\$bar", "\$MAIN", "\$/", "\$_", "__CANDIDATE_LIST__", "\$!")␤»
08:28 dalek niecza: f52ccae | sorear++ | src/Niecza/Actions.pm:
08:28 dalek niecza: Parse my ($foo, $bar)
08:28 dalek niecza: review: http://github.com/sorear/niecza/commit/f​52ccae1587cb54c8c392f3b3b330315f00cd745
08:28 dalek niecza: aa2541a | sorear++ | src/Niecza/Actions.pm:
08:28 dalek niecza: Parse / < a e i o u > /
08:28 dalek niecza: review: http://github.com/sorear/niecza/commit/a​a2541aabd761a2f658667ceb6a347631092960d
08:29 moritz_ std: / ; /
08:29 p6eval std 32123: OUTPUT«[31m===[0mSORRY![31m===[0m␤Semicolon must be quoted at /tmp/P74KBkau6c line 1:␤------> [32m/ ;[33m⏏[31m /[0m␤Parse failed␤FAILED 00:01 115m␤»
08:30 timbunce joined #perl6
08:33 * sorear out
08:34 dakkar joined #perl6
08:35 wamba joined #perl6
08:38 LaVolta left #perl6
08:38 jferrero joined #perl6
08:39 masak rakudo: say callframe().my<__CANDIDATE_LIST__>.perl
08:39 p6eval rakudo c71489: OUTPUT«Any␤»
08:39 masak aww
08:39 moritz_ rakudo: say callframe().my<__CANDIDATE_LIST__>.perl; multi f() { }
08:39 p6eval rakudo c71489: OUTPUT«Any␤»
08:40 moritz_ rakudo: say callframe().my<__CANDIDATE_LIST__>.PARROT; multi f() { }
08:40 p6eval rakudo c71489: OUTPUT«Perl6Scalar->␤»
08:41 aesop left #perl6
08:42 jnthn :P
08:42 jnthn Nice try to get a NPMCA :P
08:43 moritz_ rakudo: say callframe().my<__CANDIDATE_LIST__>.Int
08:43 p6eval rakudo c71489: OUTPUT«Method 'Int' not found for invocant of class ''␤  in main program body at line 22:/tmp/kn3uswfED1␤»
08:43 moritz_ jnthn: I was more trying to find out what kind of data it holds
08:43 jnthn It's used in methods for deferal, and in wrapping
08:44 aesop joined #perl6
08:45 * jnthn afk for a bit
08:55 snarkyboojum_ is now known as snarkyboojum
09:08 bacek left #perl6
09:08 aloha left #perl6
09:08 jferrero left #perl6
09:09 Raynes left #perl6
09:12 Raynes joined #perl6
09:20 QinGW joined #perl6
09:21 QinGW1 joined #perl6
09:22 QinGW2 left #perl6
09:24 jferrero joined #perl6
09:25 QinGW left #perl6
09:27 jferrero left #perl6
10:01 jferrero joined #perl6
10:07 Mowah joined #perl6
10:07 QinGW1 left #perl6
10:12 bbkr joined #perl6
10:15 araujo left #perl6
10:24 moritz_ rakudo: say [+] '08:12:23'.split(':') Z* 3600, 60, 1
10:24 p6eval rakudo c71489: OUTPUT«29543␤»
10:33 snearch left #perl6
10:35 moritz_ \o/ ASCII art camelia
10:36 snearch joined #perl6
10:42 goksie joined #perl6
10:49 thundergnat left #perl6
11:00 tadzik joined #perl6
11:01 tadzik hello
11:02 jnthn o/
11:03 goksie_ joined #perl6
11:03 goksie left #perl6
11:03 goksie_ is now known as goksie
11:29 snearch left #perl6
11:45 masonkramer joined #perl6
12:04 takadonet morning all
12:05 masak \o
12:06 masak rakudo: say [+] '08:12:23'.split(':') Z* 60 >>**<< reverse ^3
12:06 p6eval rakudo c71489: OUTPUT«Sorry, sides are of uneven length and not dwimmy.␤  in 'hyper' at line 179:CORE.setting␤  in 'hyper' at line 211:CORE.setting␤  in main program body at line 1␤»
12:07 masak rakudo: say [+] '08:12:23'.split(':') Z* (60 >>**<< reverse ^3)
12:07 p6eval rakudo c71489: OUTPUT«Sorry, sides are of uneven length and not dwimmy.␤  in 'hyper' at line 179:CORE.setting␤  in 'hyper' at line 211:CORE.setting␤  in main program body at line 1␤»
12:07 flussence ^2?
12:07 moritz_ 60 xx 3
12:07 masak oh
12:07 masak rakudo: say [+] '08:12:23'.split(':') Z* (60 <<**<< reverse ^3)
12:07 moritz_ rakudo: say [+] '08:12:23'.split(':') Z* (60 xx 3 >>**<< reverse ^3)
12:07 p6eval rakudo c71489: OUTPUT«29543␤»
12:07 p6eval rakudo c71489: OUTPUT«Sorry, sides are of uneven length and not dwimmy.␤  in 'hyper' at line 179:CORE.setting␤  in 'hyper' at line 211:CORE.setting␤  in main program body at line 1␤»
12:08 moritz_ rakudo: say [+] '08:12:23'.split(':') Z* ((60 xx 3) >>**<< reverse ^3)
12:08 p6eval rakudo c71489: OUTPUT«29543␤»
12:08 masak rakudo: say [+] '08:12:23'.split(':') Z* 60 <<**<< reverse ^3
12:08 p6eval rakudo c71489: OUTPUT«29543␤»
12:08 masak that's very pretty.
12:08 moritz_ say [+] '08:12:23'.split(':') Z* (60 X* reverse ^3)
12:09 moritz_ rakudo: say [+] '08:12:23'.split(':') Z* (60 X* reverse ^3)
12:09 p6eval rakudo c71489: OUTPUT«1680␤»
12:09 masak rakudo: say [+] '08:12:23'.words Z* 60 X** reverse ^3
12:09 p6eval rakudo c71489: OUTPUT«28800␤»
12:09 moritz_ rakudo: say [+] '08:12:23'.split(':') Z* (60 X** reverse ^3)
12:09 p6eval rakudo c71489: OUTPUT«29543␤»
12:09 masak rakudo: say [+] '08:12:23'.split(':') Z* 60 X** reverse ^3
12:09 vdrab joined #perl6
12:09 p6eval rakudo c71489: OUTPUT«29543␤»
12:10 moritz_ std: say [+] '08:12:23'.split(':') Z* 60 X** reverse ^3
12:10 p6eval std 32123: OUTPUT«[31m===[0mSORRY![31m===[0m␤"Z*" and "X**" are non-associative and require parens at /tmp/HSg2ATv58K line 1:␤------> [32msay [+] '08:12:23'.split(':') Z* 60 X** [33m⏏[31mreverse ^3[0m␤Check failed␤FAILED 00:01 117m␤»
12:10 * masak submits rakudobug
12:10 moritz_ that's what I thought
12:10 Raynes left #perl6
12:12 Raynes joined #perl6
12:26 vdrab_ joined #perl6
12:27 araujo joined #perl6
12:27 plainhao joined #perl6
12:27 vdrab left #perl6
12:28 vdrab_ is now known as vdrab
12:30 plainhao left #perl6
12:30 plainhao joined #perl6
12:31 satyavvd left #perl6
12:31 masak wow, #haskell is unsurpassed in giving me adequate help and unwittingly making me feel stupid at the same time. :)
12:32 masak in other news, every monad is an applicative functor.
12:33 moritz_ what is an applicative functor?
12:33 masak I don't know yet, but http://en.wikibooks.org/wiki/​Haskell/Applicative_Functors
12:34 ab5tract joined #perl6
12:35 moritz_ functors seem to be higher-order functions that apply other functions to data
12:35 moritz_ like, map
12:35 masak aye, that sounds familiar.
12:36 masak how does that make all monads applicative functors, though?
12:36 flussence rakudo: sub x { ($^a - $^a % 60) / 60, $^a % 60 }; say x(29543)>>.&x[0,1,3]>>.fmt('%02d').join(':'); # not as nice in the other direction...
12:36 p6eval rakudo c71489: OUTPUT«08:12:23␤»
12:37 masak flussence++
12:37 flussence :D
12:37 masak someone should write a script that generates one algorithm from the other?
12:37 masak s/\?//
12:39 moritz_ rakudo: say ~((29543, * div 60 ... 0) X% 60)
12:39 p6eval rakudo c71489: OUTPUT«23 12 8 0␤»
12:40 masak ooh
12:40 moritz_ rakudo: say ((29543, * div 60 ... 0) X% 60).reverse[1..3]>>.fmt('%02d').join(':')
12:40 p6eval rakudo c71489: OUTPUT«08:12:23␤»
12:42 flussence div is integer division operator?
12:42 moritz_ rakudo: say ((29543, * div 60 ... 0) X% 60)[^3].reverse>>.fmt('%02d').join(':')
12:42 moritz_ zes
12:42 p6eval rakudo c71489: OUTPUT«08:12:23␤»
12:42 moritz_ yes
12:42 masak weel, yes and no.
12:42 * moritz_ confused by frequent keyboard layout switch
12:42 masak div is "type-depdendent" division.
12:42 moritz_ is it?
12:42 moritz_ rakudo: say 5 div 2.5
12:43 p6eval rakudo c71489: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤  in main program body at line 22:/tmp/44qiWAasro␤»
12:43 masak which happens to be defined only for Int so far, I think.
12:43 moritz_ mebbe
12:43 masak but for example, equation system solving by dividing a column vector into a matrix could be 'div'.
12:43 am0c^ joined #perl6
12:44 masak provided some library defined it as such, of course.
12:45 * moritz_ curses at some paper authors who provided conflicting and ambiguous imformation in their paper
12:48 plobsing joined #perl6
12:48 vdrab_ joined #perl6
12:49 perigrin left #perl6
12:50 vdrab left #perl6
12:50 vdrab_ is now known as vdrab
12:50 araujo good morning
12:50 BinGOs left #perl6
12:50 * araujo next to add 'if' to his small lang
12:51 moritz_ #perl6 seems to attract lots of people who implement their own languages (or inspires them) :-)
12:53 araujo moritz_, perl6 seems a nice language to steal ideas from too
12:53 * araujo hopes TimToady doesn't read this
12:55 moritz_ araujo: I consider it a good sign if people steal from Perl 6. I kinda guess TimToady thinks likewise :-)
12:56 araujo >:]
12:58 Sec joined #perl6
12:59 * masak .oO( It's 2010, and I'm using Perl 6 to write my own blog engine to last me 10 years. I just love living in the future. )
13:02 gfldex Perl 6: Going to make you rewrite your software since 2010!
13:02 Sec is now known as [Sec]
13:03 moritz_ masak: do you have a more detailed plan than "a blog system"? if yes, would you share it?
13:04 araujo masak, heh
13:04 masak absolutely. (1) download all my use.perl posts. (2) transform them into markdown (3) build a minimal static web site generator that transforms Markdown to HTML and puts css etc in the right places. (4) keep hacking on the static web site generator until it's a port of Hakyll.
13:05 masak I'm on (3) now.
13:06 masak doing (2) was an absolut Perl 5 quick-hack joy. it turned unbearable HTML into nice Markdown. and the markdown script has been confirmed to turn the Markdown back into nice HTML :)
13:06 moritz_ so, are you writing a parser now?
13:07 masak no, I'm using the standard Perl 5 implementation.
13:07 masak right now I want to get to step (4) as quickly as possible.
13:07 masak so I'm taking shortcuts.
13:07 BinGOs joined #perl6
13:07 masak will probably end up writing a Markdown parser as part of step (4), though. feels nicer to have an all-Perl 6 solution.
13:08 masak and it would be nice to see how Perl 6 parses Markdown.
13:08 tadzik masak: you may want to try sexpcode :0
13:08 tadzik :)
13:08 tadzik I have a basic parser for that
13:08 masak tadzik: I'm pretty sure I prefer to write my posts in Markdown.
13:09 masak but I'm very open towards pooling markup formats into a Pandoc-like project.
13:09 tadzik well, markdown is more like a document-formatting
13:09 masak something that uses a common document model and can convert to and from different formats.
13:09 * moritz_ should Pod6! Pod6!
13:09 masak that, too.
13:09 moritz_ s/should/shouts/
13:11 baest ahh markdown, that's why some readme on github has the extension .md :)
13:11 masak lots of sites use Markdown nowadays.
13:12 masak it's one of the least insane formats I've ever seen. very few actual quirks.
13:12 masak rakudo: say $*PID
13:12 p6eval rakudo c71489: OUTPUT«12413␤»
13:12 masak alpha: say $*PID
13:12 p6eval alpha 30e0ed: OUTPUT«Contextual $*PID not found␤␤»
13:12 masak on my box 'say $*PID' prints 0 :/
13:12 masak can anyone else on Darwin confirm this?
13:13 moritz_ that's a surprisingly low PID?
13:13 masak too low for my taste...
13:13 florz actually, that's a non-PID ;-)
13:13 Juerd masak: Kill it! :)
13:13 masak 哈哈
13:13 colomon masak: confirmed
13:13 moritz_ wasn't there some funny behaviour if call kill(0)?
13:13 baest masak: confirmed
13:13 * masak submits rakudobug
13:14 masak colomon, baest: thanks. you guys rock.
13:14 Juerd moritz_: Yea, it Just Works :)
13:14 moritz_ If pid equals 0, then sig is sent to every process in the process group
13:14 moritz_ of the calling process.
13:14 moritz_ group kill!
13:14 hugme joined #perl6
13:14 kaare_ left #perl6
13:14 masak sounds like something a religious sect would do...
13:15 Italian_Plumber joined #perl6
13:15 * moritz_ wonders if hugme needs a GROUP HUG feature :-)
13:15 szbalint it should have been called the koolaid parameter.
13:15 jferrero left #perl6
13:15 masak Italian_Plumber: every time I see you log in I get this sudden urge to jump on mushrooms and turtles.
13:16 Patterner left #perl6
13:17 masak ooh! #phasers later tonight!
13:17 moritz_ set #phasers to stun!
13:17 masak what about a #cpan6-sketch this week?
13:17 masak Alias_: ping
13:18 Italian_Plumber and save princesses?
13:19 masak except she's never in the castle I think she is :/
13:19 masak ETOOMANYDAMNCASTLES
13:20 Italian_Plumber You should never save the princess: http://www.youtube.com/watch?v=gLZFexXiJsM
13:20 * moritz_ has saved one princess, and is happy now
13:21 moritz_ or maybe she saved me? not sure yet :-)
13:22 masak preferably, a little bit of both :)
13:23 masak Italian_Plumber: I watched half of it before realizing I'm at work. :) seems he accidentally saved the wrong princess, though.
13:23 moritz_ probably :-)
13:23 masak impressive what effort must've been put into that video. :)
13:24 Kodi joined #perl6
13:24 patspam joined #perl6
13:24 Kodi my %s is Set = a => 1, b => 2; # This should be allowed, right?
13:25 Kodi Er, I mean something like: my %s is Set = a => True, b => True;
13:25 Kodi The question is if you then do: %s = c => True. Would that violate immutability?
13:26 moritz_ why should it?
13:26 moritz_ hrm, because Set... container types shouldn't be immutable
13:27 Kodi moritz_: I'm inclined to think you should be able to do '%s = c => True' but not '%s<c> = True'. I'm not sure that makes sense, though.
13:28 moritz_ Kodi: it kinda makes sense from an implementation point of view. It does not from a user's point of view
13:28 Psyche^ joined #perl6
13:28 Psyche^ is now known as Patterner
13:28 Kodi In the same way that if $x holds a Date, you can assign anything you like to $x even though Dates are immutable. Then again, $x itself is never a Date but actually a Scalar, which is mutable.
13:28 Kodi moritz_: It actually turns out to be difficult to implement this way.
13:28 Kodi What do you think would make sense from the user's point of view?
13:29 moritz_ a mutable version of the type
13:30 Kodi moritz_: I.e., KeySet?
13:30 moritz_ Kodi: I'm not too familiar with this zoo of types... but kinda like a Set, only in mutable
13:30 moritz_ or not using it as a container type
13:30 Kodi KeySet is supposed to be exactly a mutable Set.
13:31 moritz_ then "yes"
13:31 Kodi So do you think S02 is in the wrong when it says you ought to be able to bind %x to a Set?
13:32 Kodi Or is it that binding would be permissible and assingment not?
13:32 moritz_ no; I think it's perfectly fine, but not what the user typically wants
13:36 Kodi I guess I'm still confused about what kinds of assignment to a '%s is Set' should be allowed. Now I'm thinking: no kind at all; if you wanted assignment you should've used a KeySet.
13:36 moritz_ that's probably correct
13:38 satyavvd joined #perl6
13:40 BinGOs left #perl6
13:41 satyavvd_ joined #perl6
13:42 perigrin joined #perl6
13:42 sftp joined #perl6
13:43 BinGOs joined #perl6
13:43 satyavvd left #perl6
13:43 [Sec] Is there anything like POE for perl6 already?
13:43 satyavvd_ is now known as satyavvd
13:43 tadzik I don't think so
13:43 masak there's just S17.
13:43 masak http://perlcabal.org/syn/S17.html
13:44 moritz_ TimToady mentioned that event queues could be expressed with feed operators and object pipes somehow - haven't quite understood it though :-)
13:48 [Sec] masak: is S17 already working in rakudo-star? :)
13:48 masak [Sec]: no.
13:49 moritz_ parrot segfaults if enable threads and clone the interpreter.
13:49 masak moritz_: you mentioned object pipes in your interview. what's that?
13:49 moritz_ masak: it's what feed operators use under the hood
13:49 [Sec] ok, thanks. Back to p5 then it is.
13:50 masak oh, so it's in the Monad/Powershell sense, then.
13:50 moritz_ right
13:50 masak [Sec]: you're welcome back later, when we've hacked a bit more :)
13:50 masak (or earlier, if you want to help)
13:51 [Sec] i really would like to use it, hope you get more of the spec working soon :)
13:51 masak welcome to the club :)
13:52 masak right now we're on the lookout for people who can take what we implement of the spec already, test it to its limits, and give us feedback :)
13:52 masak that way, both the spec and the implementation will improve faster.
13:52 masak *implementations
13:53 takadonet trying to parse a file with 12000 records with my perl 6 grammar..... been 35 mins and still not done yet
13:53 takadonet but it has not crashed yet!
13:53 masak takadonet: you should have a status indicator of some kind :)
13:54 takadonet masak: i should.... all well
13:55 gottreu masak, how would those for whom you're on the lookout get involved?
13:55 gottreu or get started I should say perhaps?
13:56 takadonet masak: Do you know a better way of grabbing everything till you see a particular record separator then :  <-["//\n"]>+ ?
13:56 rgrau_ joined #perl6
13:56 moritz_ \n doens't work yet in regexes
13:57 takadonet .... same to work for me...
13:57 Guest23195 joined #perl6
13:58 daxim left #perl6
13:58 moritz_ rakudo: say ?("\n" ~~ /<[\n]>/)
13:58 p6eval rakudo c71489: OUTPUT«0␤»
13:58 masak gottreu: that's a very good question. speaking from experience, I would recommend being driven by curiosity and playfulness. :)
13:58 moritz_ sorry, meant in character classes, not regexes in general
13:58 moritz_ rakudo: say ?("\\" ~~ /<[\n]>/)
13:59 p6eval rakudo c71489: OUTPUT«0␤»
13:59 masak gottreu: if the question is more "where to start?", I have a number of projects that could use a helping hand.
13:59 moritz_ rakudo: say ?("n" ~~ /<[\n]>/)
13:59 p6eval rakudo c71489: OUTPUT«1␤»
13:59 uniejo left #perl6
14:00 gottreu masak, such as?
14:00 masak gottreu: well, I have a project called 'pun' which could use a bit of reviving.
14:01 masak it's good because it's very limited in scope, and should be simple to get working again.
14:01 moritz_ YOU_ARE_HERE!
14:01 daxim joined #perl6
14:01 masak the basic idea is to emulate 'perl6 -n' and 'perl6 -p', which don't exist yet.
14:01 masak the old version of that project was written before perl6 was installed globally.
14:01 masak so it should actually be *easier* nowadays.
14:02 masak basically, it throws a 'while ($_ = $*IN.get).defined { ... }' block around the provided program.
14:02 masak gottreu: with me so far?
14:02 moritz_ right; relying on a `perl6' executable in $PATH is a good idea nowadays
14:02 masak aye.
14:03 moritz_ and shouldn't it be   for lines() { ... }   nowadays?
14:03 gottreu i'm with you on -p and -n flags, not so with you on Perl6 syntax
14:03 masak gottreu: http://github.com/masak/pun
14:03 agentzh left #perl6
14:03 masak gottreu: but you know how -p and -n work in Perl 5?
14:03 masak because that's all you need. Perl 6 syntax can be learnt along the way. :)
14:04 gottreu yeah, perl5 one-liners are the majority of my perl programs
14:04 masak then you can see the use for something like pun.
14:05 meraxes joined #perl6
14:10 masak moritz_: YOU_ARE_HERE would be the proper way to do it in Rakudo itself. just provide alternate settings, and you're done. I wouldn't know where to begin making such a thing work, though.
14:14 tadzik what is YOU_ARE_HERE by the way?
14:14 masak it's a special term that's magically substituted for the user's program.
14:15 masak one finds it at the end of the normal setting, which means that the program runs in the scope of all the goodies in the setting.
14:15 masak the idea is to eventually implement -n and -p with YOU_ARE_HERE insside a readline loop.
14:15 masak er, not readline; $*IN.get
14:19 wtw_ left #perl6
14:26 moritz_ right; the idea is that -n   desugars to   for lines() { YOU_ARE_HERE }
14:26 moritz_ what I don't know is how to achieve that with a command line switch
14:27 masak feels to me like that goes into the PCT/nqp-rx level of things.
14:27 masak which I suspect is part of why it hasn't been implemented long ago.
14:28 moritz_ there are really many reasons:
14:29 tadzik there's some nice set of things in /usr/lib/parrot/2.7.0/library/, can they be used in Perl 6 easily, like Perl 5 modules via blizkost?
14:29 moritz_ 1) command line parsing is done in a way that's completely opaque to me, somewhere in NQP or PCT or HLL/foo or wherever
14:29 moritz_ 2) YOU_ARE_HERE is pretty new too
14:29 moritz_ 3) it looks like not quite a small project
14:30 satyavvd left #perl6
14:30 moritz_ tadzik: they can be used, but usually require a wrapper
14:31 TimToady phenny, say something nice to me.
14:31 phenny TimToady: 07:46Z <tylercurtis> tell TimToady STD's statement_control:if is lovely. Thank you for that. It was a pleasure to write an action method for.
14:31 TimToady thank you
14:31 tadzik like Digest::MD5 does?
14:31 moritz_ exactly
14:31 tadzik tempting
14:31 moritz_ indeed
14:32 tadzik especially TAP::Harness
14:40 Trashlord left #perl6
14:44 Trashlord joined #perl6
14:49 plobsing left #perl6
14:55 vdrab left #perl6
14:59 masak here's a tweet that is making the rounds today: http://twitter.com/vdichev/status/24467980734
15:00 ruoso joined #perl6
15:03 mberends left #perl6
15:05 Kodi left #perl6
15:06 icwiener joined #perl6
15:13 rgrau_ left #perl6
15:14 daemon left #perl6
15:17 mberends joined #perl6
15:22 risou joined #perl6
15:31 araujo left #perl6
15:36 pmichaud good morning, #perl6
15:37 moritz_ good am, pm
15:38 cjk101010 left #perl6
15:38 colomon \o
15:39 xiaolongxia joined #perl6
15:40 masak gm, pm
15:40 wolverian left #perl6
15:41 zby rakudo: require Foo::Bar
15:42 p6eval rakudo c71489: OUTPUT«Can not find sub Foo::Bar␤  in main program body at line 1␤»
15:42 pmichaud require nyi, I think.
15:42 moritz_ and even it were, require now requries an explicit import list
15:42 zby aha - I wanted to check if it is
15:42 zby in the current rakudo
15:42 moritz_ since importing is done into the lexical scope, and that is immutable at runtime
15:43 moritz_ so you'd need to say something like   require Foo::Bar <sub $variable>;
15:43 moritz_ which then creates stubs in the lexpad at compile time, and does the actual loading and importing at runtime
15:44 zby rakudo:  require Foo::Bar <sub $variable>;
15:44 p6eval rakudo c71489: OUTPUT«Can not find sub Foo::Bar␤  in main program body at line 1␤»
15:44 moritz_ I worked on require but couldn't the argument list to parse
15:44 wolverian joined #perl6
15:45 zby OK - I just wanted to check if it is implemented now, I am waiting for it before I try to rewrite my mini web framework in P6 :)
15:47 masak std: "foo" . "bar"
15:47 p6eval std 32123: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unsupported use of . to concatenate strings; in Perl 6 please use ~ at /tmp/yOgpb6uQjc line 1:␤------> [32m"foo" . [33m⏏[31m"bar"[0m␤Parse failed␤FAILED 00:01 115m␤»
15:47 masak rakudo: "foo" . "bar"
15:47 p6eval rakudo c71489: OUTPUT«===SORRY!===␤Confused at line 22, near "\"foo\" . \"b"␤»
15:48 * masak submits LTA rakudobug
15:48 masak zby: does your mini web framework generate static web pages?
15:48 zby no
15:49 moritz_ std: require Foo::Bar 'a', 'b';
15:49 p6eval std 32123: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/yMY3j__FDO line 1:␤------> [32mrequire Foo::Bar [33m⏏[31m'a', 'b';[0m␤    expecting any of:␤     bracketed infix␤  infix or meta-infix␤      statement modifier loop␤Parse failed␤FAILED 00:02 117m␤»
15:49 masak then you might want to consider waiting for that reason too. memory/speed/stability issues aren't completely ironed out yet.
15:49 moritz_ std: require Foo::Bar <a b>;
15:49 p6eval std 32123: OUTPUT«[31m===[0mSORRY![31m===[0m␤Bogus term at /tmp/m_WG2lcMBj line 1:␤------> [32mrequire Foo::Bar <a b>[33m⏏[31m;[0m␤Undeclared routine:␤  'b' used at line 1␤Parse failed␤FAILED 00:01 117m␤»
15:50 moritz_ wtf?
15:50 zby well - I know it would not be 'production ready' for a long time, but it seems like the first thing to do in P6
15:50 zby I mean like a nice first thing to do
15:51 moritz_ evalbot rebuild is not yet switched to git :(
15:54 moritz_ and rebuilding STD conflicts with the installed STD for niecza and mildew
15:54 zb left #perl6
15:55 masak zby: I'm building a static page generator as we speak. it's going almost unreasonably well. :)
15:56 zby nice - so I guess you have your templating engine done
15:58 zby is there a plan for PSGI implementation?
15:59 moritz_ yes; mberends is working on one
15:59 zby These are the two prerequisites for my framework, without templating it still can work though, and without PSGI I think I can make it work on bare HTTP::Simple or something
16:00 masak zby: I'm piggybacking a Perl 5 Markdown->HTML converter right now.
16:00 masak zby: and for templating I'm using simple variable substitution right now.
16:01 moritz_ there is a working HTML::Template in the web repository
16:01 masak zby: there's Hitomi though, which I still think could be really nice.
16:01 zb joined #perl6
16:01 masak I hope as few people as possible use the HTML::Template module :)
16:01 moritz_ why?
16:02 masak because we developed it as a stop-gap solution for November, with the view that it should be replaced by something better eventually.
16:02 masak and because I'm personally not sold on the syntax.
16:03 * moritz_ likes HTML::Template::Compiled for p5
16:03 moritz_ which is like HTML::Template, but enables more concise syntax, and solves the Unicode issues that H::T has
16:03 moritz_ tinita++ # for HTML::Template::Compiled
16:04 zby what I don't like about HTML::Template is that you need to convert your data into structures that it can swallow
16:04 moritz_ what else would you use a controller for? :-)
16:05 zby with TT you just need to prepare the data in any form, you just need it to be complete
16:05 moritz_ but that's often not what happens in practise
16:05 moritz_ what people often do is to pass some DBIC objects to the templates
16:05 moritz_ which means that method calls in the template trigger database actions
16:06 moritz_ which goes completely against MVC, and makes proper error handling pretty hard
16:06 araujo joined #perl6
16:07 zby maybe - but thats their problem
16:07 moritz_ well, that's easy to say
16:07 zby I like the fact that I can just provide the data and forget
16:08 zby I don't need to think how it will be used
16:08 zby how it will be iterated in the template
16:08 moritz_ when I tried to produce some websites with Catalyst and TT, I had to walk through all the objects anyway to avoid DB calls from the template
16:09 moritz_ so I could have just as well transformed them into what HTML::Template needs
16:09 ab5tract left #perl6
16:12 zby maybe I just have not yet been bitten by this - so I use it because it is more convenient
16:14 risou left #perl6
16:15 moritz_ sprixel: say 1 + 2
16:15 p6eval sprixel 32123: OUTPUT«Can't open perl script "sprixel.pl": No such file or directory␤»
16:15 moritz_ highlight: 3
16:15 p6eval Please use /msg p6eval 3
16:16 Holy_Cow joined #perl6
16:17 ab5tract joined #perl6
16:23 ggoebel joined #perl6
16:24 risou joined #perl6
16:24 dalek evalbot: 3841f5c | moritz++ | evalbot.pl:
16:24 dalek evalbot: update paths, and avoid relative paths
16:24 dalek evalbot: review: http://github.com/perl6/evalbot/commit/3​841f5c8c9cd17a40d336f49bddbd91fd0eb5d92
16:25 ggoebel phenny: tell sorear where does eval and running the spectest fall in your roadmap for niecza?
16:25 phenny ggoebel: yeah, sure, whatever
16:25 tadzik moritz_: why star 2010.07, not 08>?
16:25 ggoebel phenny: tell phenny to be nice :-)
16:25 phenny Hey, I'm not as stupid as Monty you know!
16:26 ggoebel left #perl6
16:31 diakopter moritz_++ cruft--
16:32 diakopter (likely dangerous to run on the vps) cruft, I mean :)
16:33 diakopter though I guess no more dangerous than... never mind.
16:35 dalek rakudo: 51e3ff4 | pmichaud++ | src/Perl6/Grammar.pm:
16:35 dalek rakudo: Switch infix:<:=> to use list assignment, resolving RT #77462.
16:35 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​1e3ff451c2ba6430b5a4a399168a8e516c90b8d
16:35 standz joined #perl6
16:37 svetlins joined #perl6
16:37 patspam left #perl6
16:38 svetlins left #perl6
16:42 M_o_C joined #perl6
16:48 cdarroch joined #perl6
16:49 cdarroch left #perl6
16:49 cdarroch joined #perl6
16:49 M_o_C left #perl6
16:49 masak I wish to call attention to this problem:
16:49 masak rakudo: my $a = 42; say "$a</closetag>"
16:49 M_o_C joined #perl6
16:49 p6eval rakudo c71489: OUTPUT«postcircumfix:<{ }> not defined for type Int()␤  in main program body at line 1␤»
16:49 masak I don't have a proposed solution. it's just annoying.
16:54 pmichaud rakudo:  my $a = 42;  say "{$a}</closetag>";
16:54 diakopter rakudo: my $a = 42; say "$a\</closetag>"
16:54 diakopter heh
16:54 p6eval rakudo 51e3ff: OUTPUT«42</closetag>␤»
16:54 p6eval rakudo 51e3ff: OUTPUT«postcircumfix:<{ }> not defined for type Int()␤  in main program body at line 1␤»
16:54 diakopter (mine made the same error)
16:54 diakopter (which is confusing to me, fwiw)
16:55 pmichaud \ is unspaces
16:55 tadzik http://wklej.org/id/388892/ -- what does he want?
16:55 pmichaud *unspace
16:55 diakopter hm, even in "" I guess
16:55 pmichaud well, when parsing a postfix, yes.
16:55 tadzik it works when I change '(' to ';', why?
16:56 pmichaud tadzik: having a token called 'list' is likely causing the difficulty.
16:57 tadzik duh
16:57 diakopter also, try changing some of those to rule instead of token?
16:57 masak diakopter: right, unspace. the fact that that fairly obvious fix doesn't work is extra frustrating...
16:57 pmichaud don't need 'rule', since the spaces are being explicitly accounted for.
16:58 tadzik now I changed list to leest, and I get Method '!cursor_names' not found for invocant of class 'List'
16:58 pmichaud did you change <list> also?
16:58 tadzik bah, not all of them
16:59 diakopter well, the case of \s between '(' and expr is not accounted for, as well as \s between expr and ')'
16:59 tadzik yeah, it's ok now. So, token called list is forbidden intentionally?
16:59 pmichaud since there's already a built-in method 'list' that is used for other things,  declaring a token named 'list' ends up overriding it.
16:59 tadzik I see
17:00 tadzik it's just a class, with just methods
17:00 dakkar left #perl6
17:01 diakopter tadzik: see my msg above about \s
17:02 tadzik diakopter: yeah, I'm considering it
17:04 makkksimal joined #perl6
17:05 thebird left #perl6
17:08 Chillance joined #perl6
17:09 daxim left #perl6
17:10 makkksimal hi. my anyone point me to some documentatio on how to dynamically create classes in perl6?
17:10 diakopter eval ""   ?
17:12 masak makkksimal: eventually you might be able to do that with just metaclass manipulations. I don't know how possible that is today.
17:12 masak makkksimal: the best place to investigate that would be the Rakudo source, since that's how Rakudo does it.
17:12 diakopter masak: oh yeah, anon classes
17:13 diakopter and then givem a name
17:13 moritz_ rakudo: my $meta_class = 1.HOW; say $meta_class.new_class('Foo').WHAT
17:13 p6eval rakudo 51e3ff: OUTPUT«Foo()␤»
17:13 masak that's a good idea.
17:13 masak didn't think of that.
17:13 diakopter oh, new_class ?
17:13 masak makkksimal: what diakopter and moritz_ said.
17:13 diakopter what's new_class
17:13 diakopter is that spec
17:14 moritz_ rakudo: my $meta_class = 1.HOW; my $c = $meta_class.new_class('Foo'); $c.add_method('bla', method { say "in method bla" }); $c.finalize; $c.new.bla
17:14 p6eval rakudo 51e3ff: OUTPUT«Method 'add_method' not found for invocant of class ''␤  in main program body at line 22:/tmp/2lkEGXtbB9␤»
17:14 moritz_ rakudo: my $meta_class = 1.HOW; my $c = $meta_class.new_class('Foo'); $c.^add_method('bla', method { say "in method bla" }); $c.^finalize; $c.new.bla
17:14 justatheory joined #perl6
17:14 p6eval rakudo 51e3ff: OUTPUT«Method 'finalize' not found for invocant of class 'ClassHOW'␤  in main program body at line 22:/tmp/f4rSppue96␤»
17:15 moritz_ rakudo: my $meta_class = 1.HOW; my $c = $meta_class.new_class('Foo'); $c.^add_method('bla', method { say "in method bla" }); $c.^compose; $c.new.bla
17:15 p6eval rakudo 51e3ff: OUTPUT«in method bla␤»
17:15 diakopter nice.
17:15 moritz_ that's a demonstration of programmatically generating a class, adding a method and calling that method
17:15 makkksimal thanks moritz_ that will help
17:16 justatheory left #perl6
17:17 justatheory joined #perl6
17:19 hercynium joined #perl6
17:24 makkksimal left #perl6
17:24 thepler is there a method/op on Hash that is similar to Moose::Autobox::Hash->hslice ?
17:25 thepler that is: "give me a new Hash with a subset of the pairs" ?
17:25 moritz_ (@keys Z=> %hash{@keys}).hash
17:26 makkksimal joined #perl6
17:27 moritz_ maybe %hash{@keys}:kv also works at some poing
17:27 moritz_ *point
17:27 thepler moritz_: cool.  I thought of %new = %hash.pairs.grep({ .key eq [|] @keys })
17:31 makkksimal left #perl6
17:31 * thepler was trying to think of a better name than hsilce
17:45 masak rakudo: my %h = c => 3, a => 1, b => 2; .say for %h{sort keys %h}
17:45 p6eval rakudo 51e3ff: OUTPUT«1␤2␤3␤»
17:45 masak \o/
17:54 goksie left #perl6
18:00 masak are state variables disallowed outside of a block, or simply equivalent to ordinary lexicals?
18:02 makkksimal joined #perl6
18:04 tadzik rakudo: say "+" ~~ /\w/ # what?
18:04 p6eval rakudo 51e3ff: OUTPUT«␤»
18:04 masak + is not a \w
18:04 tadzik is there a class with \w and symbols like +?
18:05 masak quite possibly.
18:05 masak could you be more specific? :)
18:05 tadzik hmm
18:05 tadzik chars, digits and symbols?
18:05 masak gee, symbols.
18:06 diakopter like, non-whitespace? :)
18:06 masak <[ \w + \- * / ]>, perhaps.
18:06 tadzik :F whatever :)
18:06 masak tadzik: look, are you asking the question or not? :)
18:06 tadzik diakopter: more or less, but I'll probably end up with non-whitespace-non-parens
18:07 masak tadzik: if you are, please describe what you mean by chars *and* symbols.
18:07 icwiener_ joined #perl6
18:07 icwiener left #perl6
18:09 gottreu wouldn't \S be non-whitespace, or do inverted (or negated?) classes not count?
18:10 masak \S would be full of symbols, indeed.
18:10 masak including all of \w
18:10 hercynium quick rakudo/ubuntu question: what package(s) should I install to get opengl support?
18:11 masak rakudo: sub foo(Pair @a) {}; foo([])
18:11 hercynium this is more out of curiosity than to be used :)
18:11 p6eval rakudo 51e3ff: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional[Pair] but got Array instead␤  in 'foo' at line 22:/tmp/yR3anIvx_B␤  in main program body at line 22:/tmp/yR3anIvx_B␤»
18:11 gottreu wouldn't it be full of non-glyphs too?
18:11 masak o.O
18:11 * masak submits rakudobug
18:11 masak rakudo: say Array ~~ Positional
18:11 p6eval rakudo 51e3ff: OUTPUT«1␤»
18:12 masak oh, it's the typed array thing.
18:12 masak look, can't we make an exception for literal arrays?
18:12 masak I think it would help.
18:12 masak rakudo: sub foo(Pair @a) {}; foo([1 => 2])
18:12 p6eval rakudo 51e3ff: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional[Pair] but got Array instead␤  in 'foo' at line 22:/tmp/7AyNsFjbKq␤  in main program body at line 22:/tmp/7AyNsFjbKq␤»
18:12 masak this really looks like it should work...
18:14 ingy /[\s\S]/ is the portable /./s
18:14 ingy O
18:14 ingy HAI!
18:14 masak ingy: yes, but there's absolutely no need for that idiom in Perl 6 :)
18:15 ingy where are all the acemists?
18:15 * hercynium waves to ingy "HAI"
18:16 hercynium I am an aspiring acmeist, which perhaps, in a meta-sort-of-way... makes me one?
18:16 ingy :D
18:16 * ingy buggers off to finish a python port
18:24 AndreasX joined #perl6
18:31 hercynium OK, answered my earlier question: libglut3-dev
18:31 hercynium I'm giving a demo of rakudo * to Boston.PM tonight and I want to have an answer for all the options people may ask about :)
18:33 masak hercynium++
18:33 masak hercynium: you'll get another karma point if you make an OpenGL demo using Rakudo :)
18:34 hercynium well, I will probably yoink some code, just to run it and make people go "ooooooo"
18:34 AndreasX left #perl6
18:34 tadzik after running it with Rakudo, it'd rather be o.. o.. o.. o.. o.. o....
18:34 hercynium but my focus will be on using the repl to show different ways of doing things
18:34 hercynium tadzik++
18:35 tadzik bah, writing a lisp compiler is harder than I expected
18:35 sorear good * #perl6
18:35 phenny sorear: 16:25Z <ggoebel> tell sorear where does eval and running the spectest fall in your roadmap for niecza?
18:35 tadzik s/lisp/stupid lispalike/
18:39 rindolf joined #perl6
18:40 rindolf Hi all.
18:40 sorear phenny: tell ggoebel Nowhere yet
18:40 phenny sorear: I'll pass that on when ggoebel is around.
18:40 masak greetings, rindolf.
18:40 rindolf masak: what's up?
18:40 masak rindolf: I'm happy because I'm making a blog engine in Perl 6. :)
18:40 rindolf masak: ah.
18:40 masak rindolf: what's up yourself?
18:41 rindolf masak: I've started to work on a Catalyst-based blog engine.
18:41 rindolf But I've neglected it.
18:41 rindolf But it's not dead yet.
18:41 rindolf masak: I've built an .src.rpm of lp_solve-5.5.2.0 for Mandriva.
18:41 rindolf Now I'd like to put it on the build-system.
18:41 masak ok.
18:42 hercynium also curious: JIT - does it work? I noticed it's not enabled in Configure.pl's output
18:42 rindolf I needed it because I'd like to write a solver for http://www.brainbashers.com/kakurasu.asp
18:43 masak ah.
18:50 masak heh. the static page generator sounds cute when it accesses the hard drive. from the sound of it, it makes two blog posts a second.
18:50 masak #phasers in 10?
18:52 tadzik . o O ( trk trk... trk trk... trk trk... trk trk...)
18:53 masak yes, like that.
18:53 masak rakudo: say "abcde.fgh.ijkl".subst(/ \. .+? $ /, "")
18:53 p6eval rakudo 51e3ff: OUTPUT«abcde␤»
18:53 masak :(
18:53 * masak submits rakudobug
18:54 masak oh wait. that's just me being silly.
18:54 masak un-submit.
18:54 masak rakudo: say "abcde.fgh.ijkl".subst(/ \. <-[.]>+ $ /, "")
18:54 p6eval rakudo 51e3ff: OUTPUT«abcde.fgh␤»
18:54 masak man, does real world code bring out bugs. in Rakudo, and in masak's brain :)
18:55 colomon real world code++
18:55 masak buubot: karma code
18:55 buubot masak: code has karma of -3
18:55 colomon (busy working on ABC.pm while waiting for a $work download....)
18:55 masak code++
18:58 colomon #phasers in T-2 min ?
19:00 hercynium left #perl6
19:00 masak now now now
19:01 masak be there or be ❏
19:04 Italian_Plumber left #perl6
19:05 colomon square and shadowed?
19:05 masak right. square AND shadowed.
19:05 PerlJam yes, covert operatives will follow you everywhere.
19:10 colomon rakudo: my $m = "hello world" ~~ /^ .*?[.o.*?] $/; say $m.perl
19:10 p6eval rakudo 51e3ff: OUTPUT«Match.new(␤ from => 0,␤ orig => "hello world",␤ to   => 11,␤)␤»
19:11 colomon ack
19:11 colomon is it expected that we now need to use @(   ) around arrays in a match variable?
19:12 tomaw joined #perl6
19:12 icwiener_ left #perl6
19:12 ant joined #perl6
19:12 makkksimal left #perl6
19:12 ant ah nuts
19:12 ant left #perl6
19:12 makkksimal joined #perl6
19:13 moritz_ colomon: yes
19:13 mberends Does tools/test_summary.pl run ok with everyone? All recent checkouts have been complaining that fudge is being called incorrectly (its Usage message appears)
19:13 moritz_ mberends: that means that some test files are missing
19:14 pmichaud I haven't tried tools/test_summary.pl in quite a while
19:14 flussence left #perl6
19:14 moritz_ mberends: is your t/spec/ a git repo? have you run Configure.pl recently?
19:14 flussence joined #perl6
19:14 flussence (I need to rtfm for irssi some time...)
19:14 mberends moritz_: yes, just updated a few minutes ago.
19:15 moritz_ mberends: did you rm -rf t/spec/ at some point to allow it to become a git repo?
19:15 moritz_ if not, it still tracks the dead pugs svn
19:15 colomon moritz_:  is that spec behavior, or a rakudo limitation?
19:16 moritz_ colomon: spec
19:16 timbunce left #perl6
19:16 mberends moritz_: no. thanks for the tip, will re-check everything out :)
19:17 moritz_ colomon: otherwise there would be no difference in iterating over the result from (.)**2 and (.)(.)
19:18 colomon moritz_++
19:19 aCiD2 joined #perl6
19:19 aCiD2 Hey, something returned from MiniDBI is coming back as a Str, but it's from a SERIAL column (so I'd expect an Int back).
19:20 aCiD2 I'm guessing I'll have to do the cast myself for now, doing +$id gives me a Num though, not an Int
19:20 moritz_ aCiD2: then call the .Int method
19:20 moritz_ rakudo: say "123".Int.What
19:20 moritz_ rakudo: say "123".Int.WHAT
19:20 p6eval rakudo 51e3ff: OUTPUT«Method 'What' not found for invocant of class 'Int'␤  in main program body at line 22:/tmp/92I7GOY0VD␤»
19:20 p6eval rakudo 51e3ff: OUTPUT«Int()␤»
19:20 moritz_ aCiD2: it's a known (and long-standing) bug in Rakudo that numification isn't smart enough
19:20 aCiD2 Ah
19:21 plainhao left #perl6
19:21 colomon moritz_: not so, that's fixed
19:21 colomon rakudo: say (+"123").WHAT
19:21 p6eval rakudo 51e3ff: OUTPUT«Num()␤»
19:22 colomon p6eval way way behind again?
19:22 colomon wait, wrong bug.
19:23 timbunce joined #perl6
19:23 colomon sorry, I'm getting confused.
19:23 colomon p6eval is up to date.
19:23 colomon I think +"123" being an Int is on the list of things to be fixed shortly, rather than things just fixed.
19:24 colomon rakudo: my @a = 1...3 ; say (+@a).WHAT
19:24 p6eval rakudo 51e3ff: OUTPUT«Int()␤»
19:24 tomaw left #perl6
19:24 colomon that's the one that was just fixed.
19:25 aCiD2 http://pastie.org/1158938 does anyone know why the second method call fails (with new-from-row in), but the first works?
19:25 aCiD2 I'll just get the exact error, but it complains about not received an Assosciative
19:26 aCiD2 minal type check failed for parameter '%row'; expected Associative but got MusicBrainz::Entity::Country instead. am I calling it wrong, it seems like the class is being sent where %row should be
19:27 wamba left #perl6
19:28 tomaw joined #perl6
19:37 dalek evalbot: d43d0a4 | moritz++ | evalbot.pl:
19:37 dalek evalbot: more git migration
19:37 dalek evalbot: review: http://github.com/perl6/evalbot/commit/d​43d0a40fd68f2e8e15fa91b843336b550712ba5
19:38 pmichaud (pastie.org)  503 Service unavailable
19:38 pmichaud afk, kid pickup
19:39 p6eval left #perl6
19:40 p6eval joined #perl6
19:40 moritz_ rakudo: say "now from git"
19:40 p6eval rakudo 51e3ff: OUTPUT«now from git␤»
19:41 * masak tries to read the enums spec and the enums spectest at the same time
19:42 alester left #perl6
19:43 dalek evalbot: 0526c90 | moritz++ | / (4 files):
19:43 dalek evalbot: config file updates
19:43 dalek evalbot: review: http://github.com/perl6/evalbot/commit/0​526c90d322a6e35f3983805aa5f004ec19f7a46
19:44 rindolf left #perl6
19:44 rindolf joined #perl6
19:48 tadzik could note be a string method, just like say is?
19:48 tadzik It'd be nice to be able to write @foo.perl.note just like @foo.perl.say
19:49 masak +1
19:49 dalek evalbot: f488637 | moritz++ | / (3 files):
19:49 dalek evalbot: add some more rebuild scripts
19:49 dalek evalbot: review: http://github.com/perl6/evalbot/commit/f​488637b4d8f12bb444e92d874bdcc3b8423fa5c
19:49 masak tadzik: make a patch, and I will guerilla-apply it. then we'll spec it :)
19:49 tadzik I can write it if everyone likes
19:49 PerlJam tadzik: ask forgiveness rather than permission  :)
19:49 tadzik yay, fun!
19:49 yoasif joined #perl6
19:50 tadzik also I has a working toylisp compiler :)
19:50 PerlJam tadzik: (that's a +1 from me, in case it wasn't clear)
19:50 masak more like a meta-+1
19:51 Sanitoeter joined #perl6
20:01 thundergnat joined #perl6
20:02 tadzik masak: what shall I do with the patch?
20:02 masak tadzik: nopaste it, and I'll review it.
20:03 ab5tract ok, so i have an idea for a project, and i think perl6 might be an ideal means of executing it
20:04 Tene ab5tract: Oh?  What's the idea?
20:04 ab5tract are there any existing examples in perl6 for a 'pre-format' parser (a la Markdown)?
20:04 ab5tract a mutable translation layer
20:04 tadzik masak: http://wklej.org/id/389050/
20:04 * masak looks
20:05 ab5tract in other words, a pre-format that can have its rules completely rewritten: its syntax, keywords, and effects of translation are all defined at runtime via config files
20:06 tadzik ab5tract: well, I'd say it's just a matter of fanciness of the parser
20:06 tadzik oh, runtime-runtime. But still, yes
20:07 M_o_C left #perl6
20:07 Tene Existing examples?  Not sure.
20:08 Tene Completely feasible, though.
20:08 Tene Depends on how mutable you want the grammar to be.
20:09 PerlJam for some reason I immediatly think of pmwiki  :)
20:09 tadzik hrm
20:09 tadzik Perl 6 grammar might be an example
20:10 masak I still think making a script that can reverse a Perl 6 one-liner would be a neat trick. :) it would really help to have easy access to the parse tree, though.
20:10 masak someone please make a Perl 6 module that turns a Perl 6 program string into a parse tree!
20:10 tadzik --target=PAST? :)
20:10 lichtkind joined #perl6
20:11 masak hm.
20:11 masak maybe one can work with that, yes.
20:11 tadzik like -MO=Deparse I think
20:11 lichtkind soryy to biother is any planetsix people here?
20:11 thundergnat Hello perl6,
20:11 lichtkind hai thundergnat
20:11 tadzik lichtkind: ywis
20:11 tadzik hello thundergnat
20:11 lichtkind tadzik: you are?
20:11 tadzik lichtkind: I think so
20:12 tadzik I mean, my blag is there
20:12 lichtkind no i mean the admin of that site
20:12 tadzik ah
20:12 thundergnat I've been exploring around some of the less explicitly defined areas of the spec and have found a bunch of oddities
20:12 lichtkind my old blog was there too
20:12 lichtkind but since use.perl died i need to get a reset to my new blog
20:12 thundergnat std: my $x; $x &&= 1; say $x;
20:12 p6eval std : OUTPUT«ok 00:01 118m␤»
20:12 thundergnat rakudo: my $x; $x &&= 1; say $x;
20:12 p6eval rakudo 51e3ff: OUTPUT«No applicable candidates found to dispatch to for 'infix:<&&>'. Available candidates are:␤:(Mu $a, Mu $b)␤␤  in main program body at line 1␤»
20:13 dalek rakudo: 04ce047 | masak++ | src/core/Mu.pm:
20:13 dalek rakudo: [core/Mu] added .note method
20:13 dalek rakudo:
20:13 dalek rakudo: Contributed by tadzik++
20:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​4ce047e42cd85b4dfc2af01ed2b8d28ade98803
20:13 * masak submits rakudobug
20:13 masak thundergnat++
20:13 thundergnat std: my $x; $x ^^= 1; say $x;
20:13 p6eval std : OUTPUT«ok 00:01 118m␤»
20:13 masak thundergnat: however, that's a runtime error. in general STD won't dig up those.
20:13 thundergnat rakudo: my $x; $x ^^= 1; say $x;
20:13 p6eval rakudo 51e3ff: OUTPUT«Null PMC access in invoke()␤  in main program body at line 1␤»
20:13 masak whoa there!
20:13 lichtkind sorear: can i get a short chat?
20:13 * masak submits rakudobug
20:14 thundergnat I 've got a bunch
20:14 masak keep going.
20:14 thundergnat rakudo: $x; $x ?&= 1;
20:14 p6eval rakudo 51e3ff: OUTPUT«===SORRY!===␤Symbol '$x' not predeclared in <anonymous> (/tmp/iaFRw_ZZj2:22)␤»
20:14 thundergnat oops
20:14 thundergnat rakudo: my $x; $x ?&= 1; say $x;
20:14 p6eval rakudo 51e3ff: OUTPUT«No applicable candidates found to dispatch to for 'infix:<?&>'. Available candidates are:␤:(Any $a, Any $b)␤␤  in main program body at line 1␤»
20:15 masak that one goes into the first one.
20:15 thundergnat rakudo: my $x; $x ?|= 1; say $x;
20:15 p6eval rakudo 51e3ff: OUTPUT«No applicable candidates found to dispatch to for 'infix:<?|>'. Available candidates are:␤:(Any $a, Any $b)␤␤  in main program body at line 1␤»
20:15 masak and that one too.
20:15 thundergnat rakudo: my $x; $x ?^= 1; say $x;
20:15 p6eval rakudo 51e3ff: OUTPUT«No applicable candidates found to dispatch to for 'infix:<?^>'. Available candidates are:␤:(Any $a, Any $b)␤␤  in main program body at line 1␤»
20:15 thundergnat again
20:15 masak aye.
20:15 masak only the Null PMC access is separate so far.
20:16 thundergnat rakudo:  my ($x, $y); $x = 5; $x min= $y; say $x;
20:16 thundergnat this is ok
20:16 p6eval rakudo 51e3ff: OUTPUT«5␤»
20:16 masak aye.
20:16 thundergnat but different from:
20:16 thundergnat rakudo:  my ($x, $y); $x = 5; $x max= $y; say $x;
20:16 p6eval rakudo 51e3ff: OUTPUT«Any()␤»
20:16 * masak submits rakudobug
20:16 masak thundergnat++
20:16 gottreu [[:graph:]]  Any printable character, excluding a space.
20:16 thundergnat spec say undef evaluates to -Inf
20:16 masak aye.
20:17 thundergnat Any interest in a test file for assignment metaops? That's how I found all these.
20:17 thundergnat There isn't one in roast.
20:17 pmichaud rakudo:  my ($x, $y);  $x = 5;  say $x max $y;
20:17 p6eval rakudo 51e3ff: OUTPUT«Any()␤»
20:17 pmichaud rakudo:  my ($x, $y);  $x = 5;  say $x min $y;
20:18 p6eval rakudo 51e3ff: OUTPUT«5␤»
20:18 masak thundergnat: sure, can't hurt.
20:18 thundergnat It will need to be cleaned up a bit. I've got some cruft in there.
20:19 thundergnat metaops.assignment.t   http://gist.github.com/579693
20:20 hans__ joined #perl6
20:20 thundergnat it also tests for the short circuiting //=, ||= and &&=
20:21 thundergnat all of which fail :-(
20:21 thundergnat (they don't short circuit)
20:22 masak ISTR that's a known deficiency.
20:22 masak I think it has something to do with the way metaop babby are formed.
20:22 risou left #perl6
20:23 thundergnat I may have made some incorrect assumptions/interpretations of STD but I _think_ these are all reasonable test.
20:23 thundergnat s
20:23 ab5tract Tene: pretty mutable :)
20:24 masak thundergnat: seems so to me.
20:24 pmichaud We're going to need to do a bit of rethinking and refactoring to properly handle short-circuit ops and chained ops.
20:24 ab5tract ive never written a parser before, but perl6 seems like a good fit for it from what i understand of the grammars
20:24 pmichaud and we may need some additional support from the language spec
20:24 masak ab5tract: definitely.
20:25 dalek rakudo: f5e67ec | masak++ | src/core/IO.pm:
20:25 dalek rakudo: Revert "Refactor slurp($filename) to use Parrot's .readall($filename);"
20:25 dalek rakudo:
20:25 dalek rakudo: This reverts commit 77a72a31234229635f720f853d59b865342df17a, since
20:25 dalek rakudo: http://trac.parrot.org/parrot/ticket/1749 is now fixed.
20:25 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​5e67ec06a50c7f966420da8eee9dcac038b6b75
20:25 ab5tract its not totaly related, but i think someone needs to submit a perl6 solution for this project: http://www.codequarterly.c​om/code-challenges/markup/
20:25 ab5tract not the least because it would provide me a nice example to start working from ;)
20:26 tadzik1 joined #perl6
20:26 ab5tract masak, any "best examples" of p6 grammar utilization that you might point me too?
20:26 colomon thundergnat: looks like a lot of that stuff is already tested?  for instance, acking on **= shows tests in S03-operators/assign.t, S03-operators/autovivification.t, and S06-operator-overloading/workout.t
20:26 tadzik left #perl6
20:27 colomon ab5tract: agreed!
20:27 masak ab5tract: probably the book.
20:27 colomon ab5tract: I've been keeping that stuff open in a Chrome window on my laptop since I first saw it appear.
20:27 masak ab5tract: there's a chapter on parsin JSON in there.
20:27 ab5tract colomon, you mean the code quarterly thing?
20:27 colomon ab5tract: yes.
20:27 Tene ab5tract: http://perl6advent.wordpress.com/200​9/12/21/day-21-grammars-and-actions/ isn't a bad place to start, and I think that the example there has been imported into the book
20:28 colomon thundergnat: though you seem to be a lot more systematic!
20:28 masak ab5tract: http://github.com/perl6/book/​blob/master/src/grammars.pod
20:28 ab5tract masak, oh yes, i remember that now. a json parser in half a page of code or so
20:28 colomon ab5tract: it feels like a perfect challenge for p6
20:28 masak aye :)
20:28 thundergnat colomon: probably some overlap. I was just including all assigment metaops for my own edification
20:28 tadzik1 Tene: it hasn't been yet
20:28 * tadzik1 ashamed
20:28 tadzik1 is now known as tadzik
20:29 thundergnat I may have missed a few, but I think I got most allowed  by spec.
20:29 masak thundergnat: thanks for the reports. it's all filed away in RT now.
20:30 thundergnat The spec is a little vague and hand-wavey about the whole assignment metaop thing. :-)  IMO
20:31 masak I'm sure suggestions for clarifications are welcome.
20:31 masak thundergnat: do you have a commit bit?
20:31 thundergnat no
20:32 masak someone give thundergnat commit bit to perl6?
20:32 * masak doesn't know how
20:32 thundergnat I'm kind of a git newbie...
20:32 masak who isn't? :P
20:32 thundergnat newbie git? hur hur
20:33 shortcircuit left #perl6
20:33 drake1 joined #perl6
20:33 masak thundergnat: allow me to heartily recommend http://www.newartisans.com/2008​/04/git-from-the-bottom-up.html
20:33 masak thundergnat: I've read it something like three times.
20:33 masak following along and doing the examples on the command line helped me a lot.
20:33 thundergnat masak: thanks, I'll take a look at it.
20:34 bacek joined #perl6
20:34 wolverian what's my best bet for parsing xml with rakudo* at the moment?
20:34 drake1 hello, I just wrote a new stdio for super IPC http://www.gangsterfreak.com/file:stdio_test . Maybe perl6 can use it in the new I/O system
20:34 wolverian (the file is small, so speed is no concern, but I would prefer correctness over hacks. :)
20:34 ab5tract Tene, masak thanks for the pointers
20:34 Tene wolverian: probably use a perl 5 library.  I don't know of any native Perl 6 support for XML yet.
20:35 wolverian Tene: I haven't used perl 5 libraries from rakudo yet. how do I do that?
20:35 Tene wolverian: I haven't kept up to date on that at all.  I saw someone using GTK through Perl 5 earlier, though.
20:35 tadzik I'm afraid Perl 6 XML does not work, while Blizkost can't run anything from Perl 5
20:36 aloha joined #perl6
20:36 tadzik http://tjs.azalayah.net/ser.html -- XML seems not to be working
20:36 wolverian blizkost is the perl5 bridge? but it does not work? :)
20:36 tadzik wolverian: it doesn't always work
20:36 tadzik sadly :(
20:36 wolverian okay.
20:37 Tene a very simple XML parser would be pretty easy to hack out, and would work for many small documents.
20:37 masak there have been several XML parsers written over the past few years. at least one sits in the ecosystem.
20:37 Tene but that's not what you want.
20:37 tadzik Maybe it's time to fix the existing one before *
20:37 masak people seem to love writing XML parsers with Perl 6 grammars :)
20:37 wolverian masak: I saw the one I assume tadzik linked to -- it doesn't build.
20:37 masak yes, it's probably bitrotted.
20:38 tadzik somebody was looking for a small project to help, no?
20:38 tadzik like pun
20:39 rindolf left #perl6
20:40 rindolf joined #perl6
20:42 masak aye.
20:42 Ross joined #perl6
20:43 masak it was gottreu++ who asked.
20:45 hercynium joined #perl6
20:45 whiteknight joined #perl6
20:47 Ross left #perl6
20:50 hans__ left #perl6
20:51 Ross joined #perl6
20:55 molaf joined #perl6
21:03 rindolf left #perl6
21:03 drake1 well, it's the perfect capability to execute C objects when you don't want to try to keep up. Im off for now. bye
21:03 drake1 left #perl6
21:04 gottreu tadzik, possibly.
21:05 tadzik gottreu: you may want to take a look at this XML parser. Even if you'll have to come here for help in half a cases, that'd still be huge help
21:08 * masak decides he really likes "somefilename".&open(:w)
21:08 masak very chic. very Ruby :)
21:11 masak also, 'given "somefilename".&open(:w) { .say("this"); .say("that"); .close }'
21:11 * masak considers writing to PerlVogue :)
21:11 gottreu tadzik, to which XML parser does _this_ refer?
21:12 tadzik gottreu: the one on modules.perl6.org I guess
21:12 tadzik masak: been reading stackoverflow, didn't you? :P)
21:12 masak tadzik: no, why? :)
21:12 masak did someone use that trick there?
21:12 tadzik yep :)
21:12 masak dang, I thought I was first...
21:13 tadzik and some people on reddit said "well, I must say I like the Perl example..."
21:13 gottreu I bet smalltalk was firstier.
21:13 masak prolly.
21:14 tadzik masak: http://stackoverflow.com/questions/3538156/file-i​-o-in-every-programming-language/3539727#3539727
21:15 masak yes, clearly fishing for Ruby votes :)
21:16 gottreu from that link "Perl actually makes me sad. No language ever needs a keyword 'given'. What next, 'beholdeth' or 'insomuchas'"  What kind of person considers 'given' to be archaic or rarely used?
21:17 tadzik exactly the kind of persons you shouldn't care about :)
21:17 tadzik I always say so to myself
21:18 gottreu no no!  emotional investment will reap great rewards!
21:18 gottreu actually i think REXX have given/when
21:19 flussence given is like JS' let, but useful
21:20 flussence (I think they've actually deprecated let now due to its uselessness)
21:20 ruoso left #perl6
21:20 flussence (or was it "with"?)
21:21 flussence oh, it was.
21:21 masak 'with', yes.
21:21 flussence let is something to do with iterating.
21:21 masak I've always liked 'given', so I don't care much if others dislike it.
21:21 masak people will always be skeptical to things they haven't tasted before.
21:22 tadzik yeah
21:22 tadzik OH NOES WHY NOT JUST SWITCH-CASE
21:22 masak and there's actually a reason.
21:23 flussence "given" is grammatically loose enough to allow it to be used for more than one thing :)
21:23 sbp I like how you "switched case" to ask that question
21:23 masak or many reasons, even.
21:23 masak sbp++ # groan
21:23 tadzik "given something do something" sounds better than "switch something case something"
21:23 tadzik sbp: nice pun :)
21:23 PerlJam But computers don't care how it sounds?  Why should programmers?  ;)
21:24 masak tadzik: yes -- A04 says that control structures are usually verb-y. except switch/case which is named after what it is, not what it does.
21:25 masak it's a bit like naming a looping construct 'loop'. oh wait.
21:25 masak bad example :P
21:25 tadzik :)
21:26 masak it's like having constructs called 'for-loop' and 'goto-statement'. it looks a bit silly.
21:26 masak and it reads not-as-well.
21:28 mantovan1 joined #perl6
21:28 mantovani left #perl6
21:29 PerlJam yeah, I think "loop" should be renamed.  It should definitely be called "iterate" instead.  :)
21:31 Guest23195 left #perl6
21:31 hercynium left #perl6
21:32 Tene do-stuff-many-times { ... }
21:32 masak "loop" is alright. it's a verb too. I was just being silly.
21:33 Tene Speaking of naming conventions, there's always http://www.smbc-comics.com/index​.php?db=comics&amp;id=1169#comic
21:33 masak heh.
21:35 timbunce left #perl6
21:36 z-b joined #perl6
21:36 zb left #perl6
21:36 cls_bsd left #perl6
21:37 cls_bsd joined #perl6
21:37 flussence I guess if someone doesn't like the current names, they can make their own control structures up anyway
21:39 flussence rakudo: sub don't(&a) { return Mu }; don't { loop {} }; say 'alive'
21:39 p6eval rakudo f5e67e: OUTPUT«alive␤»
21:40 masak \o/
21:41 timbunce joined #perl6
21:41 diakopter wow. they ain't kidding. firefox4 beats chrome7 greatly on mozilla's new benchmark "kraken"
21:42 sjohnson hi dudes
21:44 masak hi sjohnson
21:44 sjohnson :]
21:44 sjohnson #perl6, the happiest place on earth
21:46 araujo :)
21:46 dalek 6model: 7e480bb | mberends++ | java/ (16 files):
21:46 dalek 6model: [java] add Runtime/Ops.java, add ThreadContext into all Representations
21:46 dalek 6model: review: http://github.com/jnthn/6model/commit/7​e480bbae8bdce8d896afc534a9c7e418ba4889d
21:47 Mowah left #perl6
21:48 masak sjohnson: well, "rakudo" *does* mean "paradise"...
21:53 masak I just pushed the enums patch.
21:53 masak it's not perfect, but it gave a clean spectest run, and we can bicker over details later :)
21:53 masak at least now it's in Rakudo. again.
21:53 * masak zzz
21:53 vdrab joined #perl6
21:54 sjohnson see ya masak
21:54 masak 'night
21:54 lichtkind bye masak
21:54 masak left #perl6
21:55 tadzik well, I'll go to
21:55 tadzik g'night
21:55 tadzik left #perl6
21:56 thowe joined #perl6
21:56 thowe hello
21:56 lichtkind hi thowe
21:56 aCiD2 left #perl6
21:57 thowe I may not know where to look, but I am wondering if there is a PostgreSQL lib and a CGI lib yet for Perl6?  I need to write the IPv6 version of a tool we use at work and I thought I might do it in Perl6 instead of RUby...
21:57 nadim left #perl6
21:57 nadim joined #perl6
21:57 dalek rakudo: 5ac20e0 | masak++ | src/glue/enum.pm:
21:57 dalek rakudo: [src/glue/enum.pm] return the right things
21:57 dalek rakudo:
21:57 dalek rakudo: enum Foo <a b c>;
21:57 dalek rakudo:
21:57 dalek rakudo: Previously, requesting Foo yielded an EnumMap, whereas it now yields an
21:57 dalek rakudo: object of some kind whose .enums method returns an EnumMap. Similarly,
21:57 dalek rakudo: requesting b yielded an Int, whereas now it returns an object that responds
21:57 dalek rakudo: to a number of methods, as per S12.
21:57 lichtkind thowe: great but you know perl 6 compilers are still slow
21:57 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​ac20e01d5db17673bcd0e23077352e237411c45
21:58 flussence there's MiniDBD::Pg in Star
21:58 thowe this doesn't need a lot of speed, and it will be around for a while.
21:58 lichtkind thowe: look for proto the current central ctation for perl 6 modules
21:58 thowe proto?
21:58 thowe OK..
21:59 thowe here?? http://modules.perl6.org/
21:59 lichtkind http://modules.perl6.org/
21:59 thowe :)
21:59 lichtkind yes
22:00 thowe Cool.  THis should be something simple for me to get some real practice in with...
22:00 thowe I may have to port my ip class library, but bit shifting can't be that different than most languages, right?
22:01 lichtkind you mean take a value out of an array?
22:01 lichtkind the p6 shift is not that different to the p5 shift
22:02 lichtkind only now also usable as method
22:02 thowe er no, I mean bitwise operators
22:02 envi^home left #perl6
22:02 lichtkind ah
22:02 lichtkind its +< and +>
22:02 lichtkind not << and >> anymore
22:03 lichtkind because its numeric context
22:03 lichtkind and + dtands for that context
22:03 lichtkind the rest is es expected
22:03 thowe Oh.  Where are docs for those?
22:03 lichtkind we have synopses
22:03 lichtkind and the taplets i write
22:03 lichtkind all linked from perl6.org
22:04 lichtkind syn are the specs
22:04 thowe I should probably look through that PDF book some more...
22:04 lichtkind yes its really a book
22:04 lichtkind if you just want to look up ops and method names tablets are propably
22:04 lichtkind better
22:04 lichtkind but there is not much text
22:05 lichtkind if you really want to learn why book would be better now
22:05 Ross left #perl6
22:06 thowe For some reason, even though it's different than my past experience, I really see Parrot and Perl6 being part of my future projects...  I've waited months for the feeling to wear off and it hasn't yet.
22:07 lichtkind :)
22:07 flussence The bit operators are in http://perlcabal.org/syn/S03.h​tml#Multiplicative_precedence if you want a quick overview
22:07 lichtkind someone who listens to intuiition :)
22:07 thowe It's actually a little weird.  My thoughts keep coming back to it like an old girlfriend you never got to say goodbye to...  Even thought I don't know this one very well.
22:08 lichtkind :)
22:08 thowe OK, now I'm talking weird, but it sticks with me, so I will run with it.
22:08 lichtkind yor defineivly weird enough, welcome on board :)
22:08 thowe plus you guys are so nice...
22:08 flussence rakudo: my $a = 5; $a +<= 2; say $a; # wondering how many of these ops can be stuck together
22:08 p6eval rakudo f5e67e: OUTPUT«20␤»
22:08 flussence yay
22:09 flussence rakudo: my $a = <2 3 4>; $a>>.+<= 2; say $a;
22:09 p6eval rakudo f5e67e: OUTPUT«===SORRY!===␤Confused at line 22, near "$a>>.+<= 2"␤»
22:09 flussence didn't expect that one to work really
22:10 flussence rakudo: my $a = <2 3 4>; $a>>+<=>> 2; say $a;
22:10 p6eval rakudo f5e67e: OUTPUT«Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in <anon> at line 204:CORE.setting␤  in 'hyper' at line 1␤  in 'hyper' at line 211:CORE.setting␤  in main program body at line 1␤»
22:10 flussence hmm
22:11 Holy_Cow left #perl6
22:11 flussence Oh, right
22:11 flussence rakudo: my $a = <2 3 4>; $a<<+<=<< 2; say $a;
22:11 p6eval rakudo f5e67e: OUTPUT«Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in <anon> at line 204:CORE.setting␤  in 'hyper' at line 1␤  in 'hyper' at line 211:CORE.setting␤  in main program body at line 1␤»
22:12 rgrau_ joined #perl6
22:14 flussence rakudo: my @a = <2 3 4>; say ~(@a >>+<>> 2); # blech
22:14 p6eval rakudo f5e67e: OUTPUT«8 12 16␤»
22:15 araujo left #perl6
22:17 flussence rakudo: my @array = (3,8,2,9,3,8); @array >>+=>> 42; say ~@array;
22:17 p6eval rakudo f5e67e: OUTPUT«Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in <anon> at line 204:CORE.setting␤  in 'hyper' at line 1␤  in 'hyper' at line 211:CORE.setting␤  in main program body at line 1␤»
22:17 flussence that's straight from S03...
22:20 patspam joined #perl6
22:20 vdrab_ joined #perl6
22:21 awwaiid joined #perl6
22:22 vdrab left #perl6
22:24 vdrab_ left #perl6
22:25 vdrab joined #perl6
22:25 ab5tract left #perl6
22:32 azert0x left #perl6
22:32 timbunce left #perl6
22:41 Italian_Plumber joined #perl6
22:43 lamstyle left #perl6
22:50 dju left #perl6
22:50 dalek 6model: 06ef074 | mberends++ | java/runtime/ (3 files):
22:50 dalek 6model: [java] add Metamodel/Representations/P6list
22:50 dalek 6model: review: http://github.com/jnthn/6model/commit/0​6ef0740f31dcda5c9a88c2d70f4bbe57697de73
22:51 awwaiid left #perl6
23:00 dju joined #perl6
23:03 dju left #perl6
23:04 dju joined #perl6
23:05 alksentrs joined #perl6
23:06 awwaiid joined #perl6
23:10 plobsing joined #perl6
23:36 jferrero joined #perl6
23:38 thundergnat left #perl6
23:38 hercynium joined #perl6
23:44 meppl left #perl6
23:45 masonkramer left #perl6
23:45 masonkramer joined #perl6
23:45 * jnthn had a lovely evening in Oslo with Unix/Perl folks. :-)
23:48 mberends nice :)
23:49 pmichaud I'm about to do the same, but in Allen, TX.
23:49 pmichaud bbl
23:50 supernovus joined #perl6
23:52 jnthn pmichaud: enjoy
23:53 * jnthn got Mousaka, beer and apple-y liquuer stuff tonight too :-)
23:56 literal left #perl6
23:56 s1n_mini joined #perl6
23:57 hercynium so, we're beginning our demo of Rakudo * here @ Boston.pm!
23:57 * thowe has to go home
23:57 thowe left #perl6
23:58 jnthn hercynium: :-)
23:58 jnthn hercynium: Hav fun
23:58 * jnthn gets some sleep - didn't get much last night :-)
23:58 jnthn o/
23:58 literal joined #perl6
23:59 hercynium oh, BTW, does anybody know of any openGL code I can show off?
23:59 hercynium I thouhgt there was something on masak's journal but I can't find it right now

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

Perl 6 | Reference Documentation | Rakudo