Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-05-04

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 teatime that doesn't seem to be the case
00:00 dfcarpenterak joined #perl6
00:00 geekosaur (\X being a codepoint followed by any number, including zero, of modifiers)
00:00 teatime m: say '"̃"' ~~ rx:Perl5/^./
00:00 camelia rakudo-moar ec6c3b: OUTPUT«「"̃」␤»
00:00 geekosaur er, of combining codepoints
00:00 geekosaur if you hadn't noticed, rx:perl5 is not complete (and I would say in this example not correct)
00:01 geekosaur probably as NYI as the modifiers :bytes etc
00:01 geekosaur I'm testing them locally in perl5
00:03 geekosaur remember that in perl 6, the string '"̃"' itself has only one character in it: a synthetic codepoint
00:03 geekosaur ..,wow, hexchat mangled that
00:03 teatime well that string has two
00:04 teatime but yes I understand it doesn't have three
00:04 geekosaur yeh, I copy-pasted and hexchat doubled the "
00:04 geekosaur but that means that rx:p5 would have to undo that to work just like perl 5, and it doesnt know that it needs to do that
00:04 geekosaur so it's matching more than it should with ^.
00:04 teatime yes
00:05 teatime I understand it's nyi, that's fine
00:05 geekosaur if youi do it in actual perl 5, it matches only one codepoint
00:05 teatime I was just testing and hoping.
00:05 teatime interestingly, putting a ZWNJ after the opening " does not break up the grapheme, either to perl or on my terminal
00:05 teatime would have thought it would
00:06 geekosaur I think that's a known glitch
00:06 geekosaur actually ZWNJ is misrecognized/misimplemented all over the place
00:06 teatime I figured P6 would implement that w/ maybe 50% probability, but really shocked it doesn't work in my terminal
00:06 geekosaur I think jnthn ran into that while developing the current grapheme implementation
00:16 Ben_Goldberg joined #perl6
00:22 araujo joined #perl6
00:27 Ben_Goldberg joined #perl6
00:32 dolmen joined #perl6
00:34 hotel joined #perl6
00:37 BenGoldberg joined #perl6
00:39 dfcarpenterak joined #perl6
00:57 zwu joined #perl6
01:01 zwu I understand it is too early to test the performance of perl6, due to my interesting, I tested perl6 performance for the same task at https://github.com/famzah/langs-performance, sorry I don't have the perl 6 code right on my computer, but from my test on perl 6 April release, it is about 18x slower than python2.
01:01 zwu the benchmark of other language performance are there.
01:02 zwu The code for perl 6 is very similar to other code for the implementation, I could post it tomorrow too.
01:03 gfldex it is for sure not to early to test the performance of Perl 6. It is however to early to expect the same performance then a language that was released in 1991.
01:03 timotimo please ping me with the code when you have it :)
01:03 zwu here is the benchmark of other language: https://blog.famzah.net/2016/02/09/cpp-vs-python-vs-perl-vs-php-performance-benchmark-2016/
01:04 timotimo i wonder if you used "int" or "Int" in the perl6 code
01:04 zwu I used Int and @array using push
01:04 timotimo wow, your get_primes7 has a prototype definition
01:05 timotimo in the perl5 code, i mean
01:05 zwu so that could be the performance problem.
01:05 timotimo not necessarily :)
01:05 zwu btw: it is not my code on the git https://github.com/famzah/langs-performance.
01:05 timotimo as long as the numbers don't exceed 32bit, we at least don't allocate a full mp_int
01:06 timotimo but we're currently pretty dumb when it comes to creating far too many intermediate boxed results, and we have a few things that immediately prevent inlining in some cases, which really hurts performance
01:06 timotimo but all in all, 2016 is the year where many performance improvements will be made
01:07 zwu I believe there will be many performance improvements !!!
01:07 timotimo just yesterday lizmat gave Int a little performance optimization pass with results like div and / for Int, Int being about 50% faster
01:10 timotimo i'm interested in running the code you came up with under --profile
01:14 zwu ok, I put my primes.p6 code there https://gist.github.com/anonymous/f31c6b7e0163b41efe0a7cd9a1085894, sorry for I didn't create a github repo.
01:15 timotimo not important, a gist is good enough
01:16 timotimo there seem to be some tab characters mixed in there :)
01:16 timotimo how long does it take on your machine, approximately?
01:17 zwu 531 seconds
01:17 zwu run at a virtual machine.
01:18 zwu for python2 it is about 31 seconds.
01:18 timotimo thanks
01:18 timotimo i'll probably have my sleep before actually working on this, though
01:20 molaf joined #perl6
01:23 winger__ joined #perl6
01:28 timotimo already a c-level profile reveals 8.2% spent in total just marking an array of objects
01:29 timotimo 17% of overhead related to invoking frames, which means the optimization we're going to get this or next week will give a decent benefit here even before the code itself has been optimized
01:29 timotimo well, i'd even go as high as 25%
01:38 pierre_ joined #perl6
01:38 gfldex it's filling up 1.3GB of RAM
01:39 timotimo it's going gc-crazy, too
01:39 Actualeyes joined #perl6
01:39 timotimo 69660380 Int objects, 59977737 Scalar objects
01:39 Actualeyes left #perl6
01:40 timotimo and an astronomical amount of BOOTHash, which i'm not 100% sure about their correctness
01:41 gfldex does `Int(sqrt($n))` acutally create an Int obj, even if the result ends in `int`?
01:41 timotimo "ends in"?
01:41 gfldex like in `my int $mroot = Int(sqrt($n))`;
01:41 timotimo just by sprinkling a few "int" around, i get from 272504.78ms to 159403.75ms
01:41 timotimo (but this is only 5 runs, not 10)
01:42 timotimo it will create an Int, yes
01:46 gfldex m: my @primes = (1..10000000).grep(*.is-prime); say @primes.elems;
01:46 timotimo i see a tremendous amount of IntLexRef being generated, which tells me my nativifying is doing the "stop all inlining now!" thing
01:46 camelia rakudo-moar ec6c3b: OUTPUT«(timeout)»
01:46 BenGoldberg joined #perl6
01:47 ilbot3 joined #perl6
01:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
01:48 gfldex i would like to keep the algorithm the same for a start to see how far I get that way. I do know the max size of the result array, so a native shaped is worth a try.
01:49 timotimo no, definitely not native shaped; they are currently the opposite of optimized
01:49 timotimo they will give you terrible performance
01:50 timotimo it seems like 3, 5, 7 ... * > $n is slower than the loop with push in it :)
01:50 gfldex if it gets cache friendly it may still lead to a win
01:51 timotimo no. no, it will very much not be. it will still be 100x slower than a regular native array
01:51 cdg joined #perl6
01:51 timotimo do a small test up front and you'll see just how terrible performance of shaped arrays is right now
01:52 mohae joined #perl6
01:55 huggable joined #perl6
01:55 timotimo wow, using the return value from a loop causes the program to run about 2x as long, and also eats up more than 2x more memory
01:57 BenGoldberg If you use := instead of = for the array assignment, does it speed it up?
01:57 timotimo i don't have an array assignment at the moment; do you mean for the loop, or for a "..." call?
01:57 timotimo using int32 for the arrays makes memory usage a bit lower, but has nearly no impact on run time
01:59 BenGoldberg 'my @res = get_primes(10000000);' vs 'my @res := get_primes(10000000);'
02:00 BenGoldberg Also for doing 'my @s = do loop ...' vs 'my @s := do loop ...'
02:01 timotimo the @s will be modified later on, so just putting a Seq in there won't fly
02:01 cpage_ joined #perl6
02:02 timotimo no change between = and :=
02:02 timotimo er
02:02 timotimo it halves maximum resident set size, but it doesn't make things faster
02:02 timotimo better than half, actually
02:03 BenGoldberg Ok, what about replacing the 'for @s' loop with 'return @s'
02:04 BenGoldberg Hmm, need to do unshift(@s, 2), first, to make the results correct.
02:04 timotimo wouldn't that change semantics?
02:04 BenGoldberg ?
02:05 timotimo that for loop basically implements .grep(*.so)
02:05 BenGoldberg Oh, I see.
02:06 BenGoldberg Ok, then how about unshifting 2 onto the front of @s, then doing 'return @s.grep: @.so;'
02:06 BenGoldberg Without putting stuff in @r.  Actually, I don't think @r is really necessary.
02:06 timotimo i'm trying
02:07 timotimo the "original"(?) python code has the result thing anonymous in a return clause
02:07 timotimo return [2] + [x for x in s if x]
02:08 BenGoldberg That can be mimiced with 'return 2, |(@s.grep: *.so);' ... I'm not sure which would be faster.
02:08 timotimo my attempt at that makes it slower and use more memory
02:10 timotimo i'm going to bed
02:10 BenGoldberg G'night, then.
02:11 timotimo i have a hot water bottle waiting for me in bed <3
02:12 timotimo have fun with the benchmark, if you're going to continue working on it :)
02:19 noganex_ joined #perl6
02:45 BenGoldberg joined #perl6
02:47 BenGoldberg joined #perl6
02:51 mattp_ joined #perl6
02:52 jack_rabbit joined #perl6
02:57 sortiz m: use Test; my @a; my $p = @a; does-ok $p, Positional; # So far, so good
02:57 camelia rakudo-moar ec6c3b: OUTPUT«ok 1 - The object does role 'Positional'␤»
02:57 sortiz m: use Test; my @a;  does-ok @a, Positional; # Missing signature?
02:57 camelia rakudo-moar ec6c3b: OUTPUT«ok 1 - The object does role 'Positional'␤»
02:57 sortiz Hmm
02:58 finanalyst joined #perl6
03:19 Ben_Goldberg joined #perl6
03:21 MadcapJake what do you mean missing signature?
03:21 MadcapJake m: @a.^roles.say
03:22 MadcapJake m: "hello?".say
03:23 camelia rakudo-moar ec6c3b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ORxwbtUUbj␤Variable '@a' is not declared␤at /tmp/ORxwbtUUbj:1␤------> 3<BOL>7⏏5@a.^roles.say␤»
03:23 camelia rakudo-moar ec6c3b: OUTPUT«hello?␤»
03:24 MadcapJake m: my @a; @a.^roles.say
03:24 camelia rakudo-moar ec6c3b: OUTPUT«((Positional) (Iterable))␤»
03:27 musca joined #perl6
03:28 sortiz MadcapJake, nothing, a random glitch in the matrix ;-)
03:30 pierre_ joined #perl6
03:30 sortiz I'm writing json-c's  NativeCall bindings, and was testing the properties of my objects. :-)
03:35 MadcapJake ahh i see! :) if there was a glitch, the agents might be on to you! Get to a phone quickly! ;)
03:36 sortiz :P
03:37 jack_rabbit joined #perl6
03:52 Ben_Goldberg joined #perl6
03:54 milwaukee joined #perl6
04:08 hotel_california joined #perl6
04:27 BenGoldberg joined #perl6
04:34 BenGoldberg joined #perl6
05:02 Cabanossi joined #perl6
05:06 richi235 joined #perl6
05:07 firstdayonthejob joined #perl6
05:07 hotel joined #perl6
05:32 domidumont joined #perl6
05:37 domidumont joined #perl6
05:40 hotel_california joined #perl6
05:47 pierre_ joined #perl6
05:47 rurban joined #perl6
05:55 huggable joined #perl6
05:58 TimToady joined #perl6
05:59 nadim joined #perl6
05:59 RabidGravy joined #perl6
06:00 pierre_ joined #perl6
06:02 CIAvash joined #perl6
06:02 domidumont joined #perl6
06:04 xinming_ joined #perl6
06:04 domidumont joined #perl6
06:08 RabidGravy Boom!
06:12 daxim joined #perl6
06:17 sno joined #perl6
06:29 wamba joined #perl6
06:31 lizmat joined #perl6
06:34 _mg_ joined #perl6
06:38 sjoshi joined #perl6
06:50 dolmen joined #perl6
07:05 rurban left #perl6
07:06 domidumont joined #perl6
07:15 ufobat good morning :)
07:17 RabidGravy erp
07:24 zakharyas joined #perl6
07:41 pierre_ joined #perl6
07:51 darutoko joined #perl6
07:51 abraxxa joined #perl6
07:59 devtom30 joined #perl6
08:00 dakkar joined #perl6
08:16 [TuxCM] joined #perl6
08:16 lizmat joined #perl6
08:16 avenj joined #perl6
08:18 domidumont joined #perl6
08:19 finanalyst joined #perl6
08:22 pierre_ joined #perl6
08:29 Sound joined #perl6
08:31 avenj joined #perl6
08:34 winger_ joined #perl6
08:35 _28_ria joined #perl6
08:43 [particle] joined #perl6
08:50 Amnez777 joined #perl6
08:52 Hor|zon joined #perl6
08:54 Amnez777 joined #perl6
09:01 moritz .oO( RabidGravy seems to like ERP systems :-)
09:05 pierre_ joined #perl6
09:10 CIAvash joined #perl6
09:21 [TuxCM] joined #perl6
09:21 rindolf joined #perl6
09:31 RabidGravy last time I worked with SAP it made me go blind or something
09:51 Relsak joined #perl6
09:54 domidumont joined #perl6
09:55 huggable joined #perl6
10:06 uruwi_ joined #perl6
10:12 uruwi joined #perl6
10:15 kid51 joined #perl6
10:22 zakharyas joined #perl6
10:26 boegel joined #perl6
10:26 kaare_ joined #perl6
10:46 brrt joined #perl6
10:53 infina joined #perl6
10:53 infina joined #perl6
11:09 [particle] joined #perl6
11:27 stmuk SAP also made people rich
11:34 timotimo i didn't expect only a quarter screenful of irc to happen while i'm asleep :P
11:34 milwaukee joined #perl6
11:41 nine_ It's a quiiiiet day
11:42 jnthn Not here it ain't. It was the day of the month they decided to test the air raid siren. :P
11:42 jnthn Or nuke siren, or whatever it's for.
11:43 AlexDaniel joined #perl6
11:43 nine_ preferably at 6 in the morning?
11:43 jnthn No, at midday at least :)
11:43 brrt joined #perl6
11:43 flaviusb joined #perl6
11:44 jnthn They anounce the test in English too, funnily enough, but the speaker is so bad that it took me a year of hearing the announcements to realize that part of it even was in English. :)
11:44 AlexDaniel yea, just using native ints in primes.p6 thingy makes it run in like 50% time
11:45 jnthn So...nativism trumps again... :P
11:47 pmurias joined #perl6
11:51 * brrt puzzles whether that is a pun
11:54 AlexDaniel “for @s { @r.push($_) if $_ }” is significantly faster than “@r.append: @s.grep: {$_}”
11:54 nine_ I'm not entirely surprised
12:01 rindolf joined #perl6
12:01 AlexDaniel it seems like just pushing these numbers takes a lot of time
12:03 cgfbee joined #perl6
12:04 AlexDaniel also, @a.append: @b is much faster than @a.push: |@b
12:05 AlexDaniel m: my @a = 1..100000; my @b; @b.push: |@a
12:05 camelia rakudo-moar 480709: OUTPUT«Too many arguments in flattening array.␤  in block <unit> at /tmp/WYXkksBAXL line 1␤␤»
12:05 AlexDaniel mmmhm…
12:05 AlexDaniel I haven't thought about it
12:08 wamba joined #perl6
12:09 timotimo i suppose the reason for grep with a block is slower is because we don't have trace jit yet, which means it'll invoke a code object for every single test
12:09 timotimo whereas in the for + if that's in-line for free
12:09 moritz maybe laziness is to blame
12:10 jnthn `@a.push: |@b` is a pretty bad idea :)
12:10 timotimo hm, append won't try to eagerly nom the whole list?
12:10 timotimo that'd be a bad miss :)
12:10 timotimo or do we want it to act like "plan"?
12:10 jnthn It actually flattens all the arguments
12:10 jnthn Into the callsite
12:11 timotimo yes, that's pretty terrible
12:11 AlexDaniel @s .= grep({$_}); @r.append: @s; is slightly faster than everything
12:11 jnthn And produces a callsite descriptor along the way
12:11 timotimo it'd end up like a triple copy of the whole list
12:11 jnthn Yeah, plus making the huge callsite descriptor. And, worse, while the argument limit in MoarVM is fairly high, the one on the JVM is 255 iirc.
12:16 dj_goku joined #perl6
12:16 infina joined #perl6
12:16 infina joined #perl6
12:22 AlexDaniel ah… well, some things work faster without native ints
12:26 AlexDaniel m: my int $x = 2; $x /= 2; say $x
12:26 camelia rakudo-moar 480709: OUTPUT«This type cannot unbox to a native integer␤  in block <unit> at /tmp/RXCVNLBO3x line 1␤␤»
12:26 AlexDaniel is it ok?
12:26 timotimo yes, the GC time hardly gets reduced at all, which is because of all the IntLexRef objects being created and immediately tossed again
12:27 timotimo that's fine
12:27 timotimo m: my int $x = 2; $x div= 2; say $x
12:27 camelia rakudo-moar 480709: OUTPUT«1␤»
12:27 timotimo you want this anyway ^
12:27 AlexDaniel right
12:27 timotimo i'm still looking for the right peg to hang "turn this num into an int without going through Int" off of
12:27 timotimo it's just a matter of using the nqp op that i've already bound on a local branch, but how do i expose it to the user's code?
12:29 ZoffixW joined #perl6
12:29 ZoffixW What does rakudobrew rehash do?
12:30 timotimo i think it just rebuilds the scripts in bin/ that point "to the actual things"
12:30 ZoffixW I see
12:33 cpage_ joined #perl6
12:35 pierre_ joined #perl6
12:35 infina joined #perl6
12:35 infina joined #perl6
12:39 zwu_ joined #perl6
12:39 rindolf joined #perl6
12:42 wamba joined #perl6
12:42 AlexDaniel looking at this comparison again, I think that it is pretty stupid. If you look closely, then in both P5 and suggested P6 versions there is a temp array @r that is there for no reason
12:42 AlexDaniel while in e.g. python version there is no such thing
12:43 AlexDaniel in perl 6, getting rid of this @r array actually makes things significantly faster
12:43 RabidGravy gosh the chromaprint api is really rather simple
12:49 timotimo AlexDaniel: in the python version it returns [2] + [a for a in s if a] or something
12:49 timotimo which is equivalent to @r
12:49 awwaiid2 joined #perl6
12:53 AlexDaniel timotimo: saving the result into array is a redundant step, which may have some impact
12:53 dalek ecosystem: bd5e63c | (Salvador Ortiz)++ | META.list:
12:53 dalek ecosystem: Add JsonC to ecosystem.
12:53 dalek ecosystem:
12:53 dalek ecosystem: NativeCall bindings to json-c library
12:53 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/bd5e63ce4d
12:53 AlexDaniel and if you use @s as an array of native ints, then indeed it does
12:53 timotimo right. you still need to filter it and put the 2 in front :)
12:54 timotimo the filter thing could surely be done easily with a two-pointer algorithm in-place, though
12:54 RabidGravy ah sortiz++
12:54 sortiz Yet another JSON module for Perl6 :-)
12:55 RabidGravy I looked at that a while back, decided it was too complicated to do quickly and for forgot about it
12:56 timotimo if it's a drop-in replacement for JSON::Fast, it'll probably eat its lunch :)
12:56 RabidGravy or at least it's breakfast
12:57 sortiz panda's projects.json is parsed in Parsed in 0.0034288s.
12:58 cdg joined #perl6
12:58 sufrostico joined #perl6
12:59 cdg joined #perl6
12:59 ZoffixW sortiz++
12:59 sortiz The idea is that the C library eat the file, and the unmarshaling is be lazy and on demand.
12:59 ZoffixW Now me need JSON::MaybeC :)
12:59 ZoffixW s/me/we/
13:00 stmuk we need more YAML parsing (not that I like the format)!
13:00 ZoffixW Why?
13:02 stmuk I don't think there is any module to read it
13:02 RabidGravy I made one in C# once
13:02 ZoffixW ugexe, doesn't look like #86 got resolved. I'm still having the same issue. That's after nuking everything and starting from scratch (https://github.com/ugexe/zef/issues/86)
13:03 stmuk ZoffixW: or was the Q why I don't like YAML? :)
13:03 ZoffixW stmuk, no, you said "more", so I assumed we already had YAML and needed more :)
13:03 ZoffixW I don't like it either
13:04 sortiz Any code review/comments/suggestions will be appreciated.
13:04 ZoffixW It's the Python equivalent of configuration files 😂😂😂
13:04 stmuk yes the whitespace sensitivity is a misfeature
13:05 RabidGravy it was the new hotness back in, oh, 2002
13:06 timotimo we have one yaml module that doesn't work, iirc
13:07 stmuk YAMLish looks hopeful
13:08 sortiz The json-c library is a little more permissive than JSON::Fast, so five 'should fail to parse' tests fails.
13:08 AlexDaniel anyway, here is the what I got: https://gist.github.com/AlexDaniel/ce3c60e1701c378a3b115fbedea03ff5
13:08 brrt joined #perl6
13:08 timotimo sortiz: that's not "permissive", that's "wrong" :)
13:08 AlexDaniel it runs about twice faster
13:09 AlexDaniel but I am sure that there is a way to make it even faster if you manage to get rid of this .grep
13:11 sortiz timotimo, Indeed, but json-c is in github, so that can be fixed. ;-)
13:11 ZoffixW sortiz, which tests are that?
13:12 ZoffixW I see JSON::Fast is broken and doesn't handle newer spec
13:12 timotimo oh? please elaborate
13:12 ZoffixW perl6 -MJSON::Fast -e 'from-json q{"foo"}   error: 'a JSON string ought to be a list or an object
13:12 ZoffixW That's no longer true. Anything can be at top level
13:13 sortiz That is supported in JsonC.
13:13 ZoffixW http://rfc7159.net/rfc7159#rfc.section.2 (second paragraph, especially)
13:13 timotimo from when is that?
13:13 ZoffixW March 2014
13:14 timotimo oops.
13:14 RabidGravy ZoffixW, I'll alter the source-url in the App::ModuleSnap
13:14 AlexDaniel ZoffixW: but still no trailing commas allowed? :(
13:15 moritz JSON::Fast copied JSON::Tiny, which used to follow ECMA-404
13:15 moritz later, JSON::Tiny relaxed its parsing
13:15 ZoffixW RabidGravy, alright. I'll be mentioning it in an upcoming article, and didn't want people having issues installing it :)
13:15 moritz ("copied" is wrong, it just implemented the same interface)
13:15 sortiz Right now JsonC is faiing t/01-parse.t's  75-76, 78, 80-81
13:16 RabidGravy I'll make it "git://github.com/jonathanstowe/App-ModuleSnap.git" which is the form that App::NoPaste uses
13:21 zwu_ joined #perl6
13:28 pierre_ joined #perl6
13:37 pierre_ joined #perl6
13:40 pmurias joined #perl6
13:42 grondilu joined #perl6
13:55 huggable joined #perl6
14:09 zakharyas joined #perl6
14:11 finanalyst joined #perl6
14:15 grondilu joined #perl6
14:16 grondilu m: say { $^n ?? $n*&?BLOCK($n-1) !! $n }(4)
14:16 camelia rakudo-moar 475063: OUTPUT«0␤»
14:16 tharkun joined #perl6
14:16 grondilu m: say { $^n ?? $n*&?BLOCK($n-1) !! 1 }(4)
14:16 camelia rakudo-moar 475063: OUTPUT«24␤»
14:18 grondilu I remember long time ago I wanted to talk about tail recursion and asked if Perl 6 would support it.  You guys told me that it would probably not for various complicated reasons.  We have at least two kinds of Callables structures though:  Sub and Block.  Couldn't at least one of them support tail recursion optimization?  So that we can have efficient recursive functions?
14:19 jnthn m: say { [*] 1..$^n }(4) # it's so esay to write this one iterative :P
14:19 camelia rakudo-moar 475063: OUTPUT«24␤»
14:20 timotimo my uneducated opinion is that once we have trace jit, TCO becomes a potential possibility
14:20 timotimo probably a case of "SMOP", with all the things that entails
14:20 jnthn We don't in general know if anything "downstream" will do things like CALLER::
14:21 jnthn I think the question isn't "can we do TCO some of the time"
14:21 jnthn It's "can we do it predictably enough that can rely on it happening"
14:21 jnthn Can we do it at all is "surely yes", it's the latter I'm highly doubtful about.
14:22 timotimo oof.
14:22 timotimo right, fair enough
14:22 grondilu Could we not have a Calleable type that would prohibit anything that's incompatible with TCO?
14:22 jnthn Even if that's a dynamic prohibition?
14:23 jnthn (You'd get a runtime exception for doing something incompatible with it, that is)
14:23 grondilu jnthn: I don't know, but you make it sound like TCO is impossible or something.  Some languages do it, just do whatever they do.
14:24 jnthn That's stupid.
14:24 grondilu rude
14:24 jnthn Other languages can do it because they made the trade-offs.
14:24 jnthn Saying "in return we can't do X"
14:24 brabo joined #perl6
14:25 [Coke] I think a better question than "can we do TCO" is "what is the plan for making rakudo faster".
14:25 MadcapJake sub tco($arg) is MONKEY-TAIL { ... }
14:25 timotimo accessing a caller's lexical variables, for example ... (only if they are marked dynamic, of course)
14:25 perlpilot_ joined #perl6
14:25 jnthn Language design is always trade-offs.
14:26 pmichaud good morning #perl6
14:26 grondilu my concern is that there are function that are very much easier to write recursively, but we always end up not writing them because of performance issues.  That's very LTA.
14:26 jnthn And the langs I know where you can rely on tail calls all made it so you can analyze that.
14:26 jnthn o/ pmichaud
14:26 MadcapJake jnthn: could you explain a bit what the trade-offs are for TCO? I'm not following what the CALLER:: argument means
14:27 jnthn MadcapJake: In various languages, it's possible to staticly analyze things such that you can rewrite a recursion into an iteration.
14:27 jnthn MadcapJake: That relies on you knowing that you won't break anything in the process of doing so.
14:27 perlpilot joined #perl6
14:28 jnthn MadcapJake: And as a result of the rules around when it happens being fairly simple, folks can write code relying on it.
14:28 jnthn In Perl 6, various features make that static analysis fraught while others mean we simply can't do it.
14:28 wamba joined #perl6
14:28 pyrimidine jnthn: re: recursion to iteration, IIRC there is a fair amount in Higher Order Perl that covers doing so (for p5 of course)
14:29 pmichaud aren't C<nextsame> and C<nextwith> supposed to help with tailcalls?  Or is that a fossil?  (Or are we strictly discussing automatic TCO?)
14:29 ZoffixW joined #perl6
14:29 jnthn The moment you make a method call, it's late-bound and you don't know whether that code will do anything, like access CALLER::.
14:30 jnthn pmichaud: They're for iterating through pre-determined candidate lists. They potentially could make use of tail call optimization, though you could construct cases where the optimization would break things.
14:30 pmichaud I guess nextsame/nextwith aren't recursive tailcalls.  But perhaps they point the way to there.
14:30 ZoffixW Is anyone feeling adventurous and wants to add Perl 6 to CodeMirror? :P http://codemirror.net/mode/index.html
14:30 jnthn method foo() { my $*x = 42; nextsame() }
14:31 jnthn Does the thing you nextsame to see $*x or not?
14:31 ZoffixW The Perl 5 version is 800 lines long :( Perl 6 version would probably be much larger: https://github.com/codemirror/CodeMirror/blob/master/mode/perl/perl.js
14:31 MadcapJake ZoffixW: I'm partway through a highlightjs mode but I got discouraged when I discovered heredocs were impossible
14:31 timotimo i think we already have a bit of codemirror for perl6
14:31 jnthn (The answer today is "yes"; replacing the callframe would change that answer, for example)
14:32 ZoffixW MadcapJake, :(
14:32 timotimo https://github.com/azawawi/farabi6/blob/master/lib/Farabi6/files/assets/perl6-mode.js <- ZoffixW
14:32 MadcapJake timotimo: that isn't usable actually, it's basically a copy-and-paste of perl5-mode
14:32 jnthn nextsame today functions as return callsame(...)
14:32 ZoffixW Yey! timotimo++ azawawi++
14:32 timotimo OK, sorry about that
14:32 pmichaud jnthn: and yes, I'd expect nextsame to be that way.
14:32 MadcapJake ZoffixW: do not use that, azawawi informed me that it's not implemented beyond just copying perl5-mode into a new file
14:33 jnthn It's really tail calls as a language feature, vs. tail calls as an optimization.
14:33 ZoffixW MadcapJake, aw. Too bad
14:33 jnthn The latter I'm pretty sure we could do in some cases; the former is a lot harder than "just copy what another language does".
14:34 pmichaud jnthn: agreed
14:34 ZoffixW MadcapJake, how come heredocs are impossible?
14:34 pyrimidine jnthn: could you indicate a method can be TCO, e.g. method foo() is tco { ... }
14:34 MadcapJake ZoffixW: the highlight.js lexing engine doesn't support capturing delimiters and reusing them
14:35 ZoffixW Ah
14:35 MadcapJake there's an issue in their tracker wrt to it and the author basically says "not possible and we're not implementing it any time soon"
14:35 ZoffixW :/
14:35 jnthn pyrimidine: What would that actually do?
14:36 jnthn I mean, sure we can indicate things, but what semantics go with it?
14:36 MadcapJake ZoffixW: I started a CodeMirror perl6 mode a little ways back actually (I forgot about it :).  I'll try and get it finished this week (perhaps more likely next)
14:36 ZoffixW Sweet. No rush :)
14:36 jnthn If anything, the "this is a tailcall" mark would want to go on the call that should function that way.
14:36 ufobat ZoffixW, thanks for the PR
14:37 jnthn Which would mean you're explicitly saying "and if anything downstream isn't OK with that, it's my fault"
14:37 pyrimidine jnthn: yeah, true
14:37 ZoffixW ufobat, no problem
14:37 timotimo there's monsters in the basement preventing me from TCO! :(
14:38 jnthn Which, as pmichaud points out, is kinda taking the nextsame/callsame approach by making explicit what you want to happen
14:38 ptolemarch joined #perl6
14:38 CIAvash https://github.com/jneen/rouge also needs a Perl 6 lexer. It's being used in Gitlab and Jekyll
14:40 tbrowder joined #perl6
14:42 dalek perl6-examples: 8e9d84e | (Tom Browder)++ | Makefile:
14:42 dalek perl6-examples: module 'Web::Request' not needed
14:42 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/8e9d84e665
14:42 dalek perl6-examples: 1e2191e | (Tom Browder)++ | categories/99-problems/P40-rhebus.pl:
14:42 dalek perl6-examples: add tilde to remove parens in output; remove last integer as input (or could add it to the test output if desired)
14:43 dalek joined #perl6
14:43 MadcapJake jnthn: In Perl 6, if you use {call,next}{with,same} and multi-dispatch heavily, will you run into issues? Because I think TCO is really about supporting that recursive paradigm more than anything and if we can support it without TCO then it's kind of a moot point.
14:43 khw joined #perl6
14:44 perlpilot_ joined #perl6
14:44 MadcapJake CIAvash: ok it's on the todolist! I usually only have so much syntax highlighting juice in any given month though :P
14:45 jnthn MadcapJake: {call,next}{with,same} aren't for recursing anyway, they're through walking through (usually short, pre-destined) lists of implementations, so you can defer control to a more general candidate.
14:46 CIAvash MadcapJake: nice :)
14:46 jnthn MadcapJake: If you write heavily recursive stuff today - yes, you'll allocate a lot of stack frames.
14:46 jnthn And yes, tailcall as an explicit language feature is a lot more hopeful in Perl 6 than TCO.
14:47 MadcapJake jnthn: ok so those keywords are more about the dispatching than about recursing. specifically call{with,same} would seem related to recursion, at least at first glance.
14:48 nine_ I think there's still the endless loop issue with nextsame
14:48 dakkar joined #perl6
14:48 jnthn nine_: Yeah, that one should never be able to happen. I think I figured out how to fix it though: capture the frame that set the dispatcher.
14:48 jnthn nine_: And check that it's the caller of the thing trying to take it.
14:49 jnthn Then it won't be stolen by accident
14:49 jnthn Alternatively, we might be able to fix it with better code-gen.
14:49 nine_ jnthn: sounds like a step or two above my pay grade, so I'm no longer ashamed that I couldn't fix it :)
14:49 jnthn Just by forcing the takedispatcher to be earlier.
14:49 jnthn nine_: I dunno, I think you've done plenty of trickeir things ;-)
14:50 brrt joined #perl6
14:50 nine_ Well I guess things usually seem much less tricky after you've done them ;)
14:50 jnthn Don't they just...
14:52 * jnthn looks forward to the current invocation changes he's doing seeming much less tricky...
14:52 MadcapJake I think another point wrt tailcall/TCO: Perl 6 has much more powerful iterative facilities that make recursion not so necessary.
14:52 skids joined #perl6
14:53 prammer joined #perl6
14:55 pmurias MadcapJake: TCO is only truly necessary in functional languages
14:58 pmurias the python philosophy is that they won't implement it because it's not worth having worse stack traces
14:59 MadcapJake pmurias: yeah, as much as I like to think of Perl 6 as multi-paradigm, it seems there are certain things that require you to become entrenched in a particular paradigm (like TCO here).
15:00 rurban joined #perl6
15:01 MadcapJake interesting: ES6 has TCO actually http://www.2ality.com/2015/06/tail-call-optimization.html
15:03 ZoffixW MadcapJake, I think azawawi did more work on the CodeMirror thing. It looks usable enough: http://i.imgur.com/DxB7sNf.png
15:04 ZoffixW Still highlighted code inside a heredoc as code, but at least nothing is broken (like in SubLime text 2 :P)
15:04 pmurias MadcapJake: according to the v8 team the want to change the spec to have implicit tail calls
15:04 MadcapJake yeah it works but it's mostly just perl 5 with a few added keywords. one negative is that perl 5 keywords and such will also be highlighted
15:05 MadcapJake pmurias: what does that mean?
15:06 ZoffixW JS spec?
15:07 pmurias MadcapJake: you will have to syntactically mark that you want to have a tail call
15:09 nine_ explicit not implicit
15:09 pmurias nine_: yes, sorry
15:09 pmurias what they want to have: https://github.com/tc39/proposal-ptc-syntax
15:11 MadcapJake ahh yeah that's what my confusion was, I think that's a fine idea
15:15 brrt it's weird to specify an optimization in the language, i'd think
15:17 ZoffixW Well, we do have is cached already :P
15:18 grondilu and 'is pure' (?)
15:18 pmurias brrt: tail calls change semantics
15:18 brrt hmm, not necessarily
15:18 lichtkind_ joined #perl6
15:19 pmurias brrt: when they eat your stack trace they do
15:19 brrt or, well, it depends on whether your semantics include this notion of the stack
15:19 brrt keep a parameter 'i'm N tail calls deep', reconstruct the stack trace, done :-)
15:19 brrt actually, call trace
15:20 brrt but anyway
15:20 brrt i'm nitpicking
15:20 perlpilot brrt: have you ever had to debug a Perl 5 program where perl optimized away some of your call frames?
15:20 brrt my point is that the stack is an implicit assumption of routine local storage, which is not necessary to specify in a language
15:20 brrt no, haven't, actually
15:20 brrt that's using goto right?
15:21 ZoffixW goto is the explicit way
15:21 perlpilot no, using goto you did it to yourself
15:21 brrt hmm
15:22 brrt didn't know perl5 optimized call frames
15:22 skids tco is what you end up with when you slander goto. :-)
15:22 pierre_ joined #perl6
15:25 pmurias does perl 5 have TCO without using goto?
15:27 Ulti latest profile for BioInfo http://mattoates.co.uk/files/perl6/bioinfo_profile_2016-05-04.html
15:27 Ulti still has lots of deopt
15:28 Ulti but the code does run faster than last time
15:28 Ulti 2.5s down to nearer 2s
15:29 jnthn Curious, many in postcircumfix:<{ }>
15:29 Ulti ^ Rakudo version 2016.04-97-g480709d built on MoarVM version 2016.04
15:29 Ulti jnthn: yeah which I dont think were there at all last time
15:30 Ulti my code isnt changing at all at the moment either
15:32 ugexe ZoffixW: it was my precomps that were not invalidated :x
15:33 ZoffixW Ah
15:33 ugexe thats why it worked for me (the original fix, which was not in a PR, was cleaned up and commited. but the cleaned up code was missing a match)
15:33 ugexe but it was still loading the original fix's precomp for me
15:34 ZoffixW :D
15:34 ugexe i wonder if there is a way to better detect these types of precomp issues
15:35 ugexe (which i suspect only happen for version "*", which needs to be treated special)
15:42 awwaiid joined #perl6
15:56 kurahaupo joined #perl6
16:02 timotimo http://mxe.cc/  -  huh, TIL
16:04 boegel joined #perl6
16:19 felher joined #perl6
16:30 zakharyas joined #perl6
16:39 Emeric joined #perl6
16:47 Emeric joined #perl6
16:51 mr-foobar joined #perl6
17:01 MadcapJake .seen Skarsnik
17:01 yoleaux I saw Skarsnik 16 Apr 2016 17:14Z in #perl6: <Skarsnik> Hello
17:06 masak ahoy, #perl6
17:07 _rubio_ joined #perl6
17:07 ZoffixW \o
17:07 timotimo ahoyhoy masak
17:08 masak m: say "a" ~ "hoy" x (4..8).roll
17:08 camelia rakudo-moar 475063: OUTPUT«ahoyhoyhoyhoyhoy␤»
17:08 sena_kun joined #perl6
17:12 Xliff_ m: ^444.roll
17:12 camelia rakudo-moar 475063: OUTPUT«Potential difficulties:␤    Precedence of ^ is looser than method call; please parenthesize␤    at /tmp/KUJrHCZkOq:1␤    ------> 3^4447⏏5.roll␤WARNINGS for /tmp/KUJrHCZkOq:␤Useless use of "^" in expression "^444.roll" in sink context (line …»
17:12 Xliff_ m: say (^444).roll
17:12 camelia rakudo-moar 475063: OUTPUT«251␤»
17:12 ZoffixW m: ^444 .roll
17:12 camelia rakudo-moar 475063: ( no output )
17:14 sena_kun hi, #perl6. Bailador question's here. Does routing by juctions implemented? If yes, It seems to be broken with 2016.04. Log: http://pastie.org/10824220
17:16 ZoffixW sena_kun, junctions like what... what's your route definition?
17:17 sena_kun ZoffixW, get any('/h', '/help', '/halp') => sub { # Default example.
17:18 ZoffixW sena_kun, looking at the code, that doesn't seem to be implemented
17:18 ZoffixW sena_kun, get rx{ ^ [ '/h' | '/help' | '/halp' ] $ } => sub { ... will work tho
17:19 sena_kun ZoffixW, ah, okay then. Yeah, regexes work.
17:23 nd3i joined #perl6
17:24 sena_kun If we can translate junction into regex like "one"|"two", it's not so hard to implement. I'll try to do so and send a pr.
17:24 nd3i g'day all. This silly problem has got the best of me ...
17:25 nd3i m: my (@a, @b) = <a b c>, <x y z>
17:25 camelia rakudo-moar 475063: ( no output )
17:25 nd3i m: say my (@a, @b) = <a b c>, <x y z>
17:25 camelia rakudo-moar 475063: OUTPUT«([(a b c) (x y z)] [])␤»
17:26 domidumont joined #perl6
17:26 ZoffixW m: my @a = <a b c>; my @b = <x y z>; say @a, @b
17:26 camelia rakudo-moar 475063: OUTPUT«[a b c][x y z]␤»
17:26 nd3i ok, but what i want is the two inner lists assigned to the two arrays: @a:[a b c] @b:[x y z]
17:26 ZoffixW nd3i, The @a won't know when to stop
17:27 ZoffixW nd3i, the RHS is a list. That entire list goes inside @a.
17:27 nd3i or, maybe there's a more natural way to use the two lists; I need them to iterate over separately
17:27 nd3i ya, right, I get that.
17:27 nd3i I tried a hyper =: <<= no joy
17:27 ZoffixW m: my ($a, $b) = <a b c>, <x y z>; say $a
17:27 camelia rakudo-moar 475063: OUTPUT«(a b c)␤»
17:28 perlpilot m: say my (@a, @b) := <a b c>, <x y z>;
17:28 camelia rakudo-moar 475063: OUTPUT«(@a, @b)␤»
17:28 perlpilot m: my (@a, @b) := <a b c>, <x y z>; @a.say; @b.say
17:28 camelia rakudo-moar 475063: OUTPUT«(a b c)␤(x y z)␤»
17:28 ZoffixW hax
17:28 nd3i that's basically what I have now
17:28 ZoffixW m: say my (@a, @b) := <a b c>, <x y z>; @a[2] = 42; say @a
17:28 camelia rakudo-moar 475063: OUTPUT«(@a, @b)␤Cannot modify an immutable Str␤  in block <unit> at /tmp/ofJdjQO6O3 line 1␤␤»
17:29 ZoffixW huggable, xy problem
17:29 huggable ZoffixW, nothing found
17:29 perlpilot good point
17:29 nd3i it feels off to have a set of things in a scalar
17:29 ZoffixW heh
17:30 ZoffixW huggable, xy problem :is: You want to do X, but don't know how. You think you can solve it using Y, but don't know how to do that, either. So, you ask about Y in order to solve X, which doesn't make sense. You should ask about X.
17:30 huggable ZoffixW, Added xy problem as You want to do X, but don't know how. You think you can solve it using Y, but don't know how to do that, either. So, you ask about Y in order to solve X, which doesn't make sense. You should ask about X.
17:30 ZoffixW nd3i, it feels off to say it feels off to store *a* set inside a scalar :P
17:31 * grondilu tried $ time perl6 -e 'say [+] rand xx 1e6' and is impressed.
17:32 nd3i sure :) I'm cool with it as long it's not going to get me laughed at
17:32 ZoffixW sena_kun, my personal opinion is that would be over-engineering. I don't think such use is common enough to justify the extra complexity (more docs for users to read, more code for developers to debug and maintain, etc)
17:34 ZoffixW grondilu, I'm not really :) https://gist.github.com/zoffixznet/7412d452a45fdf75275c3d38d82af2a8
17:34 sena_kun ZoffixW, you meant conversion jun->re itself or routing by junctions at all? I looked into it not and it seems there are no clear way to get values of junctions, just really dirty parsing of .perl.
17:35 ZoffixW m: say "{6.028/0.747} times slower than P5"
17:35 camelia rakudo-moar 475063: OUTPUT«8.069612 times slower than P5␤»
17:35 sena_kun s/not/now/
17:35 skink joined #perl6
17:35 ZoffixW sena_kun, routing by junctions at all.
17:36 sena_kun ZoffixW, it makes sense. Then we need to comment code that is NYI in the example at least, I suppose.
17:36 timotimo i can't seem to figure out how to reply directly to a node in perlmonks
17:36 timotimo i can only see reply links for replies to that node itself
17:38 ZoffixW sena_kun, yeah. It should be tossed. But I'm not the dev of Bailador, ufobat is :) Maybe they will want to actually implement junctions
17:39 sena_kun ZoffixW, I know, but he's not here and you're far more confident with bailador codebase than me (: Issue will be enough, I suppose.
17:48 timotimo i see no reason to try to turn a junction into a regex like that
17:48 timotimo especially since "foobar" ~~ "foobar"|"bar" already works just fine
17:54 hankache joined #perl6
17:55 huggable joined #perl6
17:55 hankache hola #perl6
18:00 prammer joined #perl6
18:00 pierre_ joined #perl6
18:04 grondilu 8 times slower than P5 is awesome compared to what it was say one year ago.
18:05 grondilu now that I've tried P6 on a decent machine, I have renewed hopes that P6 will one day be faster than P5.
18:06 mst if nothing else, I am highly confident that rakudo on moarvm will eventually be *fast enough*
18:07 grondilu that sounds more reasonable indeed
18:08 mst and the parallelisation stuff means that on N-core systems it'll probably be easier to make things that perform reasonably than it is in perl5
18:08 grondilu true too
18:08 prammer joined #perl6
18:09 mst and, y'know, I'm pretty good with a future where I end up writing perl5, perl6, ES6, go, and rust
18:09 grondilu sure, especially if they're all P6 slangs :P
18:09 dolmen joined #perl6
18:10 nd3i perlpilot: i'm using your := suggestion for now. Maybe it's p5 mindset but the @a reads like an array/list/set. TY
18:10 mst if nothing else I expect most of my toolchain stuff to remain perl5, since perl6's "we want to be completely cross platform" means that perl5 is much better at unix and I'm not sure it's worth 'fixing' that in perl6 when perl5 already exists
18:10 mst (because 'fixing' it would likely make perl6 less good at things that it's way better than perl5 at)
18:11 mspo C is more portable
18:11 mst C ... portable ... ... ... you're SO cute
18:12 mspo <shrug> on unix anyway
18:13 mspo I thought nqp would replcae the p5 bootstrap stuff
18:13 mspo being able to cross compile would be nice since p5 had issues with that
18:13 mspo I think the miniperl build process wasn't cross-compile friendly
18:15 jnthn "It's portable on unix" kinda wonderfully sums up the life of a developer on Windows. :D
18:15 mst eh, what?
18:16 mst mspo: I don't think you're having the same conversation as anybody else
18:16 mspo jnthn: how the times have changed
18:16 mspo mst: very likely
18:16 mst (1) no, actually, C is not that portable between unices unless you're extremely careful, you will learn this the hard way one day, grasshopper
18:16 grondilu jnthn: personal question : have you always developed on Windows or did you switch from a Unix background?
18:16 mst (2) I'm talking about *my* toolchain, as in the toolchain I'll use to deploy stuff, not rakudo's build system
18:17 mspo netbsd is portable c
18:17 mspo but since linux switches all of its components every two years...
18:17 mspo mst: oic
18:17 mst and netbsd being 'portable c' will help your parallel code run properly on windows how?
18:18 mspo mst: from what I thought "toolchain" meant, bootstrapping perl6 made sense
18:18 mst if you remove the word 'my' from the sentence I actually typed and replace it with something else, you get a different sentence
18:19 mspo in terms of "portable c" and "careful c", I was just giving an example
18:19 mst sure, but claiming C is more portable than perl6 is still obviously wrong
18:19 mst there's lots more cross-platform differences in C
18:19 mst much though I love NetBSD, it's not a *relevant* example
18:20 mspo mst: it's more cross-compile friendly :)
18:20 dalek doc: b6766ee | (Tom Browder)++ | doc/Language/5to6-nutshell.pod:
18:20 dalek doc: try again to get a searchable term
18:20 dalek doc: review: https://github.com/perl6/doc/commit/b6766ee7b6
18:20 dalek doc: 1b25728 | (Tom Browder)++ | doc/Language/about.pod:
18:20 dalek doc: try again to get a searchable term
18:20 jnthn grondilu: Putting aside my primary school's BBC micro, which is the first machine I programmed on, I did pretty much all my early programming stuff on Windows (QBasic, VB, etc.) Was 5 years after that until we got internet access at home.
18:20 mspo mst: in terms of perl6 toolchain, cross compilation is handy and c is better than perl5 for that
18:21 jnthn grondilu: So I started out on Windows, pretty much, and it's one of those "the devil you know" things.
18:21 dalek joined #perl6
18:21 mst jnthn: funny, I started on a BBC, then went to an archimedes, then when I ran face first into windows it was so horrible I stopped programming as a hobby for four or five years until I discovered unix
18:22 jnthn mst: Hm, I didn't have that reaction, curiously enough. It was just one dialect of BASIC to another ;)
18:23 macsnowball joined #perl6
18:23 TimToady C is portable only in the sense that it is ubiquitous.  :)
18:23 jnthn Anyway, didn't take me long after getting internet access to want to put stuff on the internet, and later I got curious how stuff like forums and ecommerce sites worked, which led to Perl... :)
18:24 grondilu so you started using Perl on Windows?  kind of odd.
18:24 mst mspo: that might turn out to be true, but has nothing to do with anything I was talking about :)
18:24 TimToady grondilu: my spies inside Microsoft indicate that Perl is still pretty heavily used internally
18:24 jnthn Well, the hosting servers I deployed stuff to were Linux or maybe some other Unix. This was back in the days when FTP was, like, The Way It Worked. :)
18:25 DrForr Quick poll - Is expecting beginners to pull off "Fizz Buzz" in Perl 6 after short exposure to print(), conditionals and loop() too much to expect, especially in a tutorial situation?
18:25 mst (also if you're going to have to write C anyway, why not write C to fix the perl5 build process to cross compile better :)
18:25 DrForr Heh. When I first had access to servers to deploy webby stuff to it was mostly Solaris + Sybase.
18:26 arnsholt You can write portable, bug-free C in the same sense as you can juggle machetes. Very, very carefully
18:26 jnthn But yeah, I'd done pretty much all my other development so far on Windows, so it didn't feel so odd to just develop Perl stuff on Windows too :)
18:26 jnthn Then I spent a bunch of years doing .Net stuff, which kinda kept me on Windows.
18:27 mspo I am only arguing that it is 1) everywhere and 2) cross-build-able
18:27 mspo so generating perl6 for your rpi is faster when done on your x86_64 beefy box :)
18:30 jnthn Now I spent a decent bit of time in a Linux VM, mostly because of nice things like valgrind. :)
18:31 mst mspo: 'arguing' isn't a particularly good word since, like I say, that wasn't the conversation we were even having :(
18:31 jnthn I'm really lazy, so I suspect Windows will survive as the primary OS on this box until it's time for a new one, at which point I'll probably go for something else. :)
18:31 mst jnthn: you missed the archimedes step, so you were just swapping dialects of BASIC, I was losing a massively superior GUI *and* the ability to drop into arm26
18:32 RabidGravy I actually wrote Perl for Netware before I wrote any for WIndows
18:32 mst I still miss RISC OS :(
18:32 jnthn mst: Well, not so much missed as didn't realize it was so significantly nicer. :)
18:32 mst jnthn: I mean 'missed' in that you didn't get a couple of years to fall in love with it before encountaring win 3.1
18:33 jnthn :)
18:33 jnthn Don't think I even encountered it, so yeah, no chance for me :)
18:33 mst I'm assuming if you'd spent a couple years on it you'd also've fallen in love, but that's because I'm biased as all get out and assume anybody with a clue would fall in love with it given the chance
18:34 jnthn It's possible I would have. Guess we'll never know.
18:34 perlpilot joined #perl6
18:34 jnthn Guess OSX is "the other option" I could take :)
18:35 ZoffixW joined #perl6
18:37 prammer joined #perl6
18:37 ZoffixW dalek glitching? The last announce it made is for a commit 3 days ago and the actual commit was a PR merge :/
18:39 ZoffixW Ah, k. unsquashed commits from earlier on
18:40 ZoffixW DrForr, beginners in what? Perl 6 or programming in general
18:41 ZoffixW Actually, don't matter. I think it's fine even for total beginners.
18:41 DrForr Perl 6, I'm assuming a scripting or at least C background. I'm rewriting a chunk of the tutorial.
18:42 ZoffixW It
18:42 MadcapJake for a nativecall module, is it expensive to use `is symbol` trait a lot?
18:42 ZoffixW It's perfectly fine methinks. Really, saying "you write a ternary like ?? !!, not ? :" should be enough :P
18:42 DrForr Thanks. I'm making sure there's a solid foundation, but I also want to make sure to repeat things to increase retention.
18:43 MadcapJake I like that Perl 6's ternary is very distinct from other operators
18:44 jnthn MadcapJake: I wouldn't imagine so, no
18:44 jnthn MadcapJake: It just takes that name rather than the sub's name to do the lookup in the native lib
18:45 ZoffixW It composes a role to do so
18:45 ZoffixW You know what this channel needs? A Markov chain bot.
18:45 wamba m: multi MAIN( :h(:$help) ) { say $?USAGE }
18:45 camelia rakudo-moar 475063: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HQSy6Px0Ix␤Variable '$?USAGE' is not declared␤at /tmp/HQSy6Px0Ix:1␤------> 3multi MAIN( :h(:$help) ) { say 7⏏5$?USAGE }␤»
18:46 ZoffixW mst, right? :}
18:46 mst ZoffixW: plenty of free slots in my ignore list :D
18:46 ZoffixW lol
18:47 mst enough for all of your nicks at once even :P
18:49 dupek joined #perl6
18:49 dupek hi
18:49 dupek I want to ask something
18:49 moritz joining a channel, ignoring every single nick in there, and enjoying the organic silence. That's hipster!
18:49 moritz (should have gone to mst)
18:50 ZoffixW dupek, ask forth and ye shall receive :)
18:50 DrForr dupek: Just go ahead and ask.
18:50 dupek I read about this idea
18:50 dupek http://www.perlmonks.org/?node=339754
18:50 dupek it looks really great
18:50 dupek whats happened than?
18:50 telex joined #perl6
18:50 mst it's a terrible idea so it died when the last person foolish enough to work on it got broed.
18:51 mst *bored
18:51 dupek lol
18:51 dupek why it is terrible?
18:51 DrForr dupek: Sanity? Which admittedly is in short supply in the Perl community. And look at the year.
18:52 MadcapJake A Perl 6 shell would be great but a whole OS?
18:52 mst because perl isn't a systems language
18:52 DrForr dupek: Enough would have to be implemented in C to get reasonable performance that it's pointless.
18:52 mst neither perl is a systems language, and that's ok
18:52 mst if you want to replace C for OS stuff, look at rust
18:53 moritz or maybe at D, if you're more conservative
18:53 MadcapJake and speaking of Rust OS: http://www.redox-os.org
18:54 dupek Rust is okay
18:58 RabidGravy or BCPL
19:01 MadcapJake 2 other neat systems languages: https://ark-lang.org http://www.red-lang.org
19:05 prammer joined #perl6
19:08 zwu joined #perl6
19:13 yqt joined #perl6
19:14 mr-foobar joined #perl6
19:14 jjido_ joined #perl6
19:21 ufobat sena_kun, junctions were implemented, but never in the testcases. I
19:22 ufobat sena_kun, i realized that i dropped them out of the code when i already replaced the "old" routing with the nested routing feature
19:23 ufobat sena_kun, and i think you don't realy need it since the regex way (rx{ ^ [ '/h' | '/help' | '/halp' ] $ }) is basically just another "syntax" to achive the same behaviour
19:24 sena_kun ufobat, do you plan to fix the example then?
19:24 ufobat sena_kun, but still you're right.. do you really need this? i am currently thinking about just changing the example
19:25 sena_kun ufobat, no, I don't need this, I just tested the examples and notice that one of it is broken, then reported it.
19:25 ufobat yeah! :) thanks for the report!
19:26 ufobat i think i'll think about it and probably fix the example :)
19:26 RabidGravy I would say that being able to use a junction would be useful because it would enablle you to calculate a set of routes eaier
19:26 RabidGravy easier
19:27 ufobat easier? in what way?
19:28 sena_kun ufobat, also, do you have any roadmap/todo list? I'd like to dig into bailador codebase and looking for some(probably easy) tasks. Or issues page is my hope?
19:28 RabidGravy you add to an array and then use that to create a junction for instance, rather than building a string regex
19:29 ufobat RabidGravy, i see
19:29 ufobat but is it a common usecase to create the route destinations "dynamically"?
19:29 skink Anyone got an appveyor script that doesn't take an eternity?
19:29 ufobat thats what you're describing, right?
19:30 ufobat sena_kun, i am currently a bit.. i dont know how to say it ;)
19:30 ufobat disapointed is not the right word
19:30 RabidGravy yeah, if you are making a higher level inferface
19:30 ufobat and thinking about it, is not negative enough ;)
19:31 ufobat i am thinking about the differences between the http/p5sgi/p6w servers and the specification, supplys vs Blobs and stuff
19:32 ufobat RabidGravy, i see. hmm.. currently i think its hard to implement, because the "route" itself once was a Pair and now is a Bailador::Route
19:33 ufobat i guess you need to change the type in the Bailador::Route to be no longer just a regex but also a junction...
19:33 ufobat sena_kun, if you want to PR something easy, i guess its easy to implement that you have a <HTTP-ERROR-CODE>.xx template in order to customize error pages
19:34 ZoffixW joined #perl6
19:35 ufobat sena_kun, currently i am working on file uploads multipart/form-data vs url-encoded stuff
19:35 ZoffixW I don't see how much easier Junctions make anything. The usecase in question is using a junction to make a route work off multiple URLs... Is that really a common thing to do? I can't think of a single time I ever needed it in the past 8-9 years
19:36 sena_kun ufobat, okay, I'll look into it, thanks.
19:36 ufobat sena_kun, i think RabidGravy? did suggest to write a PSGI app that "tests" the specification. thats on my roadmap as well. but not really bailador related more a Devel::PSGI module
19:37 ufobat sena_kun, if you have questions or suggestions don't hesitate to talk to me :)
19:38 hotel joined #perl6
19:39 sena_kun ufobat, yeah, will do so if needed.
19:39 CurtisOvidPoe joined #perl6
19:40 CurtisOvidPoe p6: my $thread = Thread.start({ for 1 .. 10 -> $v { say $v }})
19:40 camelia rakudo-moar 475063: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
19:40 CurtisOvidPoe That’s interesting. I just rebuild rakudo on os x and got “Variable '$thread' is not declared. Did you mean 'Thread’?”
19:41 CurtisOvidPoe That’s from the following PerlMonks post: http://perlmonks.org/?node_id=1162208
19:42 dha joined #perl6
19:43 ZoffixW CurtisOvidPoe, you have a "typo" in your punctuation vars post in second do_something() sub: my $self = shift; is still there, after you already unpacked @_ into $self
19:44 moritz m: my $thread = Thread.start({ for 1 .. 10 -> $v { say $v }});
19:44 camelia rakudo-moar 475063: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
19:44 CurtisOvidPoe ZoffixW: Just fixed it. Thanks.
19:44 ZoffixW m: $thread = Thread.start({ for 1 .. 10 -> $v { say $v }})
19:44 camelia rakudo-moar 475063: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nCt2geRbuf␤Variable '$thread' is not declared. Did you mean 'Thread'?␤at /tmp/nCt2geRbuf:1␤------> 3<BOL>7⏏5$thread = Thread.start({ for 1 .. 10 -> ␤»
19:46 moritz does the missing semicolon at the end make a difference?
19:46 ZoffixW (note my eval above omited `my`, if you're referring to it)
19:46 jnthn moritz: ZoffixW's one missed the my at the start
19:47 Zrah joined #perl6
19:48 moritz yes, missed that. Thanks.
19:48 ZoffixW Works fine locally on Win7 with 2016.04 Star and on debian wheezy with rakudo brewed this morning.
19:49 Zrahurgh joined #perl6
19:49 moritz well, the perlmonks user had a 2013.something built on parrot
19:49 CurtisOvidPoe OK, I had an extra “ in my one-liner, causing a spurious error message.
19:49 jnthn Yeah, that ain't going to end well :)
19:49 CurtisOvidPoe 09:47:21 {master} ~/veure $ perl6 -e 'say "use Thread; my $thread = Thread.start({ for 1 .. 10 -> $v { say $v }});"'
19:49 CurtisOvidPoe ===SORRY!=== Error while compiling -e
19:50 CurtisOvidPoe Variable '$thread' is not declared. Did you mean 'Thread'?
19:50 CurtisOvidPoe at -e:1
19:50 jnthn m: say "quoted string with an $undeclared"
19:50 camelia rakudo-moar 475063: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QG9Z_YvvQQ␤Variable '$undeclared' is not declared␤at /tmp/QG9Z_YvvQQ:1␤------> 3say "quoted string with an 7⏏5$undeclared"␤»
19:50 CurtisOvidPoe That’s what I saw. It’s just a very misleading error message.
19:50 moritz I don't know how we could make it better
19:51 jnthn Me either...concrete suggestions welcome though.
19:51 mst CurtisOvidPoe: misleading how? it tells you the variable name you didn't declare, and guesses at the nearest symbol currently in scope
19:52 jnthn Not sure if adding "in quoted string" woulda given an additional clue at what went wrong
19:52 jnthn Though may be do-able
19:52 mst I do wonder whether the 'did you mean' is only actually useful with another variable name
19:52 mst people are unlikely mean a class name when they use a variable name, I'd've thought?
19:52 CurtisOvidPoe Oh, crap. I read all of that wrong and did too much cutting-n-pasting. Alcohol was involved. My apologies :)
19:53 Zra joined #perl6
19:54 jnthn mst: Yeah, I was a little surprised it did that. The levenstein algo does weight sigils some: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/World.nqp#L69
19:54 jnthn Which I guess makes it less likely to do that, but an otherwise very close match is within the edit distance.
19:55 jnthn m: my \something = 42; say $something
19:55 camelia rakudo-moar 475063: OUTPUT«5===SORRY!5=== Error while compiling /tmp/m29sdXkwiR␤Variable '$something' is not declared. Did you mean 'something'?␤at /tmp/m29sdXkwiR:1␤------> 3my \something = 42; say 7⏏5$something␤»
19:55 jnthn That one is kinda useful
20:02 tharkun joined #perl6
20:03 sno joined #perl6
20:07 hotel_california joined #perl6
20:11 hotel joined #perl6
20:13 tadzik hey, good people. Do you have any idea where one could buy (I know, I know) Perl conference t-shirts?
20:13 tadzik a friend of mine is being sent by his employer to a java conference and chose to display his protest in this peculiar way :)
20:14 dha I imagine TPF might have some overstock sitting around? *shrug*
20:15 jdv79 ask liz - they probably have something
20:16 dha That was my other thought.
20:16 tadzik good idea
20:16 tadzik lizmat: ping :)
20:16 lizmat pong
20:17 timotimo i don't mean to be mean here, but ...
20:17 lizmat tadzik: what size?  and where to send ?  :-)
20:17 timotimo how the flying fuck are people still running around with a 2013 rakudo
20:17 lizmat apt-get and friends ?
20:17 geekosaur debian?
20:18 tadzik lizmat: xxl, warsaw, poland :)
20:18 dha timotimo - clearly you were not around for the many years after the advent of Perl 5 that people were still using Perl 4.
20:18 lizmat tadzik: we could have given you one in Rugby  :-(
20:18 firstdayonthejob joined #perl6
20:19 geekosaur (I never did use perl 4. went straight from 3 to 5)
20:19 tadzik lizmat: yeah, the friend just asked me today :/
20:19 tadzik as sudden as it is confusing :)
20:19 El_Che timotimo: does people also count as perl6 users. They are counted when evaluating world domination :)
20:20 tadzik was the order_66 opcode already in in the 2013 version?
20:20 dha I once worked on a code base that was only technically Perl 5. It had "use Socket;" at the beginning.
20:22 timotimo i don't know what that means
20:23 geekosaur perl 4 with the absolute minimum changes to run in perl 5
20:24 jdv79 lizmat: is there a doc of the p6 related qa hackathon points/issues?
20:24 lizmat jdv79: no, not really, the list of accomplishments in the P6W is the closest thing to it
20:24 dha Yeah. the use of a module is a Perl 5 feature. *Everything* else about it screamed Perl 4. And, of course, no use of any number of modules that would have made the code much more usable.
20:25 jdv79 oh
20:26 lizmat there is one action point remaining: mst promised to allow Perl 6 distributions to PAUSE in the coming weeks
20:26 lizmat after warning all of the toolchain people this is going to happen
20:26 dha Oh?
20:26 jdv79 i'm not sure what that means
20:26 dha that should be... interesting.
20:27 cdg joined #perl6
20:27 lizmat it was already 2 years ago...
20:27 jdv79 doesn't that already happen?
20:27 lizmat not afaik
20:27 lizmat mst can tell more
20:27 jdv79 oh
20:27 mst jdv79: we turned it off while we fixed some stuff
20:27 mst most of that is now fixed
20:27 mst I'm going to warn people they have oine last chance to complain
20:27 jdv79 oh, the recent stuff?
20:27 mst then we're going to turn it back on
20:27 mst right
20:27 jdv79 ok
20:28 lizmat ++mst
20:31 yqt joined #perl6
20:32 Celelibi joined #perl6
20:36 colomon joined #perl6
20:39 itaipu joined #perl6
20:43 dolmen joined #perl6
20:47 TEttinger joined #perl6
20:49 AlexDaniel tbrowder++ # for working on documentation
20:50 tbrowder AlexDaniel: you're welcome, indeed!
20:54 colomon joined #perl6
20:56 ZoffixWin joined #perl6
20:57 dalek doc: 87a5e52 | (Tom Browder)++ | doc/Language/testing.pod:
20:57 dalek doc: correct linl URL
20:57 dalek doc: review: https://github.com/perl6/doc/commit/87a5e52d69
20:57 dalek doc: 5a483f6 | (Zoffix Znet)++ | doc/Language/testing.pod:
20:57 dalek doc: Merge pull request #492 from tbrowder/master
20:57 dalek doc:
20:57 dalek doc: correct link URL
20:57 dalek doc: review: https://github.com/perl6/doc/commit/5a483f6f50
20:58 skrsh joined #perl6
20:58 colomon joined #perl6
21:00 dalek ecosystem: af23605 | RabidGravy++ | META.list:
21:00 dalek ecosystem: Add Audio::Fingerprint::Chromaprint
21:00 dalek ecosystem:
21:00 dalek ecosystem: See https://github.com/jonathanstowe/Audio-Fingerprint-Chromaprint
21:00 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/af2360555b
21:00 RabidGravy there
21:01 Emeric joined #perl6
21:02 ZoffixWin Is that 50th module now? RabidGravy++
21:03 RabidGravy yaw, well ~ moving the Audio::PortMIDI and Audio::PortAudio to the noise gang
21:04 RabidGravy it would be the 51st I released infact, I released EventEmitter then discovered the tony-o relleased one almost the same almost simultaneously so merged them and pulled mine
21:14 timotimo hehe
21:15 hotel_california joined #perl6
21:16 ZoffixWin Most pedantic PR I ever sent: https://github.com/ufobat/Bailador/pull/73
21:16 * ZoffixWin throws "this way it looks more professional" argument to back it up
21:17 dha Correct spelling is particularly pedantic now?
21:18 ZoffixWin *shrug* it's just not that important in a test name :P
21:18 ZoffixWin I probably wouldn't even noticed it if I weren't running zef with --debug switch
21:23 jdv79 isn't that just brit vs amer spelling diff?
21:23 dha joined #perl6
21:24 ZoffixWin Nope. http://dictionary.reference.com/browse/existance   http://www.merriam-webster.com/dictionary/existance
21:25 jdv79 oh
21:26 lucs ZoffixWin++ (correct spelling)++ everywhere
21:28 * ZoffixWin has to deal with brit vs amer spelling for a living.... and then decide which version looks better for "Canadian" spelling :P
21:29 lucs Yeah, that's a pain.
21:29 dha Oh, the canadians are too polite to complain if you get it wrong.
21:29 * ZoffixWin notes to add ~/.zef to the nuke list
21:30 MadcapJake how would I represent a float**? Pointer[Pointer[num32]]?
21:30 lucs Apart from the with/without "u" thing, are there a lot of other Brit vs American frequently occurring spelling differences?
21:31 MadcapJake aluminum/aluminium
21:31 Juerd lucs: -ise/-ize
21:32 dha I was just going to ask if that was one...
21:32 lucs MadcapJake: Right.
21:32 lucs Juerd: Oh, a big one, yeah.
21:33 ZoffixWin lucs, on my list of common spellings we use at $work, I have 21 brit/amer words. That's just the common ones that usually appear on our flyers :)
21:33 RabidGravy MadcapJake, or some Pointer[CArray[num32]] depending on the intent or even CArray[CArray[num32]]
21:34 MadcapJake RabidGravy: ok thanks!
21:35 lucs ZoffixWin: Wow. Well, it's nice to see that you guys care enough about it :)
21:37 skink MadcapJake, Perhaps a helpful reference https://gist.github.com/Xliff/11acc06d8e4c35140fa3535bbfe47329
21:38 MadcapJake what does the nativecast function do?
21:40 RabidGravy Pointer to a perl thing
21:40 skink The examples I've seen have used it to specify what a pointer is actually supposed to point to
21:40 MadcapJake ohh, neat!
21:40 skink Or more succinctly that, yeah
21:40 timotimo RabidGravy: not just pointers
21:41 timotimo we can also cast CArray into Pointer, CArray into CArray, CArray to CStruct, ...
21:41 RabidGravy "pointers"
21:41 MadcapJake timotimo: but those are all technically pointers
21:41 timotimo haha
21:41 timotimo it's true
21:43 cpage_ joined #perl6
21:43 MadcapJake anyone able to decipher what these float**'s are in this function: https://github.com/quiasmo/fluidsynth/blob/insectos/fluidsynth/include/fluidsynth/synth.h#L277-L279
21:44 timotimo i guess you give it a pointer to the storage for your pointer and it'll fill the pointer you're supposed to use in there
21:44 timotimo *shrugs* could be way wrong
21:45 MadcapJake found it in the docs, they are arrays of floats
21:47 YP-QMUL-W joined #perl6
21:55 huggable joined #perl6
21:58 zwu joined #perl6
21:59 dwarring joined #perl6
22:13 YP-QMUL-W joined #perl6
22:14 MadcapJake my fluidsynth parser was fine until *one* function that has a arg[]... seriously why does there have to be so many different ways to do the same thing in C...
22:14 timotimo um, "your" parser?
22:15 timotimo you're not using gptrixie?
22:15 MadcapJake nope, just doing it by hand
22:16 MadcapJake I don't want to rely on castxml just for users to install my module
22:16 maybekoo2 joined #perl6
22:17 MadcapJake plus this way is a ton faster
22:19 MadcapJake also, since I'll be building and installing fluidsynth for users, I figured I'd just generate the bindings too
22:20 timotimo i wasn't telling you to put the gptrixie step into module installation
22:21 Sgeo joined #perl6
22:22 MadcapJake oh well yeah I could just use gptrixie and do all the legwork to clean it up, but i'm lazy ;)
22:29 jack_rabbit joined #perl6
22:34 lichtkind_ joined #perl6
22:36 colomon joined #perl6
22:54 edjsu joined #perl6
22:55 skink Xliff_, In your latest gist, you can also do for 1..$bytes/4
22:56 skink Not that it makes a difference, just saves a smidge of typing
23:06 YP-QMUL-W joined #perl6
23:10 timotimo the path for $bytes div 4 might be more optimized
23:15 sufrostico joined #perl6
23:18 ZoffixWin It's possible to disable colour output of error messages, yes?
23:18 BenGoldberg joined #perl6
23:18 ZoffixWin Looking at GlotIO, colours get translated into trash: https://glot.io/snippets/eedn2alr1s (run this)
23:20 timotimo yeah, it is possible
23:20 timotimo RAKUDO_ERROR_COLOR
23:21 ZoffixWin timotimo++ thanks
23:23 Xliff_ skink, thanks.
23:28 ZoffixWin Does MattOates hang out here?
23:29 timotimo yeah, it's either ulti or util
23:29 ZoffixWin Ulti, Util, we should add RAKUDO_ERROR_COLOR=0 to this line: https://github.com/prasmussen/glot-code-runner/blob/master/language/perl6/perl6.go#L10
23:29 skink ZoffixWin, The other day I saw someone simply cd .. outside of the containers that site uses :D
23:30 ZoffixWin Ulti, as asked in #go-lang and apparently simply adding that before `perl6` in that code won't pass it to the process. Perhaps you know better how to do it.
23:31 skink Wait, nvm, that was actually a clone of glot.io, not glot.io
23:32 ZoffixWin skink, well, you can do this: https://glot.io/snippets/eedngbebun
23:32 ZoffixWin Not sure if that's the "container" or not
23:33 timotimo hopefully it is. it'd be weird if it weren't
23:34 cdg joined #perl6
23:35 timotimo like, how do you even do that wrong? :P
23:37 skink Xliff_, re: the travis test for p6-audio-oggvorbis, I think you have to add v0
23:38 skink On Ubuntu I don't have libogg.so, but rather libogg.so.0
23:39 skink I imagine it could be the same for Debian, which Travis uses
23:39 timotimo right, those are hidden away in the -dev packages
23:39 geekosaur ^
23:39 skink Nope, I have those installed
23:40 timotimo huh?!
23:40 skink Also his travis script explicitly installs them as well
23:40 timotimo i don't remember this is a thing ... o_O
23:40 geekosaur skink, the linker won't find them if the unversioned one doesn't exist
23:41 geekosaur (it's how you specify which of possibly several incompatible APIs you want to link against)
23:41 skink Right, I understand, it's just that the unversioned one doesn't seem to exist in the first place on Ubuntu 14.04
23:43 geekosaur pyanfar «xmonad-contrib:nsp-loggers» Z$ dpkg -S /usr/lib/x86_64-linux-gnu/libogg.so
23:43 geekosaur libogg-dev:amd64: /usr/lib/x86_64-linux-gnu/libogg.so
23:45 geekosaur mint 17.2, based on ubuntu 14.04
23:49 skink Oh would you look at that
23:49 skink I'm blind :D
23:49 timotimo whew
23:50 skink I have just .so for x86_64 but not i386
23:51 skink got thrown off between that and various runtimes
23:51 timotimo ah, understood

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

Perl 6 | Reference Documentation | Rakudo