Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-05-23

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:13 jsiracusa joined perl6
00:23 hikozaemon joined perl6
00:29 rdice joined perl6
00:36 buu QtPlatypus: You probably wanted perl6, not perl5
00:36 buu ?eval bool::true | bool::false
00:36 evalbot_10383 Error: No such sub: "&bool::true"
00:37 QtPlatypus ?eval bool::True | bool::False
00:37 evalbot_10383 Error: No such sub: "&bool::True"
00:37 QtPlatypus ?eval Bool::True
00:37 evalbot_10383 Bool::True
00:37 QtPlatypus ?eval Bool::True |Bool::False
00:37 evalbot_10383 Bool::False
00:37 QtPlatypus ?eval Bool::True | Bool::False
00:37 evalbot_10383 Bool::False
00:38 QtPlatypus Curiouser and Curiouser
00:38 QtPlatypus ?eval any(Bool::True,Bool::False)
00:38 evalbot_10383 Bool::False
00:39 QtPlatypus ?eval (Bool::True|Bool::False)
00:39 evalbot_10383 Bool::False
00:42 buu ?eval 1 == 1|0
00:42 evalbot_10383 Bool::False
00:43 buu Eh?
00:43 buu ?eval 1 == (1|0)
00:43 evalbot_10383 Bool::False
00:43 buu ?eval 1 == (1&0)
00:43 evalbot_10383 Bool::False
00:43 buu ?eval 1 == any(1,0)
00:43 evalbot_10383 Bool::False
00:43 buu ?eval 1 == any(1|0)
00:43 evalbot_10383 Bool::False
00:43 buu Well I'm confused.
00:45 QtPlatypus Looks like junctions have been switched off/broken?
00:52 avar joined perl6
00:52 QtPlatypus ?eval 1 ~~ (1|0)
00:52 evalbot_10383 Bool::False
00:53 PerlJam ?eval 1 == any(0,1)
00:53 evalbot_10383 Bool::False
00:53 PerlJam ?eval 1 == any(1)
00:53 evalbot_10383 Bool::True
00:53 PerlJam at least that works :)
00:54 PerlJam ?eval 1|0|3
00:54 evalbot_10383 0
00:54 PerlJam ?eval 1|2|3
00:54 evalbot_10383 1
00:54 PerlJam looks like junctions evaluate to the smallest member
00:54 avar joined perl6
00:56 QtPlatypus PerlJam: Seems like ther are collapsing prematurely.
00:57 QtPlatypus ?eval [|] (2,3,6,7,0,4)
00:57 evalbot_10383 Error: Cannot reduce() using a unary or nullary function.
00:58 PerlJam that's a bug
00:58 QtPlatypus Both look like bugs.
01:00 PerlJam yep
01:03 QtPlatypus I mean binary operator that returns the least of its sides is sort of nice, but no where near as powerfull as junctive operators.
01:05 mako132_ joined perl6
01:06 jserv-- joined perl6
01:07 QtPlatypus What I wanted to do was to test out, $a = (Bool::True|Bool::False); $a == $a; $a||!$a; $a && !$a
01:17 oylenshpeegul joined perl6
01:22 oylenshpeegul left perl6
01:25 sri_ joined perl6
01:38 FB|afk is now known as FurnaceBoy
02:15 SamB joined perl6
02:24 coumbes joined perl6
02:32 dvorak joined perl6
02:43 sri_ joined perl6
03:03 SubStack joined perl6
03:05 weinig is now known as weinig|sleep
03:12 sri_ joined perl6
03:37 arcady joined perl6
04:24 kanru joined perl6
05:15 bjoern_ joined perl6
05:45 SubStack joined perl6
06:25 SubStack joined perl6
06:30 justatheory joined perl6
06:46 iblechbot joined perl6
06:48 marmic joined perl6
06:50 SM_ax joined perl6
07:13 svnbot6 r10397 | scw++ | Pugs::Compiler::Rule ratchet
07:13 svnbot6 r10397 | scw++ |  * character classes
07:13 svnbot6 r10397 | scw++ |  * quantified subrule generates array
07:13 svnbot6 r10397 | scw++ |  * fix <ws>
07:16 svnbot6 r10398 | scw++ | fix last commit: compile_p6grammar.pl doesn't work with ratchet yet
07:17 Aankhen`` joined perl6
07:31 bjoern_h joined perl6
07:36 elmex joined perl6
07:37 macroron joined perl6
07:43 macroron joined perl6
07:49 drbean_ joined perl6
08:32 lisppaste3 joined perl6
08:33 Ymmv joined perl6
08:49 buubot joined perl6
08:59 svnbot6 r10399 | spinclad++ | - JudyHS: still stubbed out, but at least compiles now.
08:59 dok left perl6
09:03 Southen joined perl6
09:26 buubot joined perl6
09:51 bjoern_h is now known as bjoern_
09:53 drrho joined perl6
09:56 kanru joined perl6
10:22 Aankhen`` joined perl6
10:31 elmex joined perl6
10:41 miyagawa ping audreyt
10:42 ludan joined perl6
10:42 ludan hi
10:48 Jakab922 joined perl6
10:58 neoesque joined perl6
11:43 mako132_ joined perl6
12:00 jsiracusa joined perl6
12:04 neoesque joined perl6
12:05 avar joined perl6
12:08 sahadev joined perl6
12:13 GeJ is audrey stuck in $job?
12:15 svnbot6 r10400 | scw++ | Pugs::Compiler::Rule ratchet
12:15 svnbot6 r10400 | scw++ |  * <subrule> generates correct match object
12:15 svnbot6 r10400 | scw++ |  * match with :p flag set "from" correctly
12:15 svnbot6 r10400 | scw++ |  * compile_p6grammar.pl now parse with ratchet, extremely fast
12:19 elmex joined perl6
12:20 Limbic_Region joined perl6
12:30 iblechbot joined perl6
12:31 weinig|sleep is now known as weinig
12:45 lichtkind joined perl6
13:17 lichtkind i heard that signitures will be renamed?
13:31 elmex joined perl6
13:37 bjoern_ joined perl6
13:39 hexmode joined perl6
13:43 svnbot6 r10401 | fglock++ | PCR - implemented :sigspace - in :ratchet mode only
13:47 mj41_ joined perl6
13:48 froh-doh joined perl6
13:54 fglock joined perl6
14:02 iblechbot_ joined perl6
14:12 stevan_ joined perl6
14:20 hexmode` joined perl6
14:21 PerlJam lichtkind: renamed to what?
14:22 lichtkind in this point rumors were unclear :) but it were usually well informed circles :)
14:23 vytautas joined perl6
14:23 lichtkind i just ask because im currently on chapter 6: subroutines so i would like to know
14:37 ruz joined perl6
14:40 hexmode joined perl6
14:53 elmex joined perl6
15:19 lichtkind PerlJam so it wasnt renamed?
15:19 PerlJam Oh, I don't know.  I haven't heard anything.
15:21 PerlJam Although I don't see why signatures need a new name.  Captures might but only in certain contexts, but because that name works in most contexts, it's probably going to stay.
15:25 hexmode joined perl6
15:28 vel joined perl6
15:40 Nouk joined perl6
15:48 Limbic_Region joined perl6
15:48 justatheory joined perl6
15:49 PerlJam http://use.perl.org/~luqui/journal/
15:49 * Limbic_Region is saddened to read that luqui is leaving the p6 design team
15:49 PerlJam yep
15:50 PerlJam I'd noticed his absence but thought it was all about school.
15:50 Limbic_Region me too
15:50 aufrank joined perl6
15:50 * Limbic_Region followed his other blog http://luqui.org anticipating news and was shocked
15:51 Limbic_Region it sounds like it amounted to creative differences
15:51 geoffb joined perl6
15:51 PerlJam I guess.
15:51 PerlJam My reading makes it come down to "it stopped being fun for me"
15:53 Limbic_Region right, but the reason I read into it being no longer fun was creative differences
15:53 PerlJam sure.
15:53 szbalint http://www.vulnscan.org/UnrealIRCd/​unreal32docs.html#userchannelmodes
15:53 szbalint erm
15:53 szbalint wrong window
15:57 rgs joined perl6
15:59 weinig is now known as weinig|away
16:00 Ymmv joined perl6
16:03 jserv-- joined perl6
16:08 Nouk joined perl6
16:08 bjoern_ joined perl6
16:10 Nouk left perl6
16:27 clkao scw++
16:27 clkao scw++
16:29 svnbot6 r10402 | clkao++ | Clean the generated MiniPerl.pm on make clean.
16:40 elmex joined perl6
16:48 fglock joined perl6
16:50 elmex joined perl6
16:51 weinig|away is now known as weinig
16:58 lichtkind thanks PerlJam capures refer to block right?
17:02 PerlJam captures are what "matches" a signature.  They replace references and can be used in all sorts of places in perl6  (the name comes from one particular use: captured items in regexes)
17:05 aufrank audreyt calls Captures the "dual" of signatures
17:05 aufrank Signatures, that is
17:05 aufrank scw: ping?
17:06 PerlJam Captures are a multi-view of a set of values.  What view you get depends on the context in which you use them.
17:07 aufrank well said
17:09 m_ joined perl6
17:23 elmex joined perl6
17:35 ruoso joined perl6
17:39 lichtkind PerlJam yes well said but im still new to this all so i have to read more s
17:42 mago joined perl6
17:42 chip seen audreyt
17:43 obra chip: she's very nose-down at work this week.
17:43 obra Big deadline
17:43 chip darn
17:43 chip anybody here know the Parrot targeting of Pugs very well?
17:43 chip or somewhat well?  well enough to look for something?
17:45 aufrank chip: you might as well just ask
17:45 PerlJam "parrot targeting of pugs"?  That sounds backwards :)
17:45 * chip locks and loads his parrot
17:45 aufrank maybe she'll backlog later :)
17:46 chip Is Pugs using the "die" opcode?  It's on the chopping block
17:46 obra I presume there's some other way to get the same functionality? Pugs will adapt. It always does ;)
17:47 aufrank chip: I thought you guys only added opcodes ;)
17:47 aufrank *rimshot*
17:47 chip aufrank: I'm not your father's Oldsmobile.  or something.
17:47 obra chip: you're not anybody's oldsmobile.
17:47 obra They don't make em no more.
17:48 PerlJam chip: not definitive but the only instances of "die" I see in my pugs tree are perl-dies
17:48 chip last I looked there's no Chip assembly line.
17:48 aufrank chip: I think the bigger question is whether PGE is using it right now-- is pmichaud in on the un-die-ing?
17:48 chip PerlJam: kthnx
17:49 chip aufrank: he ok'd it in #parrot
17:49 aufrank word
17:49 pmichaud in general pge should be able to adapt to whatever changes parrot throws at it, at least for a while :-)
17:49 aufrank hi pmichaud
17:49 pmichaud for now, PGE isn't using die. :-)
17:49 pmichaud hi, aufrank!
17:52 aufrank pmichaud: I've been meaning to ask for a while: what do I do once I've written a .pg file?
17:52 pmichaud compile it through pgc
17:52 aufrank How do I load it and then use its rules in matches?
17:53 pmichaud I need to write up a good example, beyond what is currently being done in the languages/ subtree
17:53 DaGo joined perl6
17:54 aufrank I'll help if you like
17:54 pmichaud pgc converts the .pg files into PIR, which can then be loaded or included in a larger program
17:54 pmichaud calling a rule is just like calling a parrot sub at that point
17:54 aufrank I see
17:54 pmichaud (since rules are subs)
17:55 pmichaud I'll see if I can put together a short example
17:56 aufrank that'd be great!
18:00 PerlJam pmichaud: and article for perl.com would be great too  :-)
18:01 PerlJam (even if the syntax isn't final)
18:01 pmichaud syntax is fairly final, since it's essentially p6 regex syntax :-)
18:15 weinig_ joined perl6
18:16 ruoso !seen fglock
18:16 aufrank seen flglock?
18:17 aufrank seen fglock
18:17 ruoso . o O ( Is the bot around? )
18:17 * aufrank can never remember the syntax we use around here
18:20 larsen_ joined perl6
18:29 svnbot6 r10403 | fglock++ | PCR - added new classes: Pugs::Compiler::Regex, Pugs::Compiler::Token;
18:29 svnbot6 r10403 | fglock++ | - Pugs::Compiler::Rule defaults to :ratchet,:sigspace
18:29 svnbot6 r10403 | fglock++ | - updated all tests
18:29 fglock joined perl6
18:30 fglock aufrank: pong
18:30 aufrank fglock: I was trying to help ruoso find you
18:30 ruoso fglock, hi
18:30 aufrank but, hi!
18:30 ruoso fglock, mago was looking for you
18:31 aufrank wow, this is getting complicated
18:31 ruoso heh
18:31 ruoso fglock, btw... I was thinking in implement a latex parser with PCR
18:31 ruoso fglock, do you think it applies?
18:32 fglock ruoso: I don't know latex, but it's probably ok
18:32 fglock PCR is much faster now - you can use token/rule, which default to inlined code
18:33 ruoso nice...
18:34 aufrank fglock: very cool
18:34 aufrank I need to read through scw's miniperl and see how he's using it
18:35 fglock it might be broken after the latest PCR commit - the default switches changed
18:35 fglock aufrank: see Pugs-Compiler-Rule/t/*
18:35 aufrank will od
18:35 aufrank do
18:36 ruoso fglock, is the cpan version near to up-to-date?
18:36 fglock ruoso: it's from 3 days ago
18:36 fglock it doesn't have :sigspace, but :ratchet is ok
18:38 ruoso fglock, I think it's up-to-date enough to me :)
18:38 aufrank fglock: you're waiting to hear about an SoC project, aren't you?
18:39 fglock aufrank: yes
18:39 aufrank good luck :)
18:39 obra fglock: which was yours?
18:39 fglock ruoso: the version in CPAN implements 'Regex', but calls it 'Rule'
18:40 ruoso ok
18:40 fglock obra: implementation of p6 base objects in p5, to be used by p6->p5
18:41 fglock aufrank: thanks
18:41 obra Cool.
18:41 obra When do they tell you?
18:41 fglock today :)
18:42 bpederse joined perl6
18:42 aufrank I was hoping for much earlier today ;)
18:42 szbalint Today is relative. It is tomorrow for me :)
18:42 aufrank well then they should have told us by now!
18:43 szbalint I think their plan is to publish at 5 PDT
18:45 szbalint aufrank: did you apply aswell?
18:45 fglock ruoso: a discussion on the Latex grammar: http://www.codecomments.com/a​rchive285-2004-4-158360.html
18:49 aufrank szbalint: yes.  IDE support library for parsing perl6
18:49 Ymmv joined perl6
18:49 aufrank and what was your proposal, szbalint?
18:50 ruoso fglock, interesting discussion... but, indeed, I'm planning a parser for specific usage, not a general latex parser...
18:51 ruoso unkown commands will just stay as they are...
18:51 ruoso s/unkown/unknow/
18:53 aufrank fine, szbalint, don't answer :P
18:54 szbalint aufrank: wait a sec
18:55 szbalint http://www.nntp.perl.org/group/perl.dbdi.dev/50
18:55 szbalint Basically redesigning dbi internals in Perl 6.
18:56 aufrank very cool.  I look forward to seeing what you produce :)
18:57 bjoern_ is now known as clue
18:58 szbalint Likewise. :)
18:58 svnbot6 r10404 | fglock++ | PCR - updated docs
18:59 clue is now known as bsh
19:01 FurnaceBoy joined perl6
19:04 weinig_ is now known as weinig
19:07 ludanolo joined perl6
19:07 svnbot6 r10405 | fglock++ | PCR - updated benchmark.pl to use Rule/Token/Regex
19:07 ludanolo is now known as ludan
19:12 spinclad TimToady, if you're about: S02 seems to say  "\x41,42,43"  should be  "ABC", like  "\x[41,42,43]"  (but is perhaps unclear); i would expect commas to work only inside brackets (for least chance of collision with surroundings), so:  "A,42,43" .
19:12 spinclad could you say which is your intent?
19:18 amv_ is now known as amv
19:34 TimToady spinclad: I would expect comma to work only in brackets as well.
19:39 spinclad "Multiple characters may be put into any of these by separating the numbers with comma: C<"\x[41,42,43]">." (more)
19:40 spinclad "any of these" confused me -- it's not clear it means the bracketed form only.
19:42 spinclad (but i seem to be the only one confused by this so far.)
19:43 Limbic_Region better to keep quiet and be perceived a fool^H^H^H^H^H^Hconfused then to open one's mouth and remove all doubt
19:45 spinclad no worries.  i'd rather be transparently confused if it saves one other
19:49 sri__ joined perl6
19:55 TimToady Okay, fixed.
19:55 particle_ spinclad++ timtoady++
19:55 penk joined perl6
19:55 Limbic_Region seconded (spinclad++ TimToady++) that is
20:01 spinclad $Larry++
20:03 particle_ i'm implementing some builtins for perl6, and have a question about the prototype sigs
20:03 particle_ eg. "proto abs($?) { ... }"
20:03 particle_ i expect this means the param is optional
20:04 particle_ and if not passed, abs() operates on the current topic.
20:04 particle_ is this correct?
20:07 svnbot6 r10408 | fglock++ | t/syntax/hexadecimal.t - added a test for "\x[41,42,43]" - spinclad++
20:07 svnbot6 r10409 | fglock++ | t/syntax/hexadecimal.t - added a test for "\x41,42,43" eq 'A,42,43'
20:10 coumbes joined perl6
20:10 avarab joined perl6
20:11 fglock left perl6
20:23 bjoern_ joined perl6
20:24 pmichaud TimToady: in S02, is it still the case that only square brackets can be used in the \x[...], \d[...], etc. forms?
20:25 * particle_ closes his eyes and hopes timtoady says, "yes."
20:26 spinclad having just read it, i can say 'yes'
20:26 particle_ although, i guess it's not that hard to implement (), {}, <>
20:26 particle_ S02 definitely says it now, as of today.
20:26 pmichaud pge implements all of [], (), {}, <> based on something TimToady had conjectured earlier when \x was being discussed
20:27 pmichaud i.e., I'm wondering if it should be limited to square brackets only in regexes as well
20:27 particle_ yep, that's why i said it wouldn't be too hard to implement those :)
20:27 particle_ i really like your code for parsing those bracket types
20:29 pmichaud thanks :-).  Developed it when writing PGE::Text::bracketed :-)
20:31 spinclad it's been \x[] square-brackets-only since november, at least
20:31 pmichaud yes, that's when it was discussed.  I'm checking the p6l posts now
20:32 larsen joined perl6
20:32 spinclad (svn blame)++
20:36 obra    
20:37 wolverian really?
20:39 obra Really
20:39 wolverian fascinating. tell us more!
20:40 szbalint :))
20:40 particle_     ++
20:41 ruoso . o O ( people in this channel need some beer :) )
20:41 Bleadof ;)
20:46 fglock joined perl6
20:53 * chip has had enough beer, but isn't in this channel, so never mind
20:58 bpederse_ joined perl6
21:04 avarab is now known as avar
21:10 fglock left perl6
21:15 rdice joined perl6
21:19 leo chip: any thoughts WRT the .Integer / .BigInt method dispatch problem?
21:21 chip hm? not sure what you mean
21:22 leo cl = subclass 'MyInt', 'Integer' ... / .namespace ['MyInt'] / .sub some_meth ...
21:22 leo the meth is lost as soon as Integer upgrades to BigInt
21:23 chip why?
21:23 leo I've posted the example and it's also in PMC.pod on feather
21:23 chip I mean, deriving from a morphing class is likely to stay weird, if not broken, but I odn't know why that would happen
21:24 chip sample code doesn't answer 'why'
21:25 chip not that I've seen the code
21:26 leo why is: because methods are attached to the MyInt namespace which isa 'Integer' and not a 'BigInt'
21:26 chip still no 'why' there.
21:26 chip oh, wait, you don't mean "upgrade" when you say "upgrade"
21:27 chip the object is not morphing, you're describing the creation of a new object
21:27 chip well, that's user error.  If any of MyInt's methods (including inherited methods) return an object of type other than MyInt, tha'ts not Parrot's fault
21:29 leo that would mean that a user has to overload all possible methods to be on the safe side, it seems
21:29 Ymmv joined perl6
21:31 chip well, yeah.  at which point derivation becomes somewhat pointless.  but this is nothing we can help.  the only amelioration possible is to narrow the vtable interface ot make it easier to override, but that makes other efficiencies impossible.
21:32 leo to me it looks like: if we provide an Integer type that also supports bigint, it should be transparent to the user
21:32 chip besides, how is Parrot supposed to know what the result of MyInt++ is "supposed" to be?  You tell it "act like an Integer", it does
21:32 chip I don't think "transparent" is a transparent enough term for you to use in this context
21:33 leo it acts like an integer -all ok- but if user does 'print the_int' and __get_string' is overloaded, it doesn't dispatch anymore properly
21:34 leo because MyInt !isa BigInt in MRO
21:34 chip well, here's the problem.
21:34 leo MRo has still 'Integer'
21:34 chip "MRo"?
21:34 leo MRO - method resolution order, i.e. class + (parents)
21:35 chip so far you're not at all making sense to me.
21:35 chip first you're saing (in other contexts) that $P0++ may mean that $P0 is no longer the same object it used to be.
21:36 chip essentially, $P0++ may mean   $P999 = new .SomeOtherClass; $P999 = $P0; $P999++; $P0 = $P999    # where SomeOtherClass is BigInt in this example
21:36 chip in that case, MyInteger is no longer part of the picture in any way whatsoever.
21:36 chip so MRO is a red herring
21:36 leo no, $P0 has a .Integer attribute, which turns itself into a BigInt
21:36 chip "turns itself"?
21:36 chip morphing?
21:37 leo the object is the same
21:37 chip Integer morphs?
21:37 leo the attribute is morhping, yes
21:37 pmichaud afaic, perl's Int objects have to support bigin semantics
21:37 pmichaud sorry, bigint
21:37 leo pmichaud: yep
21:37 pmichaud if parrot's .Integer does that, great, if not, then we build our own Int class
21:37 chip oh for crying out in the beer
21:38 leo pmichaud: that's not the problem - its how to implement it correctly
21:38 chip Leo, deriving from a morphing object either needs to work, or needs to be forbidden so that the 'newclass' opcode simply fails
21:38 leo all PMCs are morphing you know ;-)
21:38 pmichaud leo:  why is "implement it correctly" a problem?
21:38 chip the latter has implications that I will not discuss yet.
21:38 chip leo: now you're not being helpful at all.
21:39 chip please stop going for the clever line and try to be helpful.
21:39 chip some PMCs morph, many don't.
21:39 leo $P0 = new .Integer ; $P0 = 5.3 # now a Float / $P0 = 'foo' # now a String
21:39 chip it is possible for Parrot to forbid a morph attempt unless a PMC has advertised an "I morph" flag.
21:39 chip fine.
21:39 bjoern_h joined perl6
21:39 pmichaud perl 6 is not expecting to use the morphing semantics described here
21:40 leo sure, it impelemts assign or not
21:40 leo implements even
21:40 leo pmichaud: I know
21:40 leo PMCs were designed at times hwen p5 was modern ;)
21:40 chip leo: irc isn't working for us on this topic.
21:41 leo chip: let's just take plain scalars into account for now - these all are morhing now
21:42 chip leo, you haven't got the knack of figuring out the nature of how people think differently from you based on what they say that is "wrong" from your POV
21:42 chip email is better as a result
21:42 chip it forces you to explain more.
21:43 leo or personal meeting?
21:43 chip in-person has the non-verbal cues advantage
21:50 leo like throwing hammers ;)
21:50 chip well, and drawing diagrams & the timing of saying things while drawing "this line conncts X and Y", etc.
21:52 leo if I find some time, I'll try to summarize some more PMC layout thoughts into docs/2.0 (if that's the place to use)
21:56 szbalint personal meetings have the advantage of being able to observe serious cigarette rolling skills. :)
21:58 chip no, docs/2.0 is not the place for that
21:58 chip I don't want design ideas yet
21:58 chip All I want is an understanding of why, in what manner, for what reason, what is the mechanism of, there is a failure of finding MyInt::method when Integer morphs.
21:59 chip You simply can't treat a patient until you understand his illness.
22:16 fglock joined perl6
22:20 larsen joined perl6
22:40 fglock left perl6
22:41 bpederse joined perl6
23:01 nothingmuch joined perl6
23:04 Khisanth joined perl6
23:12 SubStack joined perl6
23:38 jsiracusa joined perl6
23:41 Quell joined perl6
23:56 Daveman joined perl6

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

Perl 6 | Reference Documentation | Rakudo