»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:01 jnap joined 00:03 berekuk joined 00:06 jnap left 00:07 stevan_ joined 00:13 grondilu left 00:21 BenGoldberg joined
raydiak r: my @foo = 1,2; say (|@foo).perl; 00:22
camelia rakudo-parrot 051aa6, rakudo-jvm 051aa6, rakudo-moar 051aa6: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&prefix:<|>' called (line 1)␤»
raydiak why is that wrong?
jnthn What were you expecting it to do? 00:23
afaik, | only makes sense in the context of a call
raydiak ah, that explains it then, n/m
thanks jnthn++ 00:24
BenGoldberg If I wanted to do this: 00:25
r: my @foo = 1,2; say [+|] @foo
camelia rakudo-parrot 051aa6, rakudo-jvm 051aa6, rakudo-moar 051aa6: OUTPUT«3␤»
jnthn ...cute...
BenGoldberg Using a method instead of a prefix, how would I do it?
r: my @foo = 1,2; say @foo.[+|]; # doesn't work 00:26
camelia rakudo-parrot 051aa6: OUTPUT«===SORRY!=== Error while compiling /tmp/gGaQRYLm3N␤Preceding context expects a term, but found infix +| instead␤at /tmp/gGaQRYLm3N:1␤------> my @foo = 1,2; say @foo.[+|⏏]; # doesn't work␤»
jnthn .reduce, I think.
camelia ..rakudo-jvm 051aa6: OUTPUT«===SORRY!=== Error while compiling /tmp/tc9rjCt4Ao␤Preceding context expects a term, but found infix +| instead␤at /tmp/tc9rjCt4Ao:1␤------> my @foo = 1,2; say @foo.[+|⏏]; # doesn't work␤»
..rakudo-moar 051aa6: OUTPUT«===SORRY!=== Error while compiling /tmp/uUt65LY7x7␤Preceding context expects a term, but found infix +| instead␤at /tmp/uUt65LY7x7:1␤------> my @foo = 1,2; say @foo.[+|⏏]; # doesn't work␤»
BenGoldberg r: my @foo = 1,2; say @foo.reduce([+|]);
camelia rakudo-moar 051aa6: OUTPUT«Nominal type check failed for parameter '&with'; expected Callable but got Int␤ in method reduce at src/gen/m-CORE.setting:8045␤ in block at /tmp/OqOx8pZsuT:1␤␤»
..rakudo-parrot 051aa6: OUTPUT«Nominal type check failed for parameter '&with'; expected Callable but got Int instead␤ in method reduce at gen/parrot/CORE.setting:8063␤ in block at /tmp/StkK1WkOCs:1␤␤»
..rakudo-jvm 051aa6: OUTPUT«Nominal type check failed for parameter '&with'␤ in method reduce at gen/jvm/CORE.setting:8050␤ in block at /tmp/0LKB4kDqAx:1␤␤»
BenGoldberg r: my @foo = 1,2; say @foo.reduce(with:&infix::<+|>); 00:27
camelia rakudo-jvm 051aa6: OUTPUT«===SORRY!=== Error while compiling /tmp/4Qpsimb6NG␤Preceding context expects a term, but found infix +| instead␤at /tmp/4Qpsimb6NG:1␤------> = 1,2; say @foo.reduce(with:&infix::<+|⏏>);␤»
..rakudo-parrot 051aa6: OUTPUT«===SORRY!=== Error while compiling /tmp/gKfE12hhd2␤Preceding context expects a term, but found infix +| instead␤at /tmp/gKfE12hhd2:1␤------> = 1,2; say @foo.reduce(with:&infix::<+|⏏>);␤»
..rakudo-moar 051aa6: OUTPUT«===SORRY!=== Error while compiling /tmp/vVmA7DR2dE␤Preceding context expects a term, but found infix +| instead␤at /tmp/vVmA7DR2dE:1␤------> = 1,2; say @foo.reduce(with:&infix::<+|⏏>);␤»
clsn r: my @foo=1,2; say @foo.reduce(&infix:<+>)
camelia rakudo-parrot 051aa6, rakudo-jvm 051aa6, rakudo-moar 051aa6: OUTPUT«3␤» 00:28
BenGoldberg Ahh
jnthn r: my @foo=1,2; say @foo.reduce([+])
camelia rakudo-parrot 051aa6: OUTPUT«Nominal type check failed for parameter '&with'; expected Callable but got Int instead␤ in method reduce at gen/parrot/CORE.setting:8063␤ in block at /tmp/ZrhiVSPgCE:1␤␤»
..rakudo-moar 051aa6: OUTPUT«Nominal type check failed for parameter '&with'; expected Callable but got Int␤ in method reduce at src/gen/m-CORE.setting:8045␤ in block at /tmp/EJ0hhw818D:1␤␤»
..rakudo-jvm 051aa6: OUTPUT«Nominal type check failed for parameter '&with'␤ in method reduce at gen/jvm/CORE.setting:8050␤ in block at /tmp/ZrTKKN8gJ9:1␤␤»
jnthn oops
r: my @foo=1,2; say @foo.reduce(&[+])
camelia rakudo-parrot 051aa6, rakudo-jvm 051aa6, rakudo-moar 051aa6: OUTPUT«3␤»
jnthn There's also that shortcut.
BenGoldberg r: my @foo = 1,2; say @foo.reduce([+|]); 00:29
camelia rakudo-jvm 051aa6: OUTPUT«Nominal type check failed for parameter '&with'␤ in method reduce at gen/jvm/CORE.setting:8050␤ in block at /tmp/Hu7_XYbivq:1␤␤»
..rakudo-moar 051aa6: OUTPUT«Nominal type check failed for parameter '&with'; expected Callable but got Int␤ in method reduce at src/gen/m-CORE.setting:8045␤ in block at /tmp/nO7ZskkYiM:1␤␤»
..rakudo-parrot 051aa6: OUTPUT«Nominal type check failed for parameter '&with'; expected Callable but got Int instead␤ in method reduce at gen/parrot/CORE.setting:8063␤ in block at /tmp/rkTi5N7Gvm:1␤␤»
BenGoldberg r: my @foo = 1,2; say @foo.reduce(&[+|]);
camelia rakudo-parrot 051aa6, rakudo-jvm 051aa6, rakudo-moar 051aa6: OUTPUT«3␤»
BenGoldberg :)
jnthn ah, yes, I lost the | :)
00:32 rylinaux left
raydiak always happy to incite an outburst of nonsense :) just copied it out of a call and expected it to work without really considering it 00:32
00:32 rylinaux joined 00:40 mtk left 00:42 colomon joined
psch ttps://github.com/rakudo/rakudo/pull/237 and github.com/perl6/roast/pull/36 feedback and improvements very welcome 00:42
github.com/rakudo/rakudo/pull/237 # missed the h for some reason
00:43 mtk joined
jnthn Time for some rest...'night 00:44
psch gnight jnthn
00:46 logie left, xfix left 01:02 stevan_ left, jnap joined 01:04 [Sno] joined 01:06 jnap left 01:09 Mouq left 01:13 jnap joined 01:28 xfix joined 01:29 jeffreykegler left 01:39 mtj_ left 01:40 mtj_ joined
rjbs hoo boy. 01:47
colomon o/ 01:51
psch gnight #perl6 o/ 01:52
colomon \o 01:53
01:53 psch left 02:17 odoacre left, odoacre joined
raiph anyone interested in LINQ and P6: wiki.perl6.org/@linq 02:31
02:45 kst` joined 02:47 kst left 02:48 btyler left 02:49 beastd left 03:17 jnap left 03:40 atroxaper joined 03:48 jeffreykegler joined 03:53 thou joined
clsn n: :(::T, T) ~~ :(Str, Str) 04:03
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤GLOBAL::T does not name any package at /tmp/HxJdORiNWV line 1:␤------> :(::T⏏, T) ~~ :(Str, Str)␤␤A type must be provided at /tmp/HxJdORiNWV line 1:␤------> :(::T⏏, T) ~…»
04:04 Mouq joined 04:08 preflex left 04:09 preflex joined, ChanServ sets mode: +v preflex 04:13 jnap joined 04:16 jeffreykegler left 04:17 jnap left 04:28 bjz left 04:29 bjz joined 04:40 araujo joined, araujo left 05:14 jnap joined 05:18 jnap left 06:03 raiph left, BenGoldberg left 06:14 Mouq left, jnap joined 06:19 SamuraiJack joined, jnap left 06:56 darutoko joined 06:58 wooden left 07:03 berekuk left, wooden joined, wooden left, wooden joined 07:04 berekuk joined 07:07 berekuk_ joined 07:08 berekuk left 07:13 bjz_ joined, bjz left 07:15 jnap joined 07:20 jnap left 07:23 [particle]1 joined 07:24 Shozan joined 07:25 [particle] left, bjz_ left, SHODAN left 07:26 lue left, lizmat left, prammer left, rjbs left, rjbs joined, prammer joined, lizmat joined, lue joined, bjz joined 07:46 rindolf joined 07:51 atroxaper left 08:16 jnap joined 08:17 SamuraiJack left 08:21 jnap left 08:27 rindolf left 08:34 hummeleBop joined 09:02 stevan_ joined 09:03 rindolf joined 09:14 stevan_ left 09:17 jnap joined
moritz does anybody know of a website which compares the numbers of modules available for different languages? 09:19
I know I've seen such a thing, but can't find it right now
my google-foo is weak
raydiak moritz: maybe this one? modulecounts.com/ 09:20
09:21 jnap left
moritz raydiak: thanks, exactly what I was looking for 09:22
09:25 dmol joined
raydiak moritz: glad it helped; expected it to be a spam site with a domain that obvious 09:26
masak good modulecount, #perl6 09:43
diakopter good welcomecount, masak
moritz good masakcount, 1
masak hahacount, 42 09:44
dalek ast: 0791cdf | (Tobias Leich)++ | S05-mass/properties-general.t:
align tests about Khmer characters with latest unicode spec
10:05
FROGGS a lot of work :o( 10:06
and many other tests to check too 10:07
ohh no, many is more like "two"
moritz two tests, or two test files? 10:08
FROGGS two test groups, aka three related tests, twice 10:12
10:12 hummeleBop left
moritz better than two test files, which could be up to 2k tests :-) 10:13
FROGGS true :o) 10:16
10:18 jnap joined 10:23 jnap left 10:32 araujo joined 10:34 spider-mario joined 11:00 berekuk_ left 11:01 berekuk joined 11:18 jnap joined 11:23 thou left, jnap left 11:25 Rotwang joined
dalek ast: 17aa506 | (Tobias Leich)++ | S05-mass/properties-general.t:
align with unicode >6.1 about <:Other>
11:27
11:28 grondilu joined
grondilu parrot is still the fastest for summing large amount of numbers 11:31
r: say [+] rand xx 10000
camelia rakudo-jvm 912342, rakudo-moar 912342: OUTPUT«(timeout)» 11:32
..rakudo-parrot 912342: OUTPUT«4955.63684252641␤»
grondilu wonders why
jnthn grondilu: Looking. 11:39
FROGGS r: say [+] 1 xx 10000 11:40
camelia rakudo-jvm 912342, rakudo-moar 912342: OUTPUT«(timeout)»
..rakudo-parrot 912342: OUTPUT«10000␤»
FROGGS k, it is not rand :o) 11:41
jnthn No, and it's not that it's hitting the sig bind slow path either. 11:42
In fact, the only common things that do so are subst and match
colomon r: say [+] 1..10000 11:46
camelia rakudo-parrot 912342, rakudo-jvm 912342, rakudo-moar 912342: OUTPUT«50005000␤»
colomon r: say [+] (1..10000).reverse
camelia rakudo-parrot 912342, rakudo-jvm 912342, rakudo-moar 912342: OUTPUT«50005000␤»
colomon xx issue? 11:47
jnthn Yeah
Sampling profile is revealing.
Moar's gather/take has the same issue as the JVM one, it's just that Moar doesn't stack overflow. 11:48
colomon r: say [+] (1..10000).map({ rand }) 11:49
camelia rakudo-moar 912342: OUTPUT«5041.570714␤»
..rakudo-jvm 912342: OUTPUT«5010.793634118431␤»
..rakudo-parrot 912342: OUTPUT«4986.20241091392␤»
grondilu xx it is then 11:50
11:51 denis_boyun joined
jnthn gather/take in general, I think 11:52
But there's something else going on too.
colomon explain more, please? 11:58
colomon is looking suspiciously at ListIter 12:01
colomon just realized there is a GatherIter
jnthn colomon: Well, gather/take accidentally introduces an extra stack frame each time we invoke it.
colomon was thinking it was intentional 12:02
grondilu Pfew, just tested the same thing in P5: "for (1..10000) { $s += rand }; say $s;". It ran on 0.016s. I know that P5 is fast, but I'm still a bit worried by the size of the gap with P6
12:04 huf left
jnthn grondilu: No, that's *not* the same thing. 12:04
grondilu indeed, just realized it 12:05
my $s; for 1..10000 { $s += rand }; say $s; runs much faster
jnthn C:\consulting\rakudo>timecmd perl6-m -e "my $s; for 1..10000 { $s += rand }"
command took 0:0:0.57 (0.57s tota
Which is a tenth of the time. 12:06
[+] is hitting a couple of slow things, though.
Spending lots of time in places it shouldn't be.
grondilu it seems that "reduce *+*, ..." is faster 12:08
grondilu checked again 12:09
yeah, reduce *+*, @numbers is about five times faster than [+] @numbers 12:10
12:20 LLamaRider joined 12:25 Jimes joined
Jimes hi guys 12:25
perl6: say "Hello"
camelia rakudo-parrot 912342, rakudo-jvm 912342, rakudo-moar 912342, niecza v24-109-g48a8de3: OUTPUT«Hello␤» 12:26
Jimes can anyone please tell what is the origin of the docs published at docs.perl6.org?
is it up-to-date or not? is it based on synopses/apocal..s?
moritz Jimes: it's on github, perl6/doc 12:27
Jimes this URL doc.perl6.org
moritz Jimes: and it's neither totally up-to-date or hopelessly outdated
Jimes: and it's based on the implemented subset of the synopses
Jimes i see lots of "1 or 2 years ago" on that github :) 12:28
moritz sadly the script that generates the .html files has bitrotted a bit
Jimes should i better consult other documents while reading this? it looks like a nice documentation (much easier to read than Apo/Syn)
moritz Jimes: if something is unclear, just ask here 12:31
Jimes ok thank you :)
dalek c: f1820bd | moritz++ | / (5 files):
eval is now EVAL
12:34
12:37 Jimes left
dalek ast: 587aec0 | jnthn++ | S02-types/ (2 files):
Make tests more robust to Windows line endings.
12:38
c: a94bbe0 | moritz++ | htmlify.pl:
Update htmlify.pl to match current Rakudo (WIP)
12:41
12:42 huf joined
moritz does anybody have any experience wrt memory consumption on rakudo-p vs. rakudo-m? 12:43
12:43 daniel-s_ joined
colomon wishes again there was something like "time" which allowed you to easily and quickly check the memory usage of a program under linux 12:50
12:50 berekuk left
moritz camelia: where do you want it? 12:50
erm, I meant colomon :-) 12:51
colomon well, preferably on all my machines? 12:52
12:54 berekuk joined
grondilu well, you can use top, can't you? 12:58
t's not exactly like time, though. 12:59
or maybe ps
13:00 LLamaRider left 13:08 yogan left
grondilu maybe try this: coproc do-my-stuff ; while ps h -o rssize $COPROC_PID; do : ; done 13:09
13:09 LLamaRider joined
colomon grondilu: you can use top if you sit there watching it. which is kind of like time, if by time you mean using a stopwatch. ;) 13:11
grondilu thus my suggestion with ps
you can store the rssize evolution in time in a file: 13:12
coproc do-my-stuff ; while ps h -o rssize $COPROC_PID; do : ; done > do-my-stuff.memory-usage
hang on, I can do better 13:13
coproc perl6-m -e 'say [+] rand xx 1000' ; while rssize="$(ps h -o rssize $COPROC_PID)"; do echo "$(date +%N);$rssize" ; done 13:15
13:19 mtk left 13:20 jnap joined 13:22 daniel-s_ left
grondilu with a graph: 13:22
coproc perl6-m -e 'say [+] rand xx 1000' ; while rssize="$(ps h -o rssize $COPROC_PID)"; do echo "$(date +%s%N) $rssize" ; done |gnuplot -p -e "plot '-'"
13:25 jnap left
masak .oO( is a "coproc" the dual of a proc? ) 13:25
13:25 woolfy left
grondilu masak: $ help coproc 13:26
masak wow, it really is a co-process :) 13:27
13:27 woolfy joined 13:31 LLamaRider left 13:35 mtk joined
dalek kudo/nom: 37c956f | jnthn++ | src/Perl6/ (2 files):
Fix various closure-related issues.

In these places we wrongly fell back on auto-close, which is slow and wrong.
13:37
moritz do we have anything in core for generating temporary files? 13:41
p: say IO::Path.tmpdir
camelia rakudo-parrot 912342: OUTPUT«No such method 'tmpdir' for invocant of type 'IO::Path'␤ in block at /tmp/55zxOH8rI6:1␤␤»
moritz p: say IO::Spec.tmpdir
camelia rakudo-parrot 912342: OUTPUT«/tmp␤»
13:43 SamuraiJack joined
moritz fwiw it seems that open :p (pipe) has regressed in rakudo 13:44
jnthn p: say $*TMPDIR
preflex jnthn: you have 3 new messages. '/msg preflex messages' to read them.
camelia rakudo-parrot 912342: OUTPUT«IO::Path</tmp>␤»
moritz htmlify in p6/doc does this: my $pipe = open "dot -T$format -o$file", :w, :p; 13:45
and it tries to execute ./dot
masak that... sounds wrong. 13:47
jnthn That sounds broken... 13:53
13:56 berekuk left 13:57 berekuk joined
grondilu std: sub f(\x where x > 1) { say x }; f(7); 13:57
camelia std 09dda5b: OUTPUT«ok 00:01 128m␤»
grondilu r: sub f(\x where x > 1) { say x }; f(7);
camelia rakudo-moar 912342: OUTPUT«===SORRY!=== Error while compiling /tmp/0K6A4BjAb3␤Preceding context expects a term, but found infix > instead␤at /tmp/0K6A4BjAb3:1␤------> sub f(\x where x >⏏ 1) { say x }; f(7);␤»
..rakudo-jvm 912342: OUTPUT«===SORRY!=== Error while compiling /tmp/Lp8a55TyZJ␤Preceding context expects a term, but found infix > instead␤at /tmp/Lp8a55TyZJ:1␤------> sub f(\x where x >⏏ 1) { say x }; f(7);␤»
..rakudo-parrot 912342: OUTPUT«===SORRY!=== Error while compiling /tmp/kTdGyPbToB␤Preceding context expects a term, but found infix > instead␤at /tmp/kTdGyPbToB:1␤------> sub f(\x where x >⏏ 1) { say x }; f(7);␤»
grondilu n: sub f(\x where x > 1) { say x }; f(7); 13:58
camelia niecza v24-109-g48a8de3: OUTPUT«7␤»
moritz p: sub f($x where $x > 1) { say $x }; f 7
camelia rakudo-parrot 912342: OUTPUT«7␤»
moritz it seems it parses the x as a sub call
which is why it expects a term afterwards 13:59
it seems htmlify hasn't bitrotted as much as I feared 14:04
and so far it's below 1GB of memory usage, which is also better than what I feared 14:05
dalek c: 59eff62 | moritz++ | lib/Perl6/Documentable/Registry.pm:
avoid deprecated .exists method
14:06
c: f4856f2 | moritz++ | lib/Perl6/TypeGraph/Viz.pm:
work around broken open :p (pipe) feature in rakudo
14:09 kaare_ left, wooden left
colomon grondilu++ 14:09
14:12 spider-mario left
moritz p: my @a = 1, 2, 3; say ($@a, ).elems 14:13
camelia rakudo-parrot 912342: OUTPUT«1␤»
moritz p: my @a = 1, 2, 3; my @b = $@a, 4, 5; say @b.perl 14:15
camelia rakudo-parrot 912342: OUTPUT«Array.new([1, 2, 3], 4, 5)␤»
14:20 jnap joined 14:25 jnap left 14:37 atroxaper joined
eiro hello 14:39
FROGGS hi eiro 14:40
eiro jnthn, back to school? srly ?
colomon woah, say [+] rand xx 10000; actually crashes with a stack overflow on JVM. :( 14:41
tadzik hey hey eiro!
eiro tadzik, \o/ wasup ?
grondilu we now have three implementation of the gamma function: rosettacode.org/wiki/Gamma_function Pick the one you want to put in the core if you want to :)
jnthn eiro: ?
14:44 jnap joined
eiro jnthn, filey school since 40mn 14:44
tadzik eiro: fun times :) Still struggling to finish my studies. How are things? 14:45
jnthn eiro: wtf :)
eiro: bah, talk about clickign the wrong thing 14:46
moritz p: my @a = 1, 2; my @b = 4, 5; say (@a, @b).tree 14:48
camelia rakudo-parrot 37c956: OUTPUT«1 2 4 5␤»
moritz p: my @a = 1, 2; my @b = 4, 5; say (@a, @b).tree.perl
camelia rakudo-parrot 37c956: OUTPUT«LoL.new([1, 2], [4, 5])␤»
moritz p: my @a = 1, 2; my @b = 4, 5; my @c = (@a, @b).tree; say @c.perl 14:50
camelia rakudo-parrot 37c956: OUTPUT«Array.new([1, 2], [4, 5])␤»
moritz so .tree only itemiizes the inner containers, but not the parcel it was called on?
p: my @a = 1, 2; my @b = 4, 5; my @c = (@a, @b).tree; say @c.elems
camelia rakudo-parrot 37c956: OUTPUT«2␤»
eiro tadzik, wow .. still student? courage! everything's fine there: familly, friends and collegues make me really happy. my only sadness is about work: i feel i'm not a computer engineer now ... just an overpayed hotliner
jnthn, ok :) i was wondering if you want to finish your phd 14:51
14:54 pecastro joined 14:55 johnmilton joined
moritz r: say (<a b c> Z <D E F>).tree.perl 15:00
camelia rakudo-parrot 37c956, rakudo-jvm 37c956, rakudo-moar 37c956: OUTPUT«(["a", "D"], ["b", "E"], ["c", "F"]).list␤»
moritz p: my $x = (<a b c> Z <D E F>); say $x.list.elems; say $x.flat.elems; say $x.tree.elems 15:02
camelia rakudo-parrot 37c956: OUTPUT«3␤6␤3␤»
tadzik eiro: is it called something like "deliveries"? We have that team at work too, and they sometimes complain that their work is something between hardcore bugfixing and customer support, something writing 1 line of code a week
15:02 yogan joined
tadzik some find it challenging, some frustrating, I guess it can be both :/ 15:05
dalek c: ca83c5c | moritz++ | lib/containers.pod:
elaborate on item vs. list vs. flattening
15:09
moritz hoelzro: iirc you asked about flattening the other day. The commit above should explain it 15:10
any feedback (not just from hoelzro) on those docs is very welcome.
15:10 kivutar joined
timotimo "as if the was no" <- should read there 15:11
dalek c: 44f2b0b | moritz++ | lib/containers.pod:
fix typo, timotimo++
15:12
timotimo i think it would be nice to mention much earlier what [...] causes to happen and how Array.new relates to that 15:13
dalek c: b2e7ebf | moritz++ | lib/containers.pod:
explicit mention what [] and Array.new do
15:14
moritz timotimo++ 15:15
timotimo that looks good :)
moritz it's not really early; I don't know how to do that without restructuring the whole article
masak oh heiro! :)
eiro tadzik, no deliveries at all: "primary mission" is to provide support and documentation and support for users. engineering is case of spare times. we have more than 40k users and i manage 4 applications: there is no spare time
it was a trap!
masak, \o/
masak eiro: is it eating your soul? maybe look for something else? 15:16
eiro at least, my collegues are awesome
masak that's something.
I've had that kind of job.
timotimo moritz: i feel like for the example (@left Z @right).tree there's brackets missing around it, or perhaps not?
15:17 denis_boyun left
moritz timotimo: no, I don't want to create an itemized array 15:18
timotimo ah, of course
moritz IMHO it should be documented for all Positional methods whether they flatten or not 15:19
eiro masak, i looked for something else: but IT in elsass sucks in many ways and the very rare interesting jobs are always reserved. my best chance to have something good is to stay at university and try to get a position as research assistant engineer 15:20
moritz which kinda makes me wish we had a way to put that information in the signature
eiro (for astrophysics or biology for example)
moritz eiro: moving is not an option?
p: my $x = 0; say (<a b c> Z (1, 2, 3)).map({ $x++; $_ }); say $x
camelia rakudo-parrot 37c956: OUTPUT«a 1 b 2 c 3␤6␤»
moritz .map flattens. 15:21
p: say (<a b c> Z (1, 2, 3))[0].perl
camelia rakudo-parrot 37c956: OUTPUT«("a", 1)␤»
eiro moritz, i had teleworked and it lead me to depression (even if the job itself and the firm was all i ever dreamed)
tadzik eiro: yeah, good colleagues and good environment are awesome to have, even if work is not always very interesting
eiro and my familly is not ready to move (my wife is teacher and very bond to its college) 15:22
colomon just hit that ugly moment when he actually has to implement the ugly core to make his beautiful abstraction work
moritz p: say (<a b c> Z (1, 2, 3)).elems
camelia rakudo-parrot 37c956: OUTPUT«3␤»
eiro tadzik, that's why i keep beeing happy: everything but my work is really nice in my live 15:23
moritz how do lists work in p6 pod?
moritz forgot
eiro i have to stop complaining and code more on my free time :) 15:24
tadzik moritz: just elems
=item foo, =item bar
nothing around them
...or so I remember :-)
15:25 zakharyas joined
masak <eiro> i have to stop complaining and code more on my free time :) 15:29
eiro: you and me both...
eiro masak, sure but you are still coding. i'm just complaining :) 15:32
dalek c: 9c28c71 | moritz++ | lib/containers.pod:
Add some more examples about what flattens and what does not
15:33
moritz tadzik: takk 15:34
masak eiro: coding... but not enough Perl 6. :/
timotimo moritz: either "the whole point of tree is not to flatten" or "to not flatten" (something about split infinitives or something) 15:35
dalek c: c6c9e23 | moritz++ | lib/containers.pod:
grammaro, timotimo++
masak the whole discussion about split infinitives is so silly. 15:36
moritz timotimo: thanks; I've chosen the latter, it seems to put more emphasis on the negation
eiro so i am. i write perl5 code. sometims python one
masak aye.
moritz++
moritz has fun with some p5 projects in his free time 15:37
masak I should use more p5 in my spare time, too. it's a great language. 15:40
I also want to look into Rust.
eiro so do i: github.com/eiro/app-atombomb/blob/...n/atombomb
(which will be an excellent exercice to write perl6 code: rewrite it in perl6 15:41
clojure and rust are clearly something i would like to try
bjz does most of his programming work in Rust, but thinks perl6 looks neat 15:42
eiro i was reading the code of moarvm last month, wondering why write it in C (rust or go must be easier ?) 15:43
bjz likes linguistic abstraction ^_^
eiro bjz, is rust stable enought for production ?
bjz eiro: some crazies are using it for production I think - you'd have to ask on irc.mozilla.org #rust 15:44
moritz "some crazies are using it for production" -- that sounds about the same as Perl 6 :-)
eiro yep :) i have some perl6 scripts there 15:45
jnthn eiro: C is still something of a sweet spot for doing things like MoarVM.
bjz eiro: it's pretty good, we don't have many show-stopping bugs (we have a build bot), but the syntax/semantics are still shifting - much less than they used to though. things are very much crystalizing
jnthn eiro: Compiles pretty much everywhere and has good tooling are two notables, but also the ability to screw with memory however you like is rather useful when implementing stuff like GCs. 15:46
bjz moritz: how is perl6 going?
jnthn: good thing about Rust is it should fill those niches well - but the tooling is still lacking 15:47
eiro jnthn, sure but i imagine that write moarvm in C is more much work than in go or rust
to finally deal with same problems (concurrency, garbage collection, ...) 15:48
bjz jnthn: does the VM use address-of gotos?
jnthn: I heard the Erlang VM does
eiro there was a post on hackernews about someone who uses the opensource parts of chrome as C runtime. 15:49
moritz bjz: well, we are having fun with MoarVM, and a slowly growing module ecosystem
jnthn bjz: Can use computed goto where it's available, yes.
moritz we just need more speed, docs and a killer app. 15:50
who doesn't? :-)
bjz jnthn: apparently address-of gotos are really good for implementing vms for dynamic langs - but it's something Rust doesn't have. dunno if there are alternatives though.
moritz: awesome
eiro you all guys are my stars! when i see the work accomplished last years, it still amaze me!
timotimo MoarVM seems to be providing "more speed" already, which makes me very happy
jnthn bjz: Yeah, they can be useful. 15:51
bjz moritz: where does MoarVM fit in with Rakudo?
ohh: github.com/moarvm/moarvm 15:52
eiro is parrot still needed to build nqp/moarvm ?
timotimo no :)
i need to revise that readme again
eiro wow: awesome! i have to update my installation script!
tadzik eiro: try rakudobrew :) 15:53
it even supports moarvm since yesterday or so
15:53 berekuk left 15:54 rindolf left
tadzik ok, since Now, if you look at the commits 15:54
15:54 berekuk joined 15:55 thou joined
bjz moritz: one thing that has been super useful for the Rust community is the 'This Week in Rust' posts. Is there anything like that for Perl6 out there? 15:55
bjz is curious to look at the latest work
timotimo GlitchMr used to build weekly perl6 changes posts on his blog
jnthn eiro: Much more work? That's hard to say. I *know* C, its tooling, its semantics, and how to design stuff so it can be implemented in C. I'd have been starting from zero on all those with anything else. Not to mention there's more C hackers around to contribute... 15:56
15:56 ajr joined 15:57 ajr is now known as Guest95727
jnthn eiro: I'm not saying it couldn't have been done well in Go or Rust, but I'm not at all sure we'd be this far along if I'd taken that path... 15:57
15:57 Guest95727 is now known as ajr_ 15:58 Psyche^ joined
bjz jnthn: yes. MoarVM looks like a considerable undertaking to say the least 16:00
clsn finds a bug in his Signature matching code. Oops. 16:02
timotimo clsn: you brought shame upon your whole family! time for sepukku!
we don't allow people to commit code with any bugs in them!
bjz timotimo: do you have a link to those post btw? 16:03
bjz is curious
jnthn timotimo: Oh noes, I guess I should leave too? :P
bjz jnthn: A couple of years ago Rust was a very different beast - much uglier and unpolished. would never have contemplated writing a project in it. And Go? I would be very skeptical about writing a VM in Go. Sounds like C was the best choice.
arnsholt If we don't allow bugs, what about build-breaking commits? O=)
16:03 Psyche^_ left, odoacre left 16:04 odoacre joined
bjz Is Perl6 pretty stable now? Is it just the speed issue you guys are working on? 16:04
timotimo mildly stable 16:05
the stableness is very unevenly distributed
bjz ahh yes
sounds familiar
:P
timotimo we refer to parts of the specification that are "solid", "slushy" or "liquid" ;)
bjz heh
awesome
grondilu but usually when you don't do fancy or not-yet-implemented stuff, it works fine.
16:06 rindolf joined
grondilu I actually haven't encountered a bug for a while. 16:06
bjz timotimo: github.com/mozilla/rust/wiki/Meeti...eze-for-10 16:07
timotimo: :P
timotimo bjz: GlitchMr took down his blog :(
bjz oh :(
timotimo i often hit bugs, but i'm specifically looking for them :P
bjz ICEs? :D 16:08
(internal compiler errors)
oh wait
prel isn't compiled
heh
s/prel/perl6/
timotimo perl6 is compiled, though
bjz jitted?
timotimo on the JVM, yes
on MoarVM, some time later this or early next year 16:09
perhaps
no promises
but on all backends of rakudo, it's also AOT'ed
timotimo afk for a bit
jnthn Does somebody have an example of some gather/take code they know explodes the stack on JVM? 16:12
16:12 BenGoldberg joined
jnthn can likely create one, though... 16:13
eiro tadzik, i'll check rakudobrew. i was using: github.com/eiro/labo/blob/master/rakudo_install 16:14
jnthn j: say [+] 1..10000
camelia rakudo-jvm 37c956: OUTPUT«50005000␤»
eiro oh crap ... redundant work:
jnthn j: say [+] rand xx 10000
eiro i switch to your script
camelia ( no output )
eiro jnthn, thanks for explainations about "why C" 16:15
16:15 molaf_ joined 16:19 molaf left
grondilu j: say [+] gather take rand for ^10000 16:19
camelia ( no output )
grondilu j: say .[.end] given gather take rand for ^10000 16:20
camelia ( no output )
16:21 denis_boyun joined
jnthn grondilu: Turns out the "say [+] rand xx 10000" does it 16:21
grondilu yeah but I thought you might want something more explicit
16:21 kivutar left
jnthn nah, that will do 16:22
But thanks :)
jnthn compiles attempt 1 of N at fixing this...
jnthn wonders how big N will be... :S
wtf, I think it worked first time 16:24
And gather.t still passes 16:25
16:26 kivutar joined
timotimo wtf 16:27
colomon jnthn++ 16:28
16:29 lue left
dalek p: 8055d65 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (2 files):
Enable invoking reset with a continuation.

If given a continuation instead of a coderef, then it tags the stack and resumes the continuation as the very next thing. This will enable fixing Rakudo on JVM's gather/take stack overflow issues.
16:30
jnthn So, how hard will the corresponding Moar patch be...
timotimo assumes "not very hard"
to increase the suspense for me, i'll be AFK for a bit now :P 16:31
16:32 wooden joined
jnthn I'm not sure anything to do with implementing continuations can be described as "not very hard" :P 16:33
arnsholt I find continuations a bit mind-bending as a concept, so implementing them is probably even harder =) 16:35
masak depends how bent your mind already is... :P 16:36
arnsholt =D
masak I find for most of these things, bending the mind is a once-only cost. or at least it gets easier over time.
arnsholt Oh, definitely
jnthn True. I couldn't have got the JVM fix right first try if I hadn't done the continuations on Moar within the last few weeks. 16:37
arnsholt My mind is mostly bent there to get continuations (I think), but not quite there 16:38
16:39 rindolf left, araujo left 16:42 lue joined 16:43 araujo joined, araujo left
jnthn spectest on Rakudo JVM with the fix looking good 16:45
colomon \o/
jnthn Next to build a Rakudo with my first pass at the fix on Moar
colomon \o/ \o/
jnthn btw, even for things that didn't stack overflow, gather/take was kinda horrible on JVM before this 16:46
So hopefully this helps performance on a few things. 16:47
jnthn guesses this was probably the most annoying of the Rakudo JVM bugs.
16:49 lue left, thou left
colomon even with the relatively small amount of p6 playing around I've done in the last month, I hit the stack overflow thing more than once. 16:50
timotimo yeah, you run into lazy lists quite frequently 16:53
jnthn Promising news: with my attempted fix on Moar, Rakudo builds, sanity tests, does "say [+] rand xx 10000" faster than on Parrot and passes gather.t.
timotimo: Well, map is lazy, but doesn't hit the bug
timotimo: It's specifically gather/take
spectest on MoarVM underway.
clsn fixes his bug and pushes, so it's added to the pull request.
colomon in fact, it was leading me to rewriting things using map instead of gather/take. :)
hoelzro moritz++ # docs 16:55
evening perl 6ers!
colomon hoelzro: not quite noon here. ;) 16:56
hoelzro good * 6ers, then =)
colomon \o
16:57 jnap left, Shozan is now known as SHODAN
timotimo hey hoe 17:00
17:03 lue joined
moritz hoelzro: do they make sense to you? 17:03
hoelzro timotimo: hey tim =P
moritz: yes, that cleared a few things up
moritz \o/ 17:04
dalek p: eef5867 | jnthn++ | tools/build/MOAR_REVISION:
Bump to a MoarVM with continuation improvements.
17:05
kudo/nom: 7b540cc | jnthn++ | tools/build/NQP_REVISION:
Get NQP with JVM/Moar continuation improvements.
17:06
kudo/nom: 8c054a4 | jnthn++ | src/core/GatherIter.pm:
Fix GatherIter not to add a frame every take.

Fixes the typical case of StackOverflowException on the JVM, and leads to far better gather/take performance on both MoarVM and JVM.
timotimo this makes me happy ^ 17:08
nwc10 does parrot do gather/take? 17:09
eiro tadzik, github.com/tadzik/rakudobrew/blob/...udobrew#L8 17:10
jnthn nwc10: Yes, implemented using coroutines
nwc10: Its implementation is at least partly a PIR hack. :)
eiro i want it to be an env variable. will you accept a patch?
nwc10 whereas JVM and MoarVM implementations are using continuations? And a less hacky design? 17:11
jnthn Well, nqp:: ops instead :) 17:12
It's a bit cleaner, to me at least.
tadzik eiro: sure 17:13
eiro tadzik, thanks :) 17:16
tadzik, no lib used, just 5.10. this is about being easy to install, right ? 17:23
tadzik eiro: what do you mean? 17:24
eiro tadzik, the only use you do are pragmas (strict, warnings, 5.010) is this just because you haven't felt the need of loading something else? 17:27
tadzik eiro: I didn't feel a strong need for anything else, and I think the more dependency-free it is, the better :) 17:28
eiro (rewriting slurp instead of using File::Slurp for exemple)
tadzik oh, I did that? :)
eiro yep
colomon jnthn: for what it's worth, say [+] 1 xx 10000; runs in .971s on parrot, 1.200s on Moar, and 6.2s on jvm. (The last crashed before your patch.) 17:29
tadzik oh, indeed
yeah, I probably wanted it dependency free
eiro and write_file <=> spurt
tadzik, app::fatpacker aware, right ?
tadzik eiro: yeah
moritz p: 4.sqr 17:30
17:30 berekuk left
camelia rakudo-parrot 37c956: OUTPUT«No such method 'sqr' for invocant of type 'Int'␤ in block at /tmp/2uZuNY5h7f:1␤␤» 17:30
moritz p: sqr 4
camelia rakudo-parrot 37c956: OUTPUT«===SORRY!=== Error while compiling /tmp/GZb86Q2MOA␤Undeclared routine:␤ sqr used at line 1. Did you mean '&sqrt'?␤␤»
BenGoldberg p: sqrt 4
camelia ( no output )
BenGoldberg p: say sqrt 4
camelia rakudo-parrot 37c956: OUTPUT«2␤»
BenGoldberg p: say sqrt 2
camelia rakudo-parrot 37c956: OUTPUT«1.4142135623731␤»
17:30 berekuk joined
jnthn colomon: Curious, I got Moar a bit faster. Was that on latest, though? 17:30
BenGoldberg p6: say sqrt 2
camelia rakudo-moar 37c956: OUTPUT«1.414214␤»
..rakudo-parrot 37c956: OUTPUT«1.4142135623731␤»
..rakudo-jvm 37c956, niecza v24-109-g48a8de3: OUTPUT«1.4142135623730951␤»
eiro ok then :)
colomon jnthn: This is perl6 version 2013.12-313-g8c054a4 built on MoarVM version 2013.10-393-gc417239
BenGoldberg Why does moar output lots fewer digits?
colomon jnthn++ # shaved 5 seconds off both moar and jvm (pre-crash) timings. 17:31
(pre-crash -- time it ran until it crashed)
17:32 atroxaper left
BenGoldberg p6: say 2.sqrt.fmt "%10f" 17:32
camelia rakudo-parrot 37c956: OUTPUT«===SORRY!=== Error while compiling /tmp/Kj8CNCkgLa␤Two terms in a row␤at /tmp/Kj8CNCkgLa:1␤------> say 2.sqrt.fmt ⏏"%10f"␤ expecting any of:␤ method arguments␤ postfix␤ infix st…»
..rakudo-jvm 37c956: OUTPUT«===SORRY!=== Error while compiling /tmp/PCg6WDnxtK␤Two terms in a row␤at /tmp/PCg6WDnxtK:1␤------> say 2.sqrt.fmt ⏏"%10f"␤ expecting any of:␤ method arguments␤ postfix␤ infix stopp…»
..rakudo-moar 37c956: OUTPUT«===SORRY!=== Error while compiling /tmp/Q10wGKOqTO␤Two terms in a row␤at /tmp/Q10wGKOqTO:1␤------> say 2.sqrt.fmt ⏏"%10f"␤ expecting any of:␤ method arguments␤ postfix␤ infix stop…»
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Two terms in a row (method call requires colon or parens to take arguments) at /tmp/jm4DOZNbZl line 1:␤------> say 2.sqrt.fmt ⏏"%10f"␤␤Parse failed␤␤»
moritz BenGoldberg: needs colon after the method name
diakopter need a colon
p6: say 2.sqrt.fmt: "%10f" 17:33
camelia rakudo-parrot 37c956, rakudo-jvm 37c956, rakudo-moar 37c956, niecza v24-109-g48a8de3: OUTPUT« 1.414214␤»
17:33 benabik left
BenGoldberg p6: say 2.sqrt.fmt("%.10f") 17:33
camelia rakudo-parrot 37c956, rakudo-jvm 37c956, rakudo-moar 37c956, niecza v24-109-g48a8de3: OUTPUT«1.4142135624␤»
BenGoldberg p6: say 2.sqrt.fmt("%.20f")
camelia rakudo-jvm 37c956: OUTPUT«1.4.142135623730951E19␤»
..rakudo-moar 37c956: OUTPUT«1.09223372036854775808␤»
..rakudo-parrot 37c956: OUTPUT«1.004.142135623731e+19␤»
..niecza v24-109-g48a8de3: OUTPUT«1.41421356237310000000␤»
diakopter wat
BenGoldberg Huh?
1.4.14???? 17:34
diakopter 1.09??
moritz looks like a fmt/sprintf bug
diakopter 1.004.14?
wow
geekosaur I like that E19/e+19 at the end of those too 17:35
(which might be a hint as to what's going on...)
BenGoldberg It's nice, I suppose that jvm and parrot are both wrong in basically the same way
colomon yeah, those are badly broken. (except niecza) 17:36
diakopter m: say 2.sqrt.fmt("%.40f")
camelia rakudo-moar 37c956: OUTPUT«1.0000000000000000303786028427003666890752␤»
colomon is probably at fault
diakopter m: say 2.sqrt.fmt("%.1f")
camelia rakudo-moar 37c956: OUTPUT«1.4␤»
diakopter m: say 2.sqrt.fmt("%.5f")
camelia rakudo-moar 37c956: OUTPUT«1.41421␤»
diakopter m: say 2.sqrt.fmt("%.9f")
camelia rakudo-moar 37c956: OUTPUT«1.414213562␤»
diakopter m: say 2.sqrt.fmt("%.10f") 17:37
camelia rakudo-moar 37c956: OUTPUT«1.4142135624␤»
BenGoldberg p6: 2.sqrt.fmt("%.15f").say
camelia rakudo-parrot 37c956, niecza v24-109-g48a8de3: OUTPUT«1.414213562373100␤»
..rakudo-jvm 37c956, rakudo-moar 37c956: OUTPUT«1.414213562373095␤»
BenGoldberg p6: 2.sqrt.fmt("%.13f").say
camelia rakudo-parrot 37c956, rakudo-jvm 37c956, rakudo-moar 37c956, niecza v24-109-g48a8de3: OUTPUT«1.4142135623731␤»
BenGoldberg p6: 2.sqrt.fmt("%.14f").say
camelia rakudo-parrot 37c956, rakudo-jvm 37c956, rakudo-moar 37c956, niecza v24-109-g48a8de3: OUTPUT«1.41421356237310␤» 17:38
diakopter 19 breaks moar
18 is fine
BenGoldberg At 15, are digits being gotten wrong, or are parrot and niecza merely rounding differently from jvm and moar? 17:39
17:42 raiph joined 17:43 jnap joined
colomon BenGoldberg: almost certainly it's in issue in sprintf's rounding in moar and jvm. 17:43
moritz does it try to multiply the float by a big number and then extract digits from that? 17:44
if yes, it might explain the bogus E19 at the end
raiph bjz, timotimo: glitchmr changed his github id: xfix.github.io/
17:47 jnap left
raiph bjz: is irclog.perlgeek.de/perl6/2014-01-19/summary (and other days) at all helpful? 17:48
17:48 ajr_ left
bjz raiph: cheers 17:49
raiph: the advent calendar is also nice reading
it seems :)
xfix Yeah, I don't have have time work on my blog anymore :-(. Sorry for not informing.
17:49 ajr joined
xfix The xfix.github.io is an archive. 17:50
I've lots of things to do in school.
17:50 ajr is now known as Guest22229
diakopter daaaaang rakudo-moar builds so fast 17:50
colomon is someone adding these floating point mistakes to roast? 17:53
17:59 Guest22229 left 18:00 ajr_ joined
tadzik eh, bailador tests still fail when it's precompiled 18:04
timotimo d'oh :( 18:05
18:06 benabik joined
japhb colomon: ISTR you adding the ones that I'd found a few weeks ago. 18:11
18:11 ajr_ left
colomon japhb: but these are fresh, so far as I know. 18:12
18:12 stevan_ joined 18:13 ajr joined, ajr is now known as Guest27784 18:14 Guest27784 is now known as ajr_
raiph xfix++ # having -Ofun with p6; helping others to; prioritizing school 18:14
18:16 btyler joined 18:19 jeffreykegler joined, berekuk left
japhb colomon: Yep, I just figured "right next to where you put the ones I found" would be a good place for these. :-) 18:20
tadzik wow, github is superfast at forking these days
colomon japhb: ah, yeah, it's probably reasonable
18:22 berekuk joined
FROGGS can somebody tell how hard it might be to create mod_perl6 for apache? 18:25
BenGoldberg Harder than implementing FastCGI, probably ;) 18:27
raiph .oO ( easier than last time? )
FROGGS I mean, I'd need such a Perl6Handler to run Perl 6 besides Perl (besides PHP), right? 18:28
raiph www.smashing.org/jeff/node/21
( mod_perl6 )
FROGGS ohh
timotimo i'd prefer fastcgi or psgi if i were you 18:29
or if i were anybody really
tadzik . o O ( Good to have more QA than ":qa" )
18:33 kivutar left
raiph FROGGS: mod_perl6 built atop mod_parrot; i imagine it's hopelessly bitrotted and may well be wrong approach for 2014 18:33
18:33 kivutar joined
BenGoldberg I don't think that psgi will work without perl5... of course you can have both perl5 and perl6 loaded in once process 18:34
dalek p: 795b83b | jnthn++ | src/vm/moar/QAST/QAST (2 files):
Better void context conveyance.
kudo/nom: 17400f0 | jnthn++ | src/core/GatherIter.pm:
Micro-optimize GatherIter.
FROGGS raiph: possibly
BenGoldberg: why not?
BenGoldberg How would plack deal with a perl6 program? 18:35
tadzik well, plack is perl 5, but there are working PSGI tools for Perl 6
I fixed just half an hour ago :P
BenGoldberg Oh, nevermind then ;)
tadzik whoa, mokudo builds in about 2/3 of yesterday's time :) 18:37
timotimo building mokudo hardly even stresses the binder, for example 18:38
that's very cool
dalek ast: de89abd | jnthn++ | / (3 files):
Unfudge passing TODOs for JVM.

Which we get thanks to fixing things in Rakudo that similarly affected Moar.
18:39
raiph moritz: "To place a non-Array into an array variable" what about calling @vars "Positional variables" (and %vars "Associative variables") 18:42
dalek kudo/nom: 706bc15 | jnthn++ | docs/ChangeLog:
Some more ChangeLog entries.
18:43
timotimo parrot's stage parse is at 99 seconds for me now, btw :)
18:44 jnap joined
jnthn timotimo: What's the Moar and JVM times, ooc? 18:44
timotimo gimme a minute (at least) 18:45
jnthn :)
bbi10
colomon jnthn: for me, jvm is 63s, moar is 75s, parrot is 84s 18:46
18:48 peteretep joined
peteretep Any public estimate on when Rakudo for the JVM will be available? 18:48
18:48 jnap left
timotimo rakudo for the jvm is already available, just not Rakudo Star 18:48
FROGGS rakudo itself is available since april 2013 or so I think 18:49
rakudo@jvm I mean
timotimo 76 seconds for stage parse on moarvm
FROGGS May 2013 actually 18:50
18:51 rindolf joined
colomon it didn't merge with nom until June, did it? 18:51
seems like it was a big deal at YAPC::NA, and sorear++ did some furious hacking to make some corners of it work there
FROGGS jnthn++'s blog post said that the may release "will" contain the jvm backend 18:52
I'd say that speaks for being in nom
hmmm
tadzik FROGGS: there's something wrong with moar's dir()
FROGGS well, w/e, it is in there by now :o)
tadzik: do tell
tadzik see gist.github.com/tadzik/8509235
it gives back paths that are too relative :P 18:53
I tried to fix it, but settings compilation blows up
BinGOs being too relative is incest
FROGGS I am unable to read your shell's output
ahh, I see it
tadzik see lines 6, 7, then 13 and 14
I should have a separate prompt for gisting stuff :) 18:54
FROGGS :o)
18:54 darutoko left 18:55 ajr_ left, SamuraiJack left
raiph peteretep: do you mean having the JVM backend in Rakudo Star rather than just the compiler? (in which case, I'd say eta is next 2-3 months) 18:56
18:56 kivutar left
FROGGS tadzik: I am currently testing a patch 19:02
tadzik \o/
FROGGS wow, 65s for moar's stage parse 19:03
compared to 55s jvm and 118 parrot
colomon FROGGS: interesting, you got faster than me for moar and jvm and slower for parrot.
FROGGS colomon: I am curious... what are your timings? 19:04
19:04 stevan_ left
colomon FROGGS: for me, jvm is 63s, moar is 75s, parrot is 84s 19:04
FROGGS it has been jvm < moar < parrot for me for quite a while
colomon same here 19:05
FROGGS k
colomon but weirdly different magnitudes
FROGGS but yeah, that is weird
moritz has 59s jvm < 71s moarvm < 131s parrot
btyler might be worth specifying if you're using oracle or openjdk java
FROGGS openjdk
moritz same here
FROGGS my moar is -O1 -g3
colomon why is my parrot so much faster than everyone else's?
moritz my moar is 'Configure.pl' without extra args 19:06
colomon: you have a fast-track parrot. Why don't you share it? :-)
jnthn Well, the orderings are consistent even if the magnitudes are curious :)
timotimo i give --optimize=1 to moarvm
FROGGS -O1 is the default
-g3 is what I have extra
timotimo what exactly would i have to do to help make it able to -O2 and -O3? something about aliasing and stuff?
raiph moritz++ # containers doc 19:07
moritz: "What flattens, what doesn't?" is a bullet point not heading; mistake?
BenGoldberg p6: use v7; say 'What?!'
camelia rakudo-parrot 8c054a, rakudo-jvm 8c054a, rakudo-moar 8c054a, niecza v24-109-g48a8de3: OUTPUT«What?!␤»
FROGGS timotimo: BOOTSTRAP.pm explodes for me under -O3
timotimo yeah
FROGGS dunno why though, the error might have changed 19:08
dalek c: 57b9dd3 | moritz++ | lib/containers.pod:
Fix heading, raiph++
jnthn One way is to see what -02 adds, then add them one by one to see if you can work out which is to blame.
timotimo will have a timing for jvm stage parse soon
19:10 kivutar joined
timotimo 66s for stage parse on jvm 19:12
19:18 berekuk left
dalek p: b171719 | (Timo Paulssen)++ | src/vm/parrot/QAST/Operations.nqp:
remove a duplicated bindattr_s
19:19
kudo-star-daily: 5476d46 | coke++ | log/ (5 files):
today (automated commit)
19:20
rl6-roast-data: e2ece0c | coke++ | / (6 files):
today (automated commit)
[Coke] (that was yesterday's today)
dalek kudo/nom: 5c0d9db | (Tobias Leich)++ | src/core/IO.pm:
prepend path in dir() when needed
19:26
FROGGS tadzik: ^^ 19:27
tadzik \' 19:28
\o/
raydiak what specifically is an "aggregate operation", as in "Cannot do aggregate operation on a type object"? 19:30
19:34 berekuk joined
dalek rl6-roast-data: d9e7b16 | coke++ | bin/rakudo.moar.sh:
Don't need master, rakudo is tracking vers.
19:35
grondilu r: say (1 - 1e-16).Num.fmt("%.12f")
camelia rakudo-parrot 706bc1, rakudo-jvm 706bc1, rakudo-moar 706bc1: OUTPUT«0.000000000000␤»
grondilu n: say (1 - 1e-16).fmt("%.12f") 19:36
camelia niecza v24-109-g48a8de3: OUTPUT«1.000000000000␤»
grondilu r: say (1 - 1e-8).fmt("%.12f")
camelia rakudo-parrot 706bc1, rakudo-jvm 706bc1, rakudo-moar 706bc1: OUTPUT«0.999999990000␤»
grondilu r: say (1 - 1e-12).fmt("%.12f")
camelia rakudo-parrot 706bc1, rakudo-jvm 706bc1, rakudo-moar 706bc1: OUTPUT«0.999999999999␤»
grondilu r: say (1 - 1e-15).fmt("%.12f")
camelia rakudo-parrot 706bc1, rakudo-jvm 706bc1, rakudo-moar 706bc1: OUTPUT«0.000000000000␤»
grondilu r: say (1 - 1e-14).fmt("%.12f")
camelia rakudo-parrot 706bc1, rakudo-jvm 706bc1, rakudo-moar 706bc1: OUTPUT«0.000000000000␤»
grondilu r: say (1 - 1e-13).fmt("%.12f") 19:37
camelia rakudo-parrot 706bc1, rakudo-jvm 706bc1, rakudo-moar 706bc1: OUTPUT«0.000000000000␤»
grondilu r: say (1 - 1e-12).fmt("%.12f")
camelia rakudo-parrot 706bc1, rakudo-jvm 706bc1, rakudo-moar 706bc1: OUTPUT«0.999999999999␤»
grondilu r: say (1 - 1e-7).fmt("%.6f") 19:38
camelia rakudo-parrot 706bc1, rakudo-jvm 706bc1, rakudo-moar 706bc1: OUTPUT«0.000000␤»
grondilu r: say (1 - .01).fmt("%.1f")
camelia rakudo-parrot 706bc1, rakudo-jvm 706bc1, rakudo-moar 706bc1: OUTPUT«0.0␤»
grondilu r: say (1 - .1).fmt("%.0f")
camelia rakudo-parrot 706bc1, rakudo-jvm 706bc1, rakudo-moar 706bc1: OUTPUT«0.␤»
grondilu I bet this bug has not been detected 19:39
r: say 0.9.fmt("%.0f") 19:40
camelia rakudo-parrot 706bc1, rakudo-jvm 706bc1, rakudo-moar 706bc1: OUTPUT«0.␤»
grondilu eval: printf "%.0f", .9
[Coke] Suggest we change r: to output r-p: r-j: r-m, to avoid multiline output on short stuff.
19:41 spider-mario joined
btyler 13:42:57 [~/prog/6perl/rakudo] btyler$ ./perl6-m -e "say 'hi OSX 10.9 :)'" 19:43
hi OSX 10.9 :)
benabik btyler: You fix the link problems? 19:44
btyler unfortunately I'm not at all sure how the makefile gets created. the only change needed is to remove the "install_name" flag from line 291
^ yep
well, 'fix'. more like 'random walk until something worked'
19:44 jnap joined
btyler so there might be something broken as a result, but r-m compiled and it seems to run ok. I'll run the tests now 19:45
'make test' is all good 19:46
FROGGS btyler++ # \o/ 19:47
colomon btyler++
benabik I think Moar's build system needs to be altered to keep install_name from ending up in the config, sadly.
19:48 jeffreykegler left
benabik I suppose Rakudo could s/// it out of the LDFLAGS, but that seems... less optimal. 19:48
19:50 jnap left
benabik `nqp-m --show-config | grep install_name`: moar::ldshared=-dynamiclib -install_name $(PREFIX)/lib/libmoar.dylib 19:50
FROGGS let's just remove that option from ldshared, and make another variable moarshared, and use that in the makefile too 19:53
benabik FROGGS: +1, in the middle of doing that. 19:55
19:55 Mouq joined
FROGGS assum day that is :o) 19:55
jnthn ooh, yay...OSX fix too \o/ 20:02
benabik Hm. Well that both worked and didn't. 20:04
tadzik FROGGS: ok, that's better, but one thing is off: it returns .. as one of the files, but only when checking in something else than "." 20:05
FROGGS tadzik: can you make a ticket? I will look at later but it is likely I forget
tadzik FROGGS: sure
benabik I no longer have -install_name /usr/local/lib/libmoar.dylib, but it still doesn't compiler. 20:06
Probably because there's not -lmoar
tadzik FROGGS: on RT? 20:07
benabik Yeah, if I add -lmoar, then it succeeds.
btyler: I assume you removed -install_name, but left the $(PREFIX)/lib/libmoar.dylib ?
btyler benabik: I left the path there for -dynamiclib
yes
but as I said, this was the result of random walk, I don't profess to much understanding here 20:08
FROGGS tadzik: yeah
tadzik or I'll just try to fix it :P 20:09
benabik Heh. Rakudo's configure already has a "remove a flag from ldshared" for windows. 20:10
FROGGS tadzik: sure, go ahead :o) 20:11
benabik Can someone tell me what M_LDFLAGS ends up being in Linux?
I don't see how libmoar gets added to the link calls on any platform.
20:12 zakharyas left 20:13 raiph left
FROGGS rakudo/Makefile:992:M_LDFLAGS = -O1 -g3 -Wl,-rpath,$(PREFIX)/lib -O1 -lm -lpthread -lrt -ldl 20:15
benabik: ^^
benabik Okay, so no reference to libmoar there...
japhb jnthn: How do you change the number of items passing through a Supply.map({})? It looks from the implementation that the result of the map block is just captured and passed on as a single unit. But I want to send 0..N separate items from the map for each incoming item from the parent Supply. 20:17
jnthn japhb: It's 1 to 1 at the moment, I'm afraid. 20:18
japhb Gah. Any workaround?
jnthn japhb: I can't immediately think of one, sorry. 20:19
tadzik grr, why cannqp::nextfiledir
japhb Does the map block have any way to see the sub-supply it is being used to create?
Dang.
tadzik * why can't nqp::nextfiledir return the same thing on every backend
japhb Well crap, that's going to require a redesign. :-/
jnthn japhb: ohh 20:21
japhb: You can implement it on terms of "on"
benabik FROGGS: Can you gist your whole Rakudo Makefile from Linux? I'm having problems seeing why it even compiles there...
FROGGS tadzik: we could prefix the path in moar already just to strip it again in rakudo... but this is not very heap this way 20:22
jnthn on -> $res { $input_supply => sub ($val) { $res.more($_) for 1..10; } };
FROGGS benabik: gist.github.com/FROGGS/8a8efadd9b0d1c69f2f3
tadzik FROGGS: or strip it in JVm in the first place
benabik FROGGS++
tadzik FROGGS: gist.github.com/tadzik/8510514 this is stupid, but makes File::Find tests pass :) 20:23
japhb jnthn: Oooh, thanks!
FROGGS tadzik: I always having a bad feeling about that... what if one of the paths contain "../" or otehr weird stuff? our substr-"magic" just will make it worse
jnthn japhb: The on meta-combinator can actually be used to define map and grep too :)
japhb: It's a bit overkill for them, though.
japhb Excellent to know I have that escape hatch, though.
That was going to get ugly. 20:24
jnthn Yes, it is a quite powerful construct.
20:24 araujo joined
jnthn I pondered things in that area for O(weeks) before I came up with it... 20:24
benabik FROGGS: And that compiles a rakudo-moar successfully? I don't see a single -lmoar or libmoar.so reference in there. 20:25
tadzik ok, File::Find and Shell::Command both work on Moar now, but JSON::Tiny dies with: Object conflict detected during deserialization. (Probable attempt to load two modules that cannot be loaded together).
jnthn tadzik: bah, that NYI... 20:26
tadzik bah
FROGGS benabik: yes, it does
benabik >.<
FROGGS benabik: the perl6-m runner does invoke moar directly
the moar binary* 20:27
benabik I think Linux's linker doesn't check that unreferenced symbols exist when you're compiling a shared library.
Or somethin.g
FROGGS tadzik: that is the same error that breaks v5 :o)
jnthn benabik: It must be that, yeah...
dalek ast: f344578 | coke++ | integration/weird-errors.t:
add test for RT #116268
20:28
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116268
FROGGS benabik: yeah, it does not care it seems: gcc -shared -fPIC -O1 -g3 -Wl,-rpath,/home/froggs/dev/rakudo/../nqp/install/lib -O1 -lm -lpthread -lrt -ldl -o dynext/libperl6_ops_moar.so dynext/perl6_ops.o dynext/container.o 20:29
benabik So the question is... Do I just hack in a -lmoar in Rakudo's Configure when $^O eq 'darwin'? 20:30
Or should it be generated by moar somehow and then propagated through the config? 20:31
jnthn benabik: hack that works > broken build
benabik: Feel free to hack it for now if you don't see an obvious better thing to do, and open a ticket. 20:32
benabik: Passing some flag through for "what to link against" is probably a good thing, though.
benabik jnthn: It looks like @moarimplib@ is a similar hack for Win32
jnthn benabik: Yeah, I think it is 20:33
benabik adds a -lmoar there for OS X and appears to get a build.
20:34 grondilu left
jnthn \o/ 20:34
btyler woo 20:36
dalek kudo/nom: 29a51f0 | coke++ | t/spectest.data:
Fix braino.
20:41
20:42 raiph joined 20:45 jnap joined 20:50 jnap left
timotimo tee hee, fix braino 20:50
that amuses me
benabik PR#238 + MoarVM master should fix OS X build. 20:54
eiro is --backend=moar in rakudo-star, yet ? 20:57
benabik Oh hey, I can probably bump MOAR_REVISION myself. 20:58
jnthn eiro: No
eiro: That'll take a bit more time.
dalek p: f0baba2 | benabik++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for OS X build fix
20:59
btyler nice, benabik++ 21:01
benabik Pull request updated with NQP_REVISION bump. Also removed a (hopefully) unneeded Windows tweak, which somebody should actually test.
eiro ohhh ... that's why my script doesn't work this the parameters from rakudobrew 21:02
thanks for reply
'night all
21:08 colomon left
masak 'night, eiro. 21:11
arnsholt Looks like binding attributes in CStructs on JVM works, FSVO of works 21:13
Need to implement reading them as well to check that the right values get bound =)
timotimo heh :) 21:14
FROGGS arnsholt++ 21:16
masak arnsholt++ 21:17
jnthn arnsholt__
uh :)
arnsholt++
timotimo __arnsholt__ does python now? :)
masak guesses jnthn was just typing in the dark :P 21:18
dalek p/moar_hint_precalc: 9594cf8 | (Timo Paulssen)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
introduce nqp::hintfor on moarvm
21:20
timotimo jnthn: this is lacking the bootstrap files update, but you can check out the code after updating from origin/master
huh, wait, that's no tthe right commit 21:23
dalek p/moar_hint_precalc: 8a654d1 | (Timo Paulssen)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
use nqp::hintfor getattr/bindattr at compile time
21:27
timotimo that's the one i meant
21:29 colomon joined 21:37 molaf_ left, beastd joined 21:38 diakopter left, mtk left 21:40 thou joined 21:46 jnap joined 21:51 jnap left 22:00 diakopter joined, kaare_ joined 22:03 raiph left 22:05 xenoterracide left 22:11 stevan_ joined, raiph joined
benabik So amusing to run parallel make. My perl6-m SETTING compile seems to go start, mast, classfile, jar while my perl6-p is start, parse, syntaxcheck, ast, optimize, mast, mbc. 22:17
Java parse 200, Parrot 527, Moar 163. Win.
22:18 xenoterracide joined
jnthn Whoa...JVM usually wins... 22:20
benabik Either the OS X JVM isn't as fast, or maybe it just had less to fight with. I'm running parallel on a 2 core laptop with a not terribly fast drive. 22:21
22:29 raiph left
benabik Hm. m-install was missing a lot of DESTDIR. 22:41
22:42 rindolf left 22:47 jnap joined, raiph joined
japhb r: my $a := Supply.new; my $b := Supply.new; on -> $res { $a => sub ($val) { $res.more($val) } }; $b.tap({$_.perl.say}); $a.more($_) for 1..10; 22:49
camelia rakudo-moar 29a51f: OUTPUT«===SORRY!=== Error while compiling /tmp/F28HVellbw␤Undeclared name:␤ Supply used at line 1␤Undeclared routine:␤ on used at line 1␤␤»
( no output )
..rakudo-parrot 29a51f: OUTPUT«===SORRY!=== Error while compiling /tmp/DiuJm4KFdR␤Undeclared name:␤ Supply used at line 1␤Undeclared routine:␤ on used at line 1␤␤»
japhb j: my $a := Supply.new; my $b := Supply.new; on -> $res { $a => sub ($val) { $res.more($val) } }; $b.tap({$_.perl.say}); $a.more($_) for 1..10;
camelia ( no output )
japhb jnthn: What am I doing wrong here ^^
22:50 atta left 22:51 jnap left
jnthn How does $b ever get values? 22:52
j: my $a := Supply.new; my $b := on -> $res { $a => sub ($val) { $res.more($val) } }; $b.tap({$_.perl.say}); $a.more($_) for 1..10;
camelia rakudo-jvm 29a51f: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
jnthn j: my $a := Supply.new; my $b := on -> $res { $a => sub ($val) { $res.more($val) xx 5 } }; $b.tap({$_.perl.say}); $a.more($_) for 1..10;
camelia rakudo-jvm 29a51f: OUTPUT«1␤1␤1␤1␤1␤2␤2␤2␤2␤2␤3␤3␤3␤3␤3␤4␤4␤4␤4␤4␤5␤5␤5␤5␤5␤6␤6␤6␤6␤6␤7␤7␤7␤7␤7␤8␤8␤8␤8␤8␤9␤9␤9␤9␤9␤10␤10␤10␤10␤10␤»
japhb smacks his forehead 22:54
22:54 beastd left
japhb That's why a second pair of eyes makes all the difference 22:55
jnthn japhb: To clarify on: it's actually an actor pattern like construct. It lets you specify things to do for each of a set of supplies that may push values at you, but encapsulates some synchronization to make sure you're only ever in one of the closures at once. 22:56
23:02 jeffreykegler joined 23:05 spider-mario left
japhb jnthn: Yeah, I recognized that from the docs, but there were enough places where on was the last part of a function (thus returning the result of the on), that I forgot I needed to assign it to something. ;-) 23:07
jnthn ah, yes :) 23:08
23:14 Rotwang left 23:16 raiph left 23:19 dmol left
japhb jnthn: Can you tell if a Supply has been closed, as with Channel.closed? 23:21
23:22 pippo joined
pippo o/ perl6 23:22
japhb o/ piip
er
o/ pippo
pippo :-)) 23:23
m: my @a = 1..10; say @a[*-1]
camelia rakudo-moar 29a51f: OUTPUT«10␤»
pippo r: my @a = 1..10; say @a[*-1]
dalek p: 4fcbf08 | (Timo Paulssen)++ | src/vm/moar/stage0/ (11 files):
update stage0 to get nqp::hintfor
camelia rakudo-parrot 29a51f, rakudo-jvm 29a51f, rakudo-moar 29a51f: OUTPUT«10␤»
23:23 stevan_ left
jnthn japhb: There's not a good "untap" callback just yet... 23:23
japhb: You can only really do it by introspection and I don't know if it cascades properly... 23:24
japhb OK, darn
pippo jnthn++ for having fixed the gather/take problem! 23:25
23:25 bjz left 23:26 raiph joined
jnthn japhb: Yes, 'fraid you're pushing the limits of something I really need to do some more work on... 23:26
japhb Well good, that's part of the point. :-)
jnthn I'll have to have another stint on concurrency things soon :) 23:27
timotimo .o( like concurrency support on moarvm for example? :3 ) 23:29
japhb \o/
japhb will be very happy to stop taking a ribbing about the startup time of his concurrent scripts
jnthn timotimo: I really want to have that in place by the March release of Rakudo. It's *possible* I'll make it by the Feb one. 23:31
japhb Oh that would be very cool. 23:32
timotimo wowza
didn't expect that
jnthn I do need to actually dig into some $dayjob things this next week, though...nice as it has been to pretend I don't have one for a bunch of this month :)
benabik Nice to finally run perl6-m. 'say 1' takes -j 13s, -p 2s, and -m 0.8s.
Moar++ 23:33
japhb jnthn: As a data point, I'm already regularly doing 16 concurrent tasks. Will probably need to start increasing my thread pools soon to prevent blocking.
But async I/O would greatly reduce that, since most of those tasks are blocked on input from external processes. 23:34
timotimo hm, there's some async io already in place, maybe i can try to make more?
raydiak japhb: do you have some working examples I might have a peek at? I've been wandering around lost in p6 concurrency land for the past several days
timotimo what exactly are you missing?
japhb raydiak: Erm. I think I could help you with some stuff, but I dunno how much is safe to post right now. 23:35
When I get this Net::IRC::Bot code working well, that should be a decent example.
23:36 kivutar left
japhb timotimo: Mostly I need to be able to pull data from multiple handles/sockets, handing off to further processing each time one of them finishes reading all data and closes. 23:37
timotimo ah, yeah 23:38
dalek p: ec396db | (Tobias Leich)++ | tools/build/MOAR_REVISION:
bump moar rev to get unicode fixes
japhb (For my slow-IO program, that is. For Net::IRC::Bot, it would be nice to just not be using so many tasks waiting on I/O, as I set it up to respond slowly to multiple requests at once by spawning a pile of tasks.) 23:39
timotimo let me have a look at java's nio stuff
dalek kudo/nom: 0bdc766 | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump nqp/moar rev to get unicode fixes
raydiak japhb: no worries, was just looking for something to study other than S17
japhb Read jnthn++'s latest concurrency slide deck, too. 23:41
raydiak link?
japhb And the source is pretty key for understanding how things work.
jnthn At some point, I should also try to fill out the docs.perl6.org material on concurrency stuff.
japhb raydiak: jnthn.net/papers/2013-npw-conc.pdf is the most recent, I believe 23:42
jnthn yes, that's the recentest. :)
japhb ++jnthn for that. But one of us might beat you to it if you're as overloaded as it seems.
jnthn My $dayjob work is going to involve teaching parallel/concurrent/async programming a bunch this year, it seems. 23:43
japhb \o/
jnthn japhb: Well, I'm always overlaoded and happy to be beaten to anything.
japhb I bet!
jnthn japhb: At some point it'll probably be easier to write docs than field quetions, though ;)
23:43 btyler left
jnthn Though, if there are enough answerers then... :) 23:43
japhb True ...
japhb is working on that ....
raydiak thanks for the pointers...have bookmarked the slides 23:44
pippo night #perl6!
23:44 pippo left
raydiak and I will start reading the source more...not used it being something that I can reasonably easily decypher, so it hadn't even occured to me 23:45
jnthn japhb: It's worth grabbing today's JVM updates if you didn't already, btw. Anything that does gather/take will be faster. 23:46
japhb raydiak: It's actually pretty easy to read, Ithink
raydiak japhb: it has to be, compared to p5 23:47
japhb jnthn: Yeah, I will. I was waiting for you to go to sleep (and thus not be doing more optimizing for the day) before starting the big recompile run. ;-)
jnthn Oh, I'm done for the day, I think :)
Got quite a lot done these last few days... :)
timotimo japhb: oh, you need to work with sockets, eh?
hm, that's probably a bit tougher
23:47 jnap joined
japhb timotimo: Sockets and pipes are the big ones. Yes, I have some network filesystems to deal with, so those could be slowish too, I suppose. 23:49
timotimo doesn't know where and how to hook the asyncness into the socket stuff
for network filesystems, you can already IO::Async::File.slurp and .lines
jnthn Well, it needs an API design as well as an implementation, I guess. Though doing something basic to start off with may be a good start...
timotimo is not sure how that interacts with thread pools, though
japhb timotimo: Yeah, I forgot that one was actually available (haven't happen to have needed to deal with the NFS stuff async yet, though.) 23:50
timotimo right.
jnthn: how much sense would an async spurt make?
jnthn timotimo: Quite a bit.
timotimo for the existing IO::Async::File 23:51
23:51 thou left
timotimo i could try to implement that to familiarize myself with the stuff 23:51
jnthn timotimo: Returns a Promise that is kept or broken when the thing is done.
timotimo that was my thought as well 23:52
japhb Gah, it's errors like this that make me go >.< : Type check failed in assignment to '$!buffer'; expected 'Buf[uint8]' but got 'Str'
23:52 jnap left
japhb I'll have to trace all the code to figure out if I mixed up encoded and decoded data, or Rakudo did. 23:52
timotimo inside the jvm-level code, all i have to do is implement a method "spurtasync" that takes 2 closures, one for success, one for failure
and those would then keep or break the promise
jnthn timotimo: Sounds right
japhb: Well, it's rather reluctant to auto-coerce... 23:53
r: say "abc".encode('utf-8').Str
camelia rakudo-parrot 29a51f, rakudo-jvm 29a51f, rakudo-moar 29a51f: OUTPUT«abc␤»
japhb jnthn: Oh, I wasn't complaining the error message was *wrong*, just that it will take time to find the culprit. 23:54
jnthn I wonder if we should allow that...
Or require .decode
Thing is that .encode('utf-8') returns something that knows its encoding.
So it can safely .Str
r: Buf.new(65, 66, 67).Str
camelia rakudo-moar 29a51f: OUTPUT«Cannot use a Buf as a string, but you called the Str method on it␤ in method Str at src/gen/m-CORE.setting:5102␤ in method Str at src/gen/m-CORE.setting:1019␤ in block at /tmp/6VeG4xuBjH:1␤␤» 23:55
..rakudo-jvm 29a51f: OUTPUT«Cannot use a Buf as a string, but you called the Str method on it␤ in method Str at gen/jvm/CORE.setting:5102␤ in method Str at gen/jvm/CORE.setting:1019␤ in block at /tmp/R2G8HMaNtF:1␤␤»
..rakudo-parrot 29a51f: OUTPUT«Cannot use a Buf as a string, but you called the Str method on it␤ in method Str at gen/parrot/CORE.setting:5106␤ in method Str at gen/parrot/CORE.setting:1022␤ in block at /tmp/X8GOGyy77p:1␤␤»
jnthn That's what happens typically
japhb nodnod
jnthn OK, time for some rest.
'night, all 23:56
FROGGS gnight!
timotimo 'night jnthn
japhb o/ jnthn
timotimo was about to ask if i could just pass a String to the method or if i'd have to manually unbox 23:57
i probably do
japhb
.oO( Good night, jnthn. Good work. Sleep well. I'll most likely kill you in the morning. )