Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-01-29

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:01 hypolin joined #perl6
00:16 dalek rakudo/nom: 680b6c5 | (Rob Hoelz)++ | src/core/Set.pm:
00:16 dalek rakudo/nom: Remove redundant sort
00:16 dalek rakudo/nom:
00:16 dalek rakudo/nom: This speeds up Set creation by about 33%
00:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/680b6c5300
00:16 dalek rakudo/nom: 1ec4c93 | (Matthew Wilson)++ | src/core/Set.pm:
00:16 dalek rakudo/nom: Merge pull request #248 from hoelzro/nom
00:16 dalek rakudo/nom:
00:16 dalek rakudo/nom: Remove redundant sort
00:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1ec4c931fc
00:17 diakopter hoelzro++
00:23 tgt joined #perl6
00:34 * clsn invented pseudo lvalue methods in Python from the way it's done in Perl6.  Bottom of http://stackoverflow.com/questions/9965115/returning-an-lvalue-from-a-function-in-python  What fun.
00:40 Vlavv_ joined #perl6
00:41 cognominal joined #perl6
00:48 tgt joined #perl6
00:52 sftp joined #perl6
01:04 rurban1 joined #perl6
01:10 xenoterracide joined #perl6
01:28 jeffreykegler1 joined #perl6
01:32 jnap joined #perl6
01:33 jeffreykegler joined #perl6
01:40 bjz joined #perl6
01:48 tgt joined #perl6
01:50 rurban1 joined #perl6
01:50 slavik joined #perl6
01:56 rurban1 joined #perl6
01:59 rurban1 joined #perl6
02:03 jnap joined #perl6
02:09 skids joined #perl6
02:21 FROGGS_ joined #perl6
02:31 benabik joined #perl6
02:49 tgt joined #perl6
02:50 rurban1 joined #perl6
03:06 krunen joined #perl6
03:14 telex joined #perl6
03:28 grondilu joined #perl6
03:33 rurban1 joined #perl6
03:34 sftp joined #perl6
03:50 tgt joined #perl6
03:52 rurban1 joined #perl6
04:08 konnjuta joined #perl6
04:14 rylinaux_ joined #perl6
04:15 rylinaux- joined #perl6
04:15 dagurval joined #perl6
04:16 rylinaux joined #perl6
04:23 rurban1 joined #perl6
04:28 rurban1 joined #perl6
04:32 slavik joined #perl6
04:41 dayangkun_ joined #perl6
04:49 raydiak am I correct that "IO::Path::D" under chdir and visitdir in S32::IO should actually be "IO::Path:D"?
04:51 tgt joined #perl6
04:51 grondilu most probably, yes
04:52 dalek specs: d4730c2 | raydiak++ | S32-setting-library/IO.pod:
04:52 dalek specs: Fix typos
04:52 dalek specs: review: https://github.com/perl6/specs/commit/d4730c2fb5
04:57 skids r: sub a (Int :D) { 1 } # LTA error
04:58 camelia rakudo-jvm 1ec4c9: OUTPUT«===SORRY!===␤Can not invoke this object␤»
04:58 camelia ..rakudo-moar 1ec4c9: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: P6opaque, cs = 0)␤»
04:58 camelia ..rakudo-parrot 1ec4c9: OUTPUT«===SORRY!===␤invoke() not implemented in class 'QAST::Op'␤»
05:10 FOSScookie joined #perl6
05:10 FOSScookie left #perl6
05:14 SamuraiJack joined #perl6
05:51 tgt joined #perl6
05:56 itz joined #perl6
05:59 kaleem joined #perl6
06:00 Biohazard joined #perl6
06:14 zby_home joined #perl6
06:30 [Sno] joined #perl6
06:42 jeffreykegler left #perl6
06:49 darutoko joined #perl6
07:17 diakopter gah; where'd host07 go
07:20 raydiak joined #perl6
07:22 camelia joined #perl6
07:33 camelia joined #perl6
07:35 brrt joined #perl6
07:37 FROGGS joined #perl6
07:42 dmol joined #perl6
07:49 sivoais joined #perl6
07:56 berekuk joined #perl6
08:00 zakharyas joined #perl6
08:02 tgt joined #perl6
08:03 V_S_C joined #perl6
08:05 V_S_C Yesterday I was working around nqp build errors with standalone parrot VM on Windows.
08:06 V_S_C https://gist.github.com/VSChawathe/b592ed55f507d66404ce
08:06 logie_ joined #perl6
08:10 takesako joined #perl6
08:19 berekuk joined #perl6
08:26 salv0 joined #perl6
08:28 [Sno] joined #perl6
08:48 arnsholt skids: That's a parsefail/codegenfail I think
08:48 arnsholt Yeah, it bails with --target=ast as well
08:58 timotimo o/
09:04 Rotwang joined #perl6
09:04 rindolf joined #perl6
09:13 xenoterracide joined #perl6
09:24 pecastro joined #perl6
09:28 hoelzro morning #perl6!
09:28 krunen joined #perl6
09:29 timotimo morning :)
09:36 slavik joined #perl6
09:40 as joined #perl6
09:42 as hi everyone,
09:43 * timotimo is having some trouble with smallbigint :|
09:45 as i tried to execute the code snipped posted on site (http://stackoverflow.com/questions/254345/how-can-i-extract-url-and-link-text-from-html-in-perl) using online/web based compilers like (compilr.com/ideon.com/equivalent)as i dont have any local set up/installation
09:46 as it failed
09:46 as can anyone help me out?
09:46 timotimo i'm sorry, but you got the wrong channel
09:46 timotimo this channel is about perl6, you want help with perl5
09:47 dakkar joined #perl6
09:47 as timotimo does perl5 have any online compiler?
09:47 as sorry perl6
09:47 tadzik I think ideone.com can run perl 5 code
09:47 tadzik but it may not have the modules you want
09:48 tadzik why not just run stuff locally? :)
09:48 timotimo not at the moment; though there is perlito which can translate a quite limited subset of perl6 to javascript and execute that in your browser
09:48 as tadzik the code which i posted use importing & loading library/module called as Mecahnize
09:48 as & that is why such onelin site says failre in runnning
09:48 tadzik yeah, it's not a builtin module
09:48 as is there any other option to run the code(having libarry/module)
09:52 hoelzro timotimo: I think it should be called Little Big Int
09:54 timotimo heh.
09:54 timotimo yeah, that does sound nice
09:54 hoelzro timotimo: do you know the game "Little Big Planet"? =)
09:54 timotimo yeah
09:54 timotimo i've played both titles :3
09:58 hoelzro ok, just making sure you got the reference =P
09:59 timotimo that's funny. i'm having problems with references to little big integers ...
09:59 hoelzro hahaha
09:59 timotimo 0x4000000009 doesn't seem like a valid pointer to me.
10:00 hoelzro indeed
10:00 hoelzro a very suspicious value
10:00 timotimo hm. the numbers could come from neglecting to zero out the unnecessary fields when turning a bigint into a littlebigint
10:03 hoelzro zero out *all* the things!
10:11 masak good antenoon, #perl6
10:13 hoelzro ahoy masak!
10:13 masak ahoy, and avast!
10:14 moritz \o masak, hoelzro, timotimo, *
10:14 timotimo heya moritz
10:14 hoelzro howdy moritz
10:19 kurahaupo_mobile joined #perl6
10:22 kurahaupo_mobile left #perl6
10:23 ggoebel1113 joined #perl6
10:25 pdcawley joined #perl6
10:48 moritz debian upgrade, y u restart my mysql daemon?
10:55 grondilu .oO(because it's been upgraded?)
10:56 * masak .oO( because daemons can be HUP'd and it's no big deal? )
11:01 nwc10 moritz: is midnight 23:00 again?
11:01 moritz nwc10: I hope not :/
11:12 masak sounds rather unfortunate.
11:12 kaare_ joined #perl6
11:13 tadzik chrome-extension://oemmndcbldboiebfnladdacbdfmadadm/http://sd.jtimothyking.com/wp-content/uploads/2013/12/Benchmarking-Perl-6-How-Ready-for-Prime-Time-Is-It-revised.pdf surprises me
11:13 tadzik uhh
11:14 tadzik http://sd.jtimothyking.com/wp-content/uploads/2013/12/Benchmarking-Perl-6-How-Ready-for-Prime-Time-Is-It-revised.pdf is what I mean
11:14 tadzik it mentions forest fire that runs at 32 fps. I'd like to see that :)
11:16 tadzik and other things I never knew we can run
11:19 colomon why does while_empty have two different graps?
11:19 colomon graphs?
11:19 colomon is the revised part the second graph?
11:20 kaare_ joined #perl6
11:21 tadzik darkpan!
11:21 Timbus its the same graph, but with the jvm version being extended. might have been a memory issue
11:34 corecatcher good morning
11:35 FROGGS morning corecatcher
11:52 broquaint joined #perl6
12:16 brrt joined #perl6
12:25 moritz rakudo-j build fails here
12:25 moritz OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000bd280000, 346030080, 0) failed; error='Cannot allocate memory' (errno=12)
12:26 moritz Native memory allocation (malloc) failed to allocate 346030080 bytes for committing reserved memory.
12:26 moritz this is a machine with 4GB memory, and rakudo-j build used to work fine here
12:29 * moritz tries to bisect whether it's rakudo parrot
12:29 moritz erm
12:29 moritz whether it's rakudo or nqp
12:31 moritz (that was after stage jast)
12:32 moritz or maybe it was an openjdk update, or something
12:36 grondilu moritz: do you want to know why it failed or do you just want it to work?  Because if you just want it to work you can consider adding some swap.  I do that sometimes when I fail to compile rakudo.
12:36 moritz grondilu: I emphatically don't want to add swap to this machine.
12:37 moritz grondilu: I want programs to be killed quickly in an OOM situation, not swap for 2 hours and then getting killed
12:38 moritz and 4GB should be enough for building rakudo, IMHO
12:38 moritz if not, I'm in trouble.
12:38 atroxaper joined #perl6
12:38 grondilu yeah but maybe you have other process eating RAM
12:43 * moritz restarts firefox to save some RAM
12:44 moritz ok, rakudo 396a2d3db4c08edc0d1fe11cde02ae25161e808c with nqp 2014.01-3-g080ce0b builds
12:46 moritz as does rakudo/nom with the same NQP
12:46 moritz now double-checking with a new nqp/master
12:46 moritz oh, and my nom is behind
12:50 * colomon just nommed, and feels sorry for moritz
12:51 dakkar joined #perl6
12:52 yoleaux joined #perl6
12:54 moritz better than nom coming back :-)
12:54 colomon ;)
12:58 moritz ok, all fine now
12:58 moritz after git clean -xdf and restarting firefox :-)
13:09 stevan_ joined #perl6
13:25 kaleem joined #perl6
13:25 krunen joined #perl6
13:37 atta joined #perl6
13:50 kbaker joined #perl6
13:59 ajr joined #perl6
14:09 slavik joined #perl6
14:12 kaare_ joined #perl6
14:27 smls joined #perl6
14:28 jnap joined #perl6
14:30 smls grondilu: You there?
14:33 smls .tell grondilu Can you explain why you replaced the scalar parameter with a a sigil-less one at http://rosettacode.org/wiki/Averages/Simple_moving_average#Perl_6 ? What difference does it make (other than making the last line "P R/  [+] @a;" look slightly obfuscated)?
14:33 yoleaux smls: I'll pass your message to grondilu.
14:38 bluescreen10 joined #perl6
14:40 grondilu I tend to not use sigils for read-only function parameters of only-one-letter namme.  I'm not the only one to do that.  I've noticed that TimToady also does it quite often on RC
14:40 yoleaux 14:33Z <smls> grondilu: Can you explain why you replaced the scalar parameter with a a sigil-less one at http://rosettacode.org/wiki/Averages/Simple_moving_average#Perl_6 ? What difference does it make (other than making the last line "P R/  [+] @a;" look slightly obfuscated)?
14:42 grondilu it's mostly a aesthetical choice, but I have other motives a bit long to explain.
14:44 masak I still find the sigil-less variables very weird.
14:44 grondilu it's not hard to get used to, though.
14:45 masak guess not.
14:45 masak if I saw 'P' in code without more context than that, I would guess that P is a class, role or enum.
14:45 masak not a local parameter.
14:46 grondilu well, maybe a lower case would be more appropriate indeed
14:46 [Coke] I like sigilless only when it's a constant or when trying to avoid coercion when invoking a sub.
14:46 grondilu but "P" was the name suggested in the task description.
14:47 masak also, for readability, I would *never* go 'P R/ [+] @a' in code. YMMV, of course, but getting rid of the parens is not "worth" screwing up the order of division for me.
14:47 masak I would go '([+] @a) / P' and find that oogles of orders more readable.
14:48 grondilu what do you mean by "screwing up the order of division" ?
14:48 colomon he means using R/ instead of /
14:48 grondilu it's only syntaxic.  The division is still in the same order :/
14:48 masak the code currently reads "we're gonna divide by P, and here's the numerator"
14:48 masak it's screwing up the *reading* order.
14:48 masak the order the brain needs to process it.
14:48 markov Other languages show readible examples with a bit of explanation.  Would be nice for Perl5&6 examples as well.
14:49 grondilu it could become an idiom, then the brain adapts to it.
14:49 masak grondilu: yes. but.
14:49 colomon we'd rather it didn't become an idiom.  :)
14:49 masak grondilu: every idiom has a benefit and a cost. that's all I'm saying.
14:49 masak to me, the cost is high in this case, and the benefit negligible.
14:50 masak if it were APL or Perl 6 golf, I would see the benefit.
14:50 colomon what is the benefit, other than saving a character?
14:50 grondilu well, it depends how much you dislike parenthesis.  I really don't like them at all, but maybe I'm exceptional to this regard.
14:50 masak yeah, that would explain it.
14:50 colomon grondilu: not a Lisp programmer, eh?
14:51 masak I've had code refactored by you before on RC that removed parens but made readability worse :)
14:51 grondilu masak: that's very possible, sorry.
14:51 masak no worries.
14:52 masak I don't remember which one it was.
14:52 timotimo i like sigilless if it's a mathematically sensible symbol
14:52 masak we all have slightly different local minima.
14:52 masak and more importantly, we're evolving idioms. and discussing them.
14:52 timotimo greek letters, ℕℝ∂Δ etc :)
14:52 masak timotimo: oh. agree.
14:52 masak let's call that "mathematical Perl 6 prose" :)
14:52 masak not all code should be like that, though.
14:53 timotimo yes.
14:53 grondilu it'd be nice if TimToady could write something about programming style standards in Perl 6
14:53 FROGGS +1
14:54 colomon isn't the p6 solution actually wrong?
14:54 btyler joined #perl6
14:54 colomon at least (as I read it), it looks like if you give it one or two numbers and average, you get the numbers you've entered averaged with 0
14:54 moritz I could be wrong, but my impression is that the conding style still evoves
14:55 timotimo the condiment style?
14:55 colomon for nom
14:55 benabik joined #perl6
14:55 timotimo i generally prefer ketchup and mayo over mustard
14:55 colomon I detest mayo and mustard
14:55 timotimo we have a little bit in common then :)
14:56 masak colomon: the assignment on the 'state' line is only eval'd once per returned sub, not once per call.
14:56 colomon right, but 0 state isn't correct
14:56 [Coke] A usage/output example on that block would be helpful.
14:56 colomon +1
14:56 [Coke] s/usage/program that generates output/
14:57 masak well volunteered ;)
14:57 [Coke] I don't know what the hell it's supposed to do.
14:57 skids joined #perl6
14:57 * [Coke] just wants testable code. :)
14:57 colomon p: https://gist.github.com/colomon/8689734
14:57 camelia rakudo-parrot 1ec4c9: OUTPUT«0.3␤0.8␤»
14:57 colomon output should be 3, 4, IMO
14:58 grondilu colomon: yes it's "wrong" for the ten first numbers, but assuming zero for all past values before first data is not absurd.
14:58 grondilu s/ten/P/
14:58 colomon prior to P numbers, assuming zero is wrong.  after P numbers it's irrelevant
14:59 [Coke] the example seems to assume zero only if your stream is empty.
14:59 [Coke] and then max(P,length_of_stream) elements are used.
15:00 grondilu oh come on, it's a stream of numbers.  The very first ones don't matter much.  Think signal theory.  Nobody cares that much about the limit conditions.
15:01 masak I think I agree with colomon.
15:01 colomon p: https://gist.github.com/colomon/8689734
15:01 camelia rakudo-parrot 1ec4c9: OUTPUT«1␤1␤1.333333␤2␤»
15:01 masak it's sort of one assumption less to just have the array start out empty and then fill up for the first numbers.
15:01 masak but if the task doesn't specify, it's under-specified.
15:01 masak OTOH, if the task doesn't mention zeroes, then the solution shouldn't assume them either.
15:02 colomon task psuedo code clearly does not average with zeros at beginning
15:03 [Coke] IWBNI the tasks said "your code must output the following..."
15:03 [Coke] then you could clearly comply or not.
15:04 dalek rakudo-star-daily: b8883c0 | coke++ | log/ (5 files):
15:04 dalek rakudo-star-daily: today (automated commit)
15:04 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/b8883c02ef
15:04 logie_ joined #perl6
15:05 [Coke] DBIish is failing tests against r*
15:05 tadzik bah
15:05 colomon against r-p, too
15:05 tadzik I wanted to make the release today
15:05 colomon so is DB::Model::Easy
15:05 tadzik I hope I didn't break zavolaj
15:05 colomon nothing else unusual is failing in the smoker.
15:05 [Coke] zavolaj isn't failing any tests.
15:06 tadzik yeah, but DBIish is
15:06 [Coke] if you broke zavolaj, it needs better tests. :)
15:06 tadzik troo
15:07 tadzik http://upload.wikimedia.org/wikipedia/commons/a/ae/Tr%C3%B4o_1.JPG :D
15:08 [particle] joined #perl6
15:11 colomon m: https://gist.github.com/colomon/8689734
15:11 camelia rakudo-moar 1ec4c9: OUTPUT«1␤1␤1.333333␤2␤»
15:12 arnsholt [Coke]: What kind of failures?
15:12 smls the Python solution was added by the original author of the task, and it doesn't assume 0's
15:12 grondilu smls: for some reason your revision doesn't show up, even when I refresh the page :/  (tried several times)
15:13 grondilu .oO(probably an issue with RC)
15:13 smls I only revised the Perl section; didn't touch the Perl 6 one
15:13 grondilu oh
15:13 grondilu k
15:18 thou joined #perl6
15:19 [Coke] arnsholt: https://github.com/coke/rakudo-star-daily/blob/master/log/test-modules.log //fail
15:19 [particle] joined #perl6
15:19 [Coke] No such private method 'errstr' for invocant of type 'DBDish::Pg::Connection'
15:20 rindolf joined #perl6
15:20 [Coke] using 8b39acbfb63c07da2e2282cfea9c83562608b83d by moritz from jan-18
15:24 moritz [Coke]: do you have a line of bactrace as well?
15:28 [Coke] nope.
15:28 [Coke] just the prove output.
15:28 moritz :(
15:29 dalek DBIish: 6e8b1c7 | moritz++ | lib/DBDish/Pg.pm6:
15:29 dalek DBIish: [Pg] make errstr public
15:29 dalek DBIish: review: https://github.com/perl6/DBIish/commit/6e8b1c7a0e
15:30 moritz that's just a shot in the dark
15:30 [Coke] that url is failing.
15:31 [Coke] (the review one)
15:31 [Coke] oh, it's linewrapped.
15:31 [Coke] er, sucking in the next line.
15:32 arnsholt From the looks of the error message, I'd suspect this is due to a Rakudo change rather than a Zavolaj change
15:33 moritz actually I think that something triggers a faulty error path
15:34 moritz the real question is: what triggers it?
15:34 arnsholt Good question
15:34 arnsholt [Coke]: Could you run the test files outside of prove and gist the backtraces?
15:36 timotimo moritz: sorry for not getting anywhere with jvm interop improvements yet
15:37 brrt left #perl6
15:43 [Coke] I'm not getting the latest copy of DBIsh (it's the expanded star repo) Is the version before moritz++'s last commit ok?
15:43 colomon [Coke]: as I said, it's been failing smoke tests too.
15:43 colomon so probably not
15:43 moritz for getting the backtrace it's good
15:44 colomon oh, sure.
15:45 [Coke] ... how do I run the test? PERL6LIB=lib /path/to/perl6 t/25-mysql-common.t doesn't find the modules.
15:46 moritz [Coke]: if you do a find -name Pg.pm6
15:46 moritz [Coke]: where does it find that?
15:46 moritz then /path/to/perl6 -I$that_path t/25-mysql-common.t
15:46 [Coke] lib/DBDish
15:47 [Coke] really, I need the subdir?
15:47 moritz no, lib should be fine
15:47 moritz -Ilib
15:47 [Coke] nope, same error.
15:47 [Coke] don't have time to rebuild from scratch, dayjobbing.
15:48 moritz thanks for trying, [Coke]++
15:49 [Coke] (note that t/25* wasn't failing, was just trying to run anything)
15:50 * colomon has just downloaded DBlish
15:50 [Coke] oh! t/30 still fails.
15:50 colomon I'm getting loads of failures with the latest source?
15:50 colomon oh, NativeCall not installed
15:51 [Coke] and it's pulling from the install/parrot/* lib.
15:51 [Coke] what backtrace? I just see the error in the log file I quoted earlier.
15:52 FROGGS --ll-exception?
15:53 [Coke] https://gist.github.com/coke/8690883
15:53 colomon Cannot locate native library 'libmysqlclient.so
15:57 * colomon sees [Coke]++ already has it done, and gets back to $work.
15:58 ajr joined #perl6
16:02 sqirrel joined #perl6
16:22 rurban1 joined #perl6
16:25 Alina-malina joined #perl6
16:26 Alina-malina joined #perl6
16:26 raiph joined #perl6
16:26 bjz_ joined #perl6
16:28 retupmoca joined #perl6
16:29 bjz__ joined #perl6
16:32 FROGGS joined #perl6
16:35 jnap joined #perl6
16:35 raiph timotimo: ideone supports rakudo star (from 2010); perltuts runs rakudo version 2012.04.1 (if you type "use v6")
16:46 * TimToady likes R/ when you have a bad end-weight problem, which is not true in the case of [+](@a) / P
16:46 timotimo oh. thank you, raiph
16:47 raiph TimToady: what is your suggestion for a prettier Unicode version of \ for sigilless terms?
16:47 raiph (to be used when the term itself contains non latin1 characters)
16:48 TimToady has nothing to do with whether it's latin1, only with whether it's "letter"
16:49 TimToady if anything, I'd try to think of some way of getting rid of the \ most of the time
16:50 raiph thx
16:51 TimToady there's also a parsing problem with things like m and s that I'm still thinking about
16:51 jeffreykegler joined #perl6
16:54 * smls would prefer if all variables had a sigil ($, @ or %). There are enough things that share the bareword "namespace" already (constants, subs, classes, subsets, ...)
16:57 araujo joined #perl6
16:57 skids smls: the contract-less variable names also do have a function, they aren't just for eye sugar.
16:59 smls its function is rooted in the fact that flattening behavior is attached to objects (as an internal attribute), right?
16:59 araujo joined #perl6
16:59 skids smls: Parcel/flattening have much to do with it yes.  I'm sure there are better people than me to enumerate it though.
17:00 smls I think that's the core of what rubs me the wrong way regarding the P6 object/variable/container system
17:01 smls It would be easier if flattening behavior was determined statically by looking at the sigils/operators used at the respective place in the source code
17:02 smls Why should one piece of code decide whether something flattens in another place in the code further down the control flow?
17:04 skids The use case AFAICT is to get wantarray-like behavior without wantarray.
17:05 * skids lunch
17:06 rurban1 joined #perl6
17:13 smls In the (admittedly totally naive and "I want a pony"-ish) P6 of my dreams, flattening would be determined statically; sigilless variables would not be needed; scalar variables would easily optimize so that no container actually needs to be allocated (nor would any container object be exposed to users); List and Parcel would be a single type and take a less user-visible role; and binding would not affect the outward behavior of $foo/@foo variables,
17:13 smls just their contents.
17:13 treehug88 joined #perl6
17:15 moritz smls: and how would you pass on argumentlists to other functions without imposing any context?
17:15 moritz that's important for delegation and many other low-level stuff
17:15 moritz currying
17:16 PerlJam It's really weird watching moritz type what I'm thinking as I read #perl6 this morning  :)
17:16 hoelzro whoa, the GH conversations UI really changed!
17:16 PerlJam good $localtime all!
17:16 moritz PerlJam: now you know how masak and I feel quite often :-)
17:17 benabik hoelzro: Following their blog is useful to not be caught off guard by things like that: https://github.com/blog/1767-redesigned-conversations
17:17 * benabik lunch &
17:18 hoelzro benabik: right, I saw that, but I hadn't seen the change yet =)
17:19 dalek rakudo/nom: 5d8aabb | (Rob Hoelz)++ | src/core/Set.pm:
17:19 dalek rakudo/nom: Lazily initialize $!WHICH in Set
17:19 dalek rakudo/nom:
17:19 dalek rakudo/nom: $!WHICH is only needed if we use a Set as a hash key, but
17:19 dalek rakudo/nom: we pay the penalty for sorting the members on every set construction
17:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5d8aabb6d4
17:19 dalek rakudo/nom: 04c4fba | timo++ | src/core/Set.pm:
17:19 dalek rakudo/nom: Merge pull request #249 from hoelzro/nom
17:19 dalek rakudo/nom:
17:19 dalek rakudo/nom: Lazily initialize $!WHICH in Set
17:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/04c4fbab21
17:20 hoelzro thanks timotimo
17:20 timotimo yw
17:20 colomon hoelzro++
17:22 sqirrel joined #perl6
17:22 hoelzro if pmichaud gets around to it, I won't have to file PRs much longer =)
17:25 smls moritz: I don't understand why that's needed for delegation and currying
17:25 treehug88 joined #perl6
17:25 smls can't the compiler simply replace one function call with another behind the scenes, in those cases?
17:28 smls anyways, I'm not the person to discuss techniucal details. I just wish the whole variable/container/object system could be made easier to understand (and more predictable) for users of the language.
17:28 moritz there's not some magical compiler that does magical pixie dust
17:29 moritz that's all implemented in regular Perl 6 code
17:31 PerlJam smls: Aside from flattening, what else (specifically) do you find confusing or unpredictable?
17:35 rurban1 joined #perl6
17:36 rurban2 joined #perl6
17:38 hoelzro how is one supposed to add members to a Set?
17:38 colomon one cannot
17:38 hoelzro really?
17:38 colomon a Set is immutable
17:38 hoelzro ok, I did not know that
17:38 hoelzro thanks colomon
17:38 colomon if you want mutable you want a … SetHash?
17:38 perigrin one might say it's Set ... in stone.
17:38 * perigrin puts on sunglasses.
17:38 * hoelzro hears a rimshot
17:39 sjn badum-tsch
17:40 colomon m: my $a = slurp.words.SetHash; say $a
17:40 camelia rakudo-moar 1ec4c9: OUTPUT«SetHash.new(There, were, three, men, came, out, of, the, West, Their, fortunes, for, to, try, And, these, made, a, solemn, vow, John, Barleycorn, must, die, They've, ploughed,, they've, sewn,, harrowed, him, in, Threw, clouds, upon, his, head, was, dead, l…»
17:41 colomon m: my $a = slurp.words.SetHash; $a<There> = False; $a{"cider"} = True; say $a
17:41 camelia rakudo-moar 1ec4c9: OUTPUT«SetHash.new(were, three, men, came, out, of, the, West, Their, fortunes, for, to, try, And, these, made, a, solemn, vow, John, Barleycorn, must, die, They've, ploughed,, they've, sewn,, harrowed, him, in, Threw, clouds, upon, his, head, was, dead, let, lie…»
17:41 PerlJam All I want to know is ... what did John Barleycorn do to those 3 guys that made them want him dead?  ;)
17:42 colomon He probably drove them half mad.  ;)
17:42 colomon hoelzro: anyway, that's perhaps the most straightforward way to modify a SetHash
17:43 perigrin PerlJam: he kept them from the beer.
17:44 perigrin or possibly he gave them all too much beer ...
17:44 colomon rather, he was between them and the beer.
17:44 perigrin "the mysterious kings of Burns's version were in fact ordinary men laid low by drink, who sought their revenge on John Barleycorn for that offence"
17:45 * colomon reckons this must be terribly confusing to people who don't know about John Barleycorn
17:45 perigrin quite ... https://en.wikipedia.org/wiki/John_Barleycorn for those playing along at home.
17:45 smls PerlJam: The whole scheme of how variables and containers and objects interact with each other w/ respect to assignment and binding is too complex imo
17:45 rurban1 joined #perl6
17:46 smls I made an overview of my own understanding of it here: https://gist.github.com/smls/8693027
17:46 smls Is that correct?
17:47 FROGGS joined #perl6
17:48 FROGGS p: sub a() { my @array; |@array }; a()
17:48 camelia rakudo-parrot 1ec4c9: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/E8cxe27OV_�Variable '&prefix:<|>' is not declared�at /tmp/E8cxe27OV_:1�------> [32msub a() { my @array; [33m�[31m|@array }; a()[0m�»
17:48 FROGGS p: sub a() { my @array; return |@array }; a()
17:48 camelia rakudo-parrot 1ec4c9: ( no output )
17:48 FROGGS std: sub a() { my @array; |@array }; a()
17:48 camelia std 09dda5b: OUTPUT«ok 00:01 126m␤»
17:48 FROGGS I'd call that a rakudobug
17:50 SamuraiJack joined #perl6
17:52 [Sno] joined #perl6
17:53 rurban1 joined #perl6
17:53 PerlJam smls: well, you use = and say "bound" but = is assignment, not binding.
17:54 smls yes, but a Scalar container object is associated with the $variable, no?
17:54 PerlJam smls: your understanding of the second Perl 5 thing is incorrect.
17:55 smls oh, right
17:55 smls rookie mistake
17:56 smls removed it
17:57 smls PerlJam: What do you call the relationship between a $scalar variable and a Scalar container?
17:57 smls Is that different from binding?
17:57 jercos my @a = Array.new(2, 4, 6); is a single-element array containing in its first and only element, an array object containing three ints >.>
17:57 timotimo yeah, because Arrays are itemish
17:58 moritz they are?
17:58 timotimo not?
17:58 moritz r: my @a = Array.new(2, 4, 6); say @a.elems
17:58 camelia rakudo-parrot 1ec4c9, rakudo-jvm 1ec4c9, rakudo-moar 1ec4c9: OUTPUT«3␤»
17:58 timotimo ah
17:58 timotimo so they are not
17:58 timotimo fair enough
17:59 ajr joined #perl6
17:59 smls ^^ more proof that it's too complicated :P
17:59 jercos Ah, so that's just []
18:00 PerlJam smls: That's not proof at all.
18:00 jercos r: my @a = [2, 4, 6]; say @a.elems
18:00 camelia rakudo-parrot 1ec4c9, rakudo-jvm 1ec4c9, rakudo-moar 1ec4c9: OUTPUT«1␤»
18:00 dalek rakudo/there_is_no_return: c0cda55 | (Tobias Leich)++ | src/ (33 files):
18:00 dalek rakudo/there_is_no_return: stripped "return" where possible
18:00 dalek rakudo/there_is_no_return: review: https://github.com/rakudo/rakudo/commit/c0cda55562
18:02 grondilu r: .say for Array.new(2, 4, 6);
18:02 camelia rakudo-parrot 1ec4c9, rakudo-jvm 1ec4c9, rakudo-moar 1ec4c9: OUTPUT«2␤4␤6␤»
18:03 smls PerlJam: Well, if the likes of timotimo and moritz require pondering or trial-and-error to predict the behavior of assignment statements, what chance do simple P6 users like myself have? :)
18:03 grondilu r: .say for [2, 4, 6];
18:03 camelia rakudo-parrot 1ec4c9, rakudo-jvm 1ec4c9, rakudo-moar 1ec4c9: OUTPUT«2 4 6␤»
18:03 grondilu hum
18:04 grondilu r: say "this: $_" for [2, 4, 6];
18:04 camelia rakudo-parrot 1ec4c9, rakudo-jvm 1ec4c9, rakudo-moar 1ec4c9: OUTPUT«this: 2 4 6␤»
18:04 grondilu r: say "this: $_" for Array.new(2, 4, 6);
18:04 camelia rakudo-parrot 1ec4c9, rakudo-jvm 1ec4c9, rakudo-moar 1ec4c9: OUTPUT«this: 2␤this: 4␤this: 6␤»
18:04 grondilu this confuses me a bit
18:04 jercos r: .say for list [2, 4, 6]
18:04 camelia rakudo-parrot 1ec4c9, rakudo-jvm 1ec4c9, rakudo-moar 1ec4c9: OUTPUT«2 4 6␤»
18:04 jercos iiinteresting.
18:06 grondilu one could expect [2, 4, 6] and Array.new(2, 4, 6) to be exactly the same thing, no?
18:06 jercos That's what I thought, but apparently [] magically listifies itself in certain situations so as to... make nesting easier?
18:06 FROGGS r: say "this: $_" for [2, 4, 6].flat;
18:06 camelia rakudo-parrot 1ec4c9, rakudo-jvm 1ec4c9, rakudo-moar 1ec4c9: OUTPUT«this: 2␤this: 4␤this: 6␤»
18:07 jercos r: .say for (Array.new(2, 4), Array.new(4, 6))
18:07 camelia rakudo-parrot 1ec4c9, rakudo-jvm 1ec4c9, rakudo-moar 1ec4c9: OUTPUT«2␤4␤4␤6␤»
18:07 grondilu actually it's Array.new which flatens.   [] does not.
18:07 FROGGS p: say [2, 4, 6].perl; say Array.new(2, 4, 6).perl
18:07 camelia rakudo-parrot 1ec4c9: OUTPUT«[2, 4, 6]␤Array.new(2, 4, 6)␤»
18:07 FROGGS ohh, not very helpful
18:07 PerlJam smls: I cede your point  :)
18:08 jercos grondilu: yeah I didn't mean flatten, I meant makes itself unflattenable
18:08 FROGGS [] implies a a single item, unlike ()
18:08 FROGGS -a
18:08 skids r: say 0,Array.new(1,2,3),0,0,[1,2,3],0,0,(1,2,3),0; my @a = 0,Array.new(1,2,3),0,0,[1,2,3],0,0,(1,2,3),0; @a.say
18:09 camelia rakudo-parrot 1ec4c9, rakudo-jvm 1ec4c9, rakudo-moar 1ec4c9: OUTPUT«01 2 3001 2 3001 2 30␤0 1 2 3 0 0 1 2 3 0 0 1 2 3 0␤»
18:09 FROGGS rn: say 0,Array.new(1,2,3),0,0,[1,2,3],0,0,(1,2,3),0; my @a = 0,Array.new(1,2,3),0,0,[1,2,3],0,0,(1,2,3),0; @a.say
18:09 camelia rakudo-parrot 1ec4c9, rakudo-jvm 1ec4c9, rakudo-moar 1ec4c9: OUTPUT«01 2 3001 2 3001 2 30␤0 1 2 3 0 0 1 2 3 0 0 1 2 3 0␤»
18:09 camelia ..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Excess arguments to List.new, used 1 of 4 positionals␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (List.new @ 1) ␤  at /tmp/tmpfile line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) …»
18:09 FROGGS I was hoping that niecza agrees
18:10 rurban1 joined #perl6
18:15 grondilu rn: say .join('|') for Array.new('foo', 'bar'), [<foo bar>];
18:15 camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Excess arguments to List.new, used 1 of 3 positionals␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (List.new @ 1) ␤  at /tmp/tmpfile line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) …»
18:15 camelia ..rakudo-parrot 1ec4c9, rakudo-jvm 1ec4c9, rakudo-moar 1ec4c9: OUTPUT«foo␤bar␤foo|bar␤»
18:16 xenoterracide joined #perl6
18:18 rurban2 joined #perl6
18:19 tgt joined #perl6
18:26 skids r: <a b>.list.permutations.say; <c d>.permutations.say
18:26 camelia rakudo-parrot 1ec4c9, rakudo-jvm 1ec4c9: OUTPUT«a b b a␤c d d c␤»
18:26 camelia ..rakudo-moar 1ec4c9: OUTPUT«Cannot call 'postcircumfix:<[ ]>'; none of these signatures match:␤:(Any \SELF, int $pos)␤:(Any \SELF, int $pos, :BIND($BIND)!)␤:(Any \SELF, int $pos, Any :SINK($SINK)!, *%other)␤:(Any \SELF, int $pos, Any :delete($delete)!, *%other)␤:(Any \SELF,…»
18:27 skids looks like something there has changed since last star.
18:27 skids On star the second line complains about no Parcel.permutations.
18:28 FROGGS IIRC TimToady++ put it in Any or so
18:29 Sqirrel_ joined #perl6
18:34 grondilu r: say Parcel ~~ List
18:34 camelia rakudo-parrot 04c4fb, rakudo-jvm 04c4fb, rakudo-moar 04c4fb: OUTPUT«False␤»
18:34 grondilu r: say Parcel ~~ Any
18:34 camelia rakudo-parrot 04c4fb, rakudo-jvm 04c4fb, rakudo-moar 04c4fb: OUTPUT«True␤»
18:41 rylinaux joined #perl6
18:46 ajr_ joined #perl6
19:00 treehug88 joined #perl6
19:01 rurban1 joined #perl6
19:01 masak p: .say for <a b>.permutations
19:01 camelia rakudo-parrot 04c4fb: OUTPUT«a b␤b a␤»
19:01 masak no .list needed.
19:02 skids r: for ([1,2],[2,1]) -> (*@a) { @a.say }; for ((1,2),(2,1)) -> (*@a) { @a.say }; for (1,2).permutations -> (*@a) { @a.say }
19:02 camelia rakudo-jvm 04c4fb: OUTPUT«1 2␤2 1␤Flattening named argument must have VMHash REPR␤  in block  at /tmp/tmpfile:1␤␤»
19:02 camelia ..rakudo-moar 04c4fb: OUTPUT«1 2␤2 1␤␤␤␤␤Cannot call 'postcircumfix:<[ ]>'; none of these signatures match:␤:(Any \SELF, int $pos)␤:(Any \SELF, int $pos, :BIND($BIND)!)␤:(Any \SELF, int $pos, Any :SINK($SINK)!, *%other)␤:(Any \SELF, int $pos, Any :delete($delete)!,…»
19:02 camelia ..rakudo-parrot 04c4fb: OUTPUT«1 2␤2 1␤␤␤␤␤1 2␤2 1␤»
19:02 zby_home_ joined #perl6
19:05 skids masak: being as I run star I still need .list.  Looking forward to next star esp pairlist syntax \o/
19:11 masak ;)
19:12 rurban2 joined #perl6
19:18 hoelzro I take it qx[...] is supposed to invoke sh?
19:20 masak p: qx[echo yes]
19:20 camelia rakudo-parrot 04c4fb: OUTPUT«qx, qqx is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting:2␤  in sub QX at src/RESTRICTED.setting:9␤  in block  at /tmp/s_pXy7EQLz:1␤␤»
19:20 PerlJam heh
19:20 masak :)
19:20 hoelzro ok, that makes my job easier =)
19:28 pecastro joined #perl6
19:33 raydiak good morning, #perl6
19:34 PerlJam raydiak: greetings
19:35 psch joined #perl6
19:35 rurban1 joined #perl6
19:35 hoelzro ahoy raydiak
19:35 psch hi #perl6
19:35 masak ohaj raydiak
19:35 masak hi psch
19:35 PerlJam hello psch
19:36 PerlJam ho masak!  :)
19:36 rurban3 joined #perl6
19:38 rurban4 joined #perl6
19:38 * moritz gently nudges masak towards p6cc reviews
19:45 beastd joined #perl6
19:46 berekuk joined #perl6
19:49 raydiak gotta love that fresh, clear perspecitve which sleep provides...apparently I spent more time than I'll admit last night trying to figure out why code in a MAIN sub didn't run when loaded with require :P
19:49 masak moritz: meant to today, though turns out the whole day basically went to recovering from $work instead.
19:49 masak moritz: that seems to happen a lot lately :/
19:50 jeffreykegler left #perl6
19:58 * masak does some small amount of t4 reviewing
19:58 timotimo yays :)
19:59 timotimo i'm really looking forward to getting an explanation for how to properly implement that
19:59 * PerlJam gently nudges masak towards updating the macro implementation
19:59 treehug88 joined #perl6
19:59 PerlJam .oO( If it worked for moritz, maybe it'll work for me  :)
20:08 masak PerlJam: yeah... haven't forgotten it.
20:08 masak PerlJam: want to finish p6cc2012 first, though.
20:09 masak PerlJam: but the next two steps on the macros path (towards macros/d3) is to summarize everyone's wishes/thoughts in a blog post, and to go through RT cataloguing all macro/quasi tickets.
20:12 moritz oh, my wishlist for marcos is short: * world domination  * free lunch
20:12 moritz in fact, I could live with only the first item :-)
20:15 tgt joined #perl6
20:29 xenoterracide joined #perl6
20:39 kbaker joined #perl6
20:41 Rotwang joined #perl6
20:43 raiph joined #perl6
20:43 masak ;)
20:44 masak srsly though,
20:44 masak I'm pretty sure what we have in the spec so far is inadequate.
20:44 masak to be honest macros as they are spec'd are a solution looking for a problem.
20:45 masak I have a pretty good idea what people *want* macros to do... but they don't do that, even by (current) spec.
20:46 masak I still think scalamacros.org has the right kind of vision: macros are there to "generate, analyze and typecheck code".
20:46 masak we do a bit of the first of those. we don't really have a roadmap/vision for the latter two.
20:46 * jnthn makes it home
20:46 masak jnthn! \o/
20:47 moritz ... and quasi holes are only allowed in term position, which kinda restricts the first too
20:47 * jnthn wouldn't mind lunch domination and a free world...
20:47 PerlJam masak: well ... we'll steal the best ideas out there as usual and combine them in a perly way :)
20:47 masak moritz: that *is* an issue, but not one I'm giving high priority.
20:47 masak PerlJam: yep.
20:48 masak PerlJam: I had enough of an email correspondence with the scalamacros guy to know that we do things a bit differently between Scala and Perl 6.
20:48 masak PerlJam: I also talked enough with the Scheme people to... be intrigued, if bewildered.
20:48 moritz so, analyzing code
20:48 masak somewhere I have a gist of source material about Scheme macros to peruse.
20:49 moritz the problem is that macro parameters are passed in as opaque thunks, right?
20:49 moritz s/problem/limitation/
20:50 moritz so if I call   somemacro $a == $b,  then &somemacro only sees a thunk that returns True or False (or a junction), but it can't beek into $a or $b, or find out that it's an infix:<==> expression
20:51 * moritz has no idea what type checking would need
20:54 masak moritz: I need to go now.
20:55 masak in the meantime, please dream big about macros, and I'll try to backlog afterwards and pick out the best parts.
20:55 moritz boo, I scared him :/
20:55 masak rough consensus and working code always wins.
20:55 masak moritz: not scared. having to leave is orthogonal ;)
20:55 masak 'night, #perl6
20:55 moritz good night, masak
20:55 PerlJam maybe we need different types of macros.  One type could deal with things at the parse level, another at the AST level, and another could be akin to straight substitution ala C's preprocessor
20:55 rindolf joined #perl6
20:56 moritz I am currently pondering AST macros
20:57 moritz the expressiveness of QAST makes me wonder if we couldn't map all of Perl 6's operations in a rather small number of AST nodes
20:57 moritz probably more than QAST has, because there are lots of things that QAST represents at calls or ops that probably don't want to be calls and ops at the high level
20:58 moritz and there's the problem that QAST doesn't really deals with the declarational aspect of things (loaded off to $*W), and I wonder if a Perl 6 AST format could do a similar offload
20:59 moritz or if it would have deal with declarations itself
21:00 PerlJam Hmm.  scalamacros.org says "Scala macros: 1) are written in full-fledged Scala, 2) work with expression trees, not with raw strings, 3) cannot change syntax of Scala."  Suddenly it doesn't seem as interesting  :)
21:01 benabik They're syntactic macros, not textual macros.  Without interfering before parse, they can't affect the syntax.
21:02 PerlJam Aye, I'm just wondering what good ideas we'd learn from scala that we haven't already learned.
21:02 treehug88 joined #perl6
21:03 benabik OTOH, the syntax of Scala is ridiculously open.  Anything that would be TTAIR is actually an operator.  And operators are really method calls.
21:06 moritz do they still manage to produce good error messages on parse errors?
21:07 benabik I want to say 'yes, but a large category of errors is "undefined method ___"', but a more accurate answer is "I don't remember encountering anything terrible"
21:08 moritz on a completely off-topic note, I like @Amazing_Maps on twitter
21:08 tadzik yeah, it's fun :)
21:08 tadzik I like the fact that you retweet them
21:08 benabik .o( Better than g++ template errors... )
21:08 moritz benabik: that's... not too hard :-)
21:09 benabik moritz: http://tgceec.tumblr.com/
21:10 lue masak: "to be honest macros as they are spec'd are a solution looking for a problem."  I think you just explained why I can never come up with a situation where P6 macros are the best/only solution. :)
21:12 moritz m: +
21:12 camelia rakudo-moar 04c4fb: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/8ic7mB5dT1â�¤Bogus statementâ�¤at /tmp/8ic7mB5dT1:1â�¤------> [32m+[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        statement listâ�¤        prefix or termâ�¤        prefix or meta-prefixâ�¤Â»
21:12 moritz benabik: now I have to wonder how to produce long error messages out of Perl 6 :-)
21:12 moritz m: n
21:12 camelia rakudo-moar 04c4fb: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/ByFpwxCCLyâ�¤Undeclared routine:â�¤    n used at line 1â�¤â�¤Â»
21:17 dayangkun_ joined #perl6
21:17 Sqirrel joined #perl6
21:23 [Coke] PerlJam: (straight substitution) no. :P
21:24 virtualsue joined #perl6
21:24 dalek perl6-roast-data: 0976549 | coke++ | / (6 files):
21:24 dalek perl6-roast-data: today (automated commit)
21:24 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/0976549ccf
21:25 PerlJam [Coke]: sorry, that one is just too useful.   (just like goto :-)
21:31 timotimo http://espy.github.io/ubersicht/#perl6 ← huh, this is neat
21:32 timotimo it would be lovely if it could do multiple organisations
21:41 kst joined #perl6
21:41 raiph joined #perl6
21:48 segomos_ if you enter your username into the hash, it doesnt pull multiple orgs?
21:48 smls joined #perl6
21:49 [particle] joined #perl6
21:55 kivutar joined #perl6
21:58 treehug88 joined #perl6
21:59 kaare_ joined #perl6
22:08 Sqirrel joined #perl6
22:08 vendethiel joined #perl6
22:12 treehug88 joined #perl6
22:18 raiph joined #perl6
22:29 BenGoldberg joined #perl6
22:42 telex joined #perl6
22:57 TimToady maybe this is just the flu talking, but to my mind, the primary purpose of macros is to temporarily switch to a different language without the weight of 'use', because you need to break some assumption of the embedding language in either syntax or semantics
22:57 timotimo it would seem like "custom type checking" would be covered by that definition
22:57 TimToady these breaks may be subtle ("just evaluate this a little sooner/later") or not so subtle ("the rest of this statement is in COBOL")
22:58 timotimo i saw scala has string formatting that will enforce type checks on the passed arguments. that seemed pretty neat
22:58 TimToady yes, all the Scala/Lisp stuff is subserviant to "switching to a different (semantic) language"
22:59 TimToady the Perl 6 vision has always there has always been based in linguistics, not just CS

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

Perl 6 | Reference Documentation | Rakudo