»ö« 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.
gtodd yoleaux: tell bartolin successfully built parrot aond perl6-p on two FreeBSD 9.2 00:04
oops
avuserow .tell gtodd try it like this? 00:06
yoleaux avuserow: I'll pass your message to gtodd.
gtodd ggoebel11111111: would be convenient for when an entire script is perl5 00:07
yoleaux 00:06Z <avuserow> gtodd: try it like this?
gtodd avuserow: that's what I did right after that message ;-) 00:08
BenGoldberg .seen lambdabot 01:02
yoleaux I haven't seen lambdabot around.
BenGoldberg .seen mubot
yoleaux I haven't seen mubot around.
BenGoldberg Just randomly browsing through some of the perl6 modules, and I came across Compress::Zlib, and noticed an odd logic error. 01:17
Specifically, in class Compress::Zlib::Wrap, method get(), $i is assigned the result of Str.index, then used as an argument to Buf.subbuf, which is only gauranteed to work if the encoding is single-bytes. 01:19
gtodd BenGoldberg: why only then? 02:01
BenGoldberg Suppose that the string's encoding is 2 bytes per letter. Then you'd need to multiply $i by two before using it as an index into the Buf for it to be right. 02:03
And if the encoding is unknown, or variable-width....
gtodd oh because a Str index is assigned and then used for the Buf 02:04
BenGoldberg Right. 02:05
gtodd so the index into the Buf would work but ... not always
I wonder if an easy failing test could be written and how easy that would be to fix by just multiplying by bytes per character (i.e. a hack) :-) 02:06
there's probably a more correct way 02:07
BenGoldberg Add a an input-Str buffer to the class, and when reading, append the Str which results from decoding the Buf to the buffer, and discard the Buf; then play with the Str. 02:14
gtodd I was going to say why does it decode into a Str and not just directly deal with the Buf :) 02:19
but that is just me wondering about Str and Buf
github.com/retupmoca/P6-Compress-Zlib/issues yours'll be the first PR :) 02:20
sergot hi o/ 07:15
nwc10 \o 07:16
sergot hi nwc10 07:18
dalek ecs: 5265a40 | (L. Grondin)++ | S99-glossary.pod:
lc for statement to unbreak links
07:28
grondilu tries to count the most occuring unresolved link in S99 and fails: 07:32
podchecker -nowarnings S99-glossary.pod 2>&1 |perl6 -e 'say lines.map(~*.match(/'"\'.*?\'/"'))...*.value))'
^ unexpectidly returns "'variadic'" => 1
m: say <foo foo bar>.Bag.pairs.max(:by(*.value)); 07:33
camelia rakudo-moar 36bada: OUTPUT«"foo" => 2␤»
grondilu ^ that's more as expected
grondilu tries to get a smaller example 07:47
m: say ("grep" => 1, "operands" => 1, "cursor" => 1, "arity" => 2, "category" => 2).max(:by(*.value));
camelia rakudo-moar 36bada: OUTPUT«"operands" => 1␤»
grondilu n: say ("grep" => 1, "operands" => 1, "cursor" => 1, "arity" => 2, "category" => 2).max(:by(*.value)); 07:48
camelia niecza : OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
grondilu p6: say ("grep" => 1, "operands" => 1, "cursor" => 1, "arity" => 2, "category" => 2).max(:by(*.value));
camelia rakudo-jvm 36bada: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
..niecza: OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
..rakudo-{parrot,moar} 36bada: OUTPUT«"operands" => 1␤»
grondilu m: 'say ("cursor" => 1, "arity" => 2).max(:by(*.value));
camelia rakudo-moar 36bada: OUTPUT«===SORRY!=== Error while compiling /tmp/WzA1IhJmNA␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/WzA1IhJmNA:1␤------> " => 1, "arity" => 2).max(:by(*.value));⏏<EOL>␤ expectin…»
grondilu m: say ("cursor" => 1, "arity" => 2).max(:by(*.value));
camelia rakudo-moar 36bada: OUTPUT«"cursor" => 1␤»
grondilu am I missing something here? 07:49
sergot m: say ("cursor" => 1, "arity" => 2).max(:by({ .value })); 07:50
camelia rakudo-moar 36bada: OUTPUT«"cursor" => 1␤»
grondilu m: say max :by(*.value), "cursor" => 1, "arity" => 2
camelia rakudo-moar 36bada: OUTPUT«"arity" => 2␤»
itz anyone near London, UK might be interested in 07:51
london.pm.org/pipermail/london.pm/W...25393.html
dalek ecs: 1a1dc4d | (L. Grondin)++ | S99-glossary.pod:
add an entry for object
07:53
ecs: d82d22a | (L. Grondin)++ | S99-glossary.pod:
lcfirst for Machine code to unbreak links
07:55
FROGGS_ itz++ # though, I'm travelling around germany tomorrow, so I can't even support you guys :( 07:56
dalek ecs: fa5d124 | (L. Grondin)++ | S99-glossary.pod:
add entry for argument
07:57
ecs: 59858ca | (L. Grondin)++ | S99-glossary.pod:
lcfirst for oopcode to unbreak links
07:58
ecs: 3f14910 | (L. Grondin)++ | S99-glossary.pod:
unbreak links to symbol
08:00
ecs: c0f9b26 | (L. Grondin)++ | S99-glossary.pod:
lcfirst for arity
08:01
ecs: 55e2fd6 | (L. Grondin)++ | S99-glossary.pod:
lcfirst for category
08:03
dalek kudo/nom: 13b9595 | (Elizabeth Mattijsen)++ | src/core/Cool.pm:
.words also Cool, like .lines, pass any parameters
08:47
lizmat wonders what travis will think of this
and good *, #perl6!
travis-ci [travis-ci] Rakudo build passed. Elizabeth Mattijsen '.words also Cool, like .lines, pass any parameters' 08:54
[travis-ci] travis-ci.org/rakudo/rakudo/builds/35711737 github.com/rakudo/rakudo/compare/3...b9595409f4
lizmat I guess there's disk space again :-) 09:02
FROGGS_ lizmat: travis had issues? 09:03
lizmat morning FROGGS_! 09:04
yes: irclog.perlgeek.de/perl6/2014-09-18#i_9380178
FROGGS_ hi lizmat 09:05
lizmat: travis is an online service connected to github... it's not on one of our servers 09:06
lizmat ah, ok :-)
then github had issues :-)
or whatever, it solved itself
sergot I have a question, can I somehow break a Promise.in(10) before it goes to 10? :) 09:21
lizmat no 09:22
but you can create an Promise.anyof( breakablePromise, InPromise )
that would break as soon as you break the breakablePromise
sergot this may help, thank you lizmat++ ! :) 09:23
yeah, it works, thanks again! 09:24
dalek kudo/nom: 44b3e14 | (Elizabeth Mattijsen)++ | src/core/S (2 files):
Code esthetics

Make all .lines methods use same sane variable scheme and use fewer calculations.
09:42
sergot m: try EVAL "nqp::is_bindable(1)"; 09:51
camelia ( no output )
sergot m: nqp::is_bindable(1);
camelia rakudo-moar 13b959: OUTPUT«===SORRY!===␤No registered operation handler for 'is_bindable'␤»
lizmat sergot: I don't see that nqp:: op in the doc 09:56
sergot would "try EVAL" ignore MoarVM fail?
lizmat github.com/perl6/nqp/blob/master/d...s.markdown
quite possibly
sergot lizmat: I'm "try EVAL"ing some rosettacode codes and from time to time I get this: 09:57
Unhandled exception: When invoking is_bindable, Provided outer frame 0x1842f10 (MVMStaticFrame bind_one_param) does not match expected static frame type 0x1842cb0 (MVMStaticFrame )
lizmat if you can reproduce this, you should probably rakudobug or make a MoarVM issue 09:58
sergot and it stops after this, so looks like try EVAL doesn't ignore MoarVM exceptions
lizmat MoarVM exceptions are a bit like segfaults in that respect 09:59
the HLL doesn't know about them
sergot lizmat: I'm writing a script to test all rosettacode codes, here it is : github.com/sergot/p6-rosettacode-t...er/test.p6 10:01
lizmat cool! 10:02
sergot it fails sometimes (dont know why yet)
lizmat would be a nice travis like service :-)
sergot if you have so time, maybe can you run it and see what happens. 10:03
some
lizmat sergot: will do so later today (maybe much later) 10:08
sergot lizmat: would be great, nothing important tho :) 10:09
lizmat FROGGS_: can I ask you a QAST question? 10:35
sergot m: for 1..10 { my $tout = Promise.in(2); my $p = Promise.new; start { loop {} }; await Promise.anyof($p, $tout); }
camelia rakudo-moar 44b3e1: OUTPUT«(signal )»
timotimo maybe i can answer qast questions, too
sergot m: for 1..10 { my $tout = Promise.in(2); my $p = Promise.new; start { loop {} }; await Promise.anyof($p, $tout); } say "alive";
camelia rakudo-moar 44b3e1: OUTPUT«===SORRY!=== Error while compiling /tmp/q4QjBk38xt␤Missing semicolon.␤at /tmp/q4QjBk38xt:1␤------> {} }; await Promise.anyof($p, $tout); } ⏏say "alive";␤ expecting any of:␤ postfix␤ statem…»
sergot m: for 1..10 { my $tout = Promise.in(2); my $p = Promise.new; start { loop {} }; await Promise.anyof($p, $tout); }; say "alive"; 10:36
camelia rakudo-moar 44b3e1: OUTPUT«(signal )»
lizmat timotimo: I'm working on making .words lazy and according to spec (and faster)
timotimo oh, neat :)
lizmat the spec doesn't say that if there is only one word found, it should just return that word
timotimo oh, something i remember just now: if you have some time and mindspace, you could try to fix << >> and < > with escaped spaces and stuff 10:37
lizmat however, if I always return a list, there is one problem with interpolating variables in <<$x>>
timotimo m: say <<foo\ bar>>.perl
camelia rakudo-moar 44b3e1: OUTPUT«("foo", "bar")␤»
sergot m: for 1..10 { my $tout = Promise.in(2); my $p = Promise.new; start { loop {}; }; await Promise.anyof($p, $tout); }; say "alive";
camelia rakudo-moar 44b3e1: OUTPUT«(signal )»
sergot why does it not print alive??
:)
timotimo :o 10:38
lizmat timotimo: I think I traced it down to Actions postprocess_words
$past := QAST::Op.new( :op('callmethod'), :name('words'), :node($/), $past );
timotimo oh, AFK
lizmat so I think I need to change the $past to only return the 0-element of the returned value 10:39
sergot m: for 1..2 { my $tout = Promise.in(2); my $p = Promise.new; start { loop {}; }; await Promise.anyof($p, $tout); }; say "alive"; 10:40
camelia rakudo-moar 44b3e1: OUTPUT«alive␤»
dalek kudo/nom: ec3b836 | (Elizabeth Mattijsen)++ | src/core/Str.pm:
Make Str.words lazy and according to spec

The spec does *not* mention that the first word should be returned instead of the list, if there is only one word found. This causes a problem with << >> interpolation at the moment, which is under investigation.
Also add add :eager / :count parameters. The :eager version is about 10% faster than before. The :count version is about 30% faster than the equivalent (:eager).elems.
10:46
FROGGS_ lizmat: don't ask ti ask, just qast!
to*
damn
lizmat :-)
any suggestion as how to change '$past := QAST::Op.new( :op('callmethod'), :name('words'), :node($/), $past );' 10:47
FROGGS_ you want to return .words[0]?
lizmat yup
sergot m: for 1..2 { my $tout = Promise.in(2); my $p = Promise.new; start { lines }; await Promise.anyof($p, $tout); }; say "alive";
camelia rakudo-moar 44b3e1: OUTPUT«Unhandled exception in code scheduled on thread 140451512297216␤Cannot assign to an immutable value␤ in method break at src/gen/m-CORE.setting:19361␤ in method break at src/gen/m-CORE.setting:19316␤ in block at src/gen/m-CORE.setting:19432␤ …»
FROGGS_ +$past := QAST::Op.new( :op('call'), :name('&postcircumfix:<[ ]>'), :node($/), $past, QAST::IVal.new( :value(0) ) ) 10:48
lizmat hmm.... thinking about this, maybe we need a 'words(:first)
FROGGS_ or so
sergot m: for 1..2 { my $tout = Promise.in(2); my $p = Promise.new; start { $p.keep(lines()) }; await Promise.anyof($p, $tout); }; say "alive";
camelia rakudo-moar 44b3e1: OUTPUT«Unhandled exception in code scheduled on thread 140412203292416␤alive␤»
sergot m: for 1..2 { my $tout = Promise.in(2); my $p = Promise.new; start { $p.keep(try EVAL "lines") }; await Promise.anyof($p, $tout); }; say "alive";
camelia rakudo-moar 44b3e1: OUTPUT«alive␤»
lizmat FROGGS_: trying that now 10:49
hmmm... it compiles, but causes more errors: wil investigate further 10:51
FROGGS_ hmmm :/
lizmat I guess it assumes the previous behaviour of automatic dereferencing 10:52
only when there is 1 element
lizmat FROGGS_: what if I add a :first named parameter to the call to 'words' 10:55
how would the past then look ?
FROGGS_ $past := QAST::Op.new( :op('callmethod'), :name('words'), :node($/), $past, QAST::IVal.new( :value(1), :named('first') ) ) 10:56
lizmat FROGGS_++ :-)
FROGGS_ :o)
dalek kudo/nom: fbf229c | (Elizabeth Mattijsen)++ | src/ (2 files):
Fix problem with << >> interpolation, FROGGS++
11:07
bartolin .tell rurban I was able to build parrot and perl6-p an OpenBSD 5.5. On NetBSD 6.1.4 I had two problems with dyncall. I just created a pull request which should fix these issues. 12:02
yoleaux 00:05Z <gtodd> bartolin: /me successfully built parrot aond perl6-p on two FreeBSD 9.2
bartolin: I'll pass your message to rurban.
dalek kudo/nom: ec65b9d | (Elizabeth Mattijsen)++ | src/core/Str.pm:
Prevent minor issues Str.lines
lizmat cycling& 12:02
bartolin gtodd: \o/ 12:03
.tell rurban (The pull request is for nqp: github.com/perl6/nqp/pull/183) 12:04
yoleaux bartolin: I'll pass your message to rurban.
nwc10 tadzik: your t-shirt may be at risk if you don't register: act.useperl.at/apw2014/stats 12:14
dalek p: dabdfa4 | usev6++ | Configure.pl:
Fix build problem on NetBSD, BSDmakefile no longer used
p: 008f60c | usev6++ | 3rdparty/dyncall/configure:
compile dyncall with -fPIC on NetBSD

It's the same fix as in commit 5ed99d26b3c3ac2d65bc622afdbd987a547046f5 for FreeBSD. OpenBSD does not need CFLAGS=-fPIC (was able to build parrot and perl6-p on OpenBSD 5.5).
p: 4c831a3 | (Tobias Leich)++ | / (2 files):
Merge pull request #183 from usev6/master

Fix parrot build problem on NetBSD (building of dyncall failed)
tadzik nwc10: right, right 12:15
nwc10: thing is, I'm still not sure when my bachelor's defense would be, and so if I'll be able to come at all :/
nwc10 ah OK
FROGGS_ nwc10: I put in my shirt size right now and did the payment 12:18
jnthn evening, #pelr6 12:46
oh wow, I typo it again...
masak maybe we should just rename the language to Pelr 6. 12:47
masak it would solve so many problems, like the language squatting on the Perl name. 12:47
:P
also, jnthn's typos would become correct. 12:48
daxim__ I typo oerk all the time 12:50
jnthn sergot: If you do loop { } inside of a start, it won't stop 'cus it was used in a Promise.anyof with a timeout. There's no magical cancellation. 12:52
arnsholt At some point, I'd like to experiment with the Rakudo grammar and implement a loop construct along the lines of Common Lisp's loop() macro 12:53
'Cuz loop() is awesome (and ridiculous)
jnthn sergot: 10 of them isn't enough to saturate the thread pool, though. Here, "for 1..10 { my $tout = Promise.in(2); my $p = Promise.new; start { loop {} }; await Promise.anyof($p, $tout); }; say 'alive'" swallows my CPU for 20s before printing alive.
masak arnsholt: I've never seen the charm of Lisp's loop construct. 12:57
arnsholt: maybe you know something about it that I don't, though.
arnsholt: if I get the history of it right, it was put in as a thing that would make imperative folks feel safer, and FP folks generally used other constructs, like recursion. 12:58
arnsholt I quite like it 13:00
But yeah, it breaks completely with the rest of the language
It's just such a versatile and powerful looping construct 13:01
Especially the with clause is a nice addition
Essentially lets you handle the "my $used-in-loop; for @stuff { ... }" idiom with $used-in-loop hacing the same scope extent as the loop 13:02
dalek rl6-roast-data: 8f37227 | coke++ | bin/doit:
temporarily disable niecza & jvm
arnsholt s/hacing/having/ 13:03
[Coke] ^^ hopefully that will let us at least get some parrot & moar numbers flowing again, until I have time to fix the jvm/host08 issue. 13:06
(niecza's not doing well on mono3)
Timbus arnsholt ? for @stuff { state $used-in-loop; ... } 13:23
arnsholt Timbus: Oh, that works. Didn't realize that 13:24
jnthn timotimo: I highly suspect 3ce25eccf1 is to blame for the push performance drops in perl6-bench 13:25
arnsholt Makes sense now that I do know, though
Timbus :>
FROGGS_ jnthn: but we proved that to be slower... here on irc
jnthn: TimToady has several witnesses :o) 13:26
jnthn FROGGS_: Uhm. On what benchmark, exactly?
FROGGS_ jnthn: as user came and reported a regression in his code (about five times slower) 13:27
jnthn Well, lemme do some measurements here.
FROGGS_ then it got golfed down... in the end it was just a loop and a push to an array with one element
that was our "microbenchmark"
jnthn OK, well, something is wrong then 13:29
Because
FROGGS_ see irclog.perlgeek.de/perl6/2014-08-28#i_9260375
jnthn I just reverted the commit TimToady made, and
perl6-m -e "my @a; my $i = 0; while (++$i <= 1000000) { push @a, 1 }"
Before revert: 27.309s
After revert: 7.509s 13:30
So it looks to me - and to timotimo's benchmark runs - that the "pessimization" wasn't so pessimal after all in some cases. :)
FROGGS_ m: my $now = now; my @a; for ^20_000 {@a.push: $('1,2,3,4,5,6,7'.split(','))}; say now - $now; 13:31
camelia rakudo-moar ec65b9: OUTPUT«6.1487728␤»
FROGGS_ jnthn: can you run that please?
jnthn Ah, the benchmark is quite different.
*that*
jnthn OK, removing the "pessiaml" single itme push did indeed speed up that one. 13:33
FROGGS_ now we need a third option :o) 13:34
jnthn yeah... 13:35
ah, I think I see the difference... 13:37
Somehow, the single arg candidate got this: 13:38
value.gimme(*) if nqp::istype(value, List); # fixes #121994
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121994
jnthn That has gotta be a hack...but it also means that the split iteration is run in that case
Whereas in the other caes it's not
And I bet that's where the extra cost comes from.
masak retupmoca: looking at github.com/retupmoca/markdown/comm...7331a72342 now 13:42
I missed the part where that stopped working in Rakudo. 13:43
FROGGS_ ahhh
masak what's the background, ooc?
retupmoca background? 13:45
FROGGS_ m: my $text = "abc"; $text ~~ s:g[a] = "z"; say $text 13:47
camelia rakudo-moar ec65b9: OUTPUT«zbc␤»
retupmoca masak: that stopped working because of the new LoL stuff in rakudo, iirc. It was taking (...;...;...) as a list construct
FROGGS_ ahh
that part
retupmoca m: my $text = "abc"; $text ~~ s:g[a] = ( my $tmp = 'z'; $tmp; ); say $text
camelia rakudo-moar ec65b9: OUTPUT«z zbc␤»
jnthn I now have a patch that seems to not re-introduce #121994, gets the perl6-bench one in 6.793s (better than before the revert and WAY better than now) and actually gets the case TimToady pulled out the sinlge candidate case for faster too (2.727s, dwon from 3.320s). 13:48
So providd this spectests OK, we get wins on both benchmarks over their previous bests.
gtodd retupmoca: did you see BenGoldberg's comments about Compress::Zlib in the scrollback? 13:57
jnthn Seems it's good. :) 13:58
gtodd retupmoca: does it matter that the get() method doing encode decode with Str and Buf that way? 13:59
retupmoca gtodd: I did not see that, thank you for the ping :) 14:02
retupmoca gtodd: and yeah, it looks like that get() method won't work with multi-byte characters 14:02
gtodd reading code helps you get good at critically reading code I guess ... I assumed perl6 had super powers and could just index into a Buf or a Str and just automunge something :-) 14:05
that's because I'm still young at mind (I have shoshin) and all computers are still magical :) 14:06
Guest40075 retupmoca: that makes sense. 14:26
masak_grr anyway, pull requests merged. 14:28
retupmoca++ # especially for the Data::Pretty one
retupmoca masak_grr++
timotimo masak_grr: what are you grr about today? :) 14:33
jnthn Probably having paired with me all day :P 14:34
timotimo hah, ouch ;)
timotimo .tell brrt when we have proper jit code production for invoking NativeCall stuff .. that could be super amazingly cool :) 14:35
yoleaux timotimo: I'll pass your message to brrt.
timotimo .tell brrt i'm not sure if that'd end up super easy because we already have the code that emits regular calls to MVM_* functions, or if it's going to be harder because we have to be converting data types back and forth? 14:36
yoleaux timotimo: I'll pass your message to brrt.
jnthn really good JIT of native calling is probably hard but worth it. 14:38
It's enough work for an whole GSoC project... ) 14:39
masak_grr pairing up with jnthn all day is fine, and not grr-inducing. the quality+quantity of it all is pretty astounding when you look back.
jnthn :) 14:40
masak_grr no, the _grr is because when IRC storms enough (probably because of snotty script kiddie jerks or something), I get kicked off my own account for ~30 minutes because I miss connecting with NickServ in time. 14:41
timotimo OK :) 14:42
masak_grr ...but that's still better than someone else grabbing my account and squatting on it for an indefinite time, which happened once.
retupmoca gtodd: Compress::Zlib HEAD now has tests and a fix for that issue
gtodd++ # for pointing it out 14:43
gtodd retupmoca: yay and BenGoldberg++ for reading/thinking so clearly ;-) 14:50
dalek kudo/nom: abc97db | jonathan++ | src/core/List.pm:
Further optimizations of push.

This cuts the perl6-bench while_push benchmark in half again, and provides a further small improvement for the push/split benchmark.
15:04
jnthn timotimo: At your convenience, feel free to do a perl6-bench run and see if we're looking better on the push benchmarks. :) 15:13
masak_grr 'night, #perl6 15:19
gtodd I think it was masak that "6golfed" this word counter: perl6 -e `.say for (bag slurp.words).pairs.sort(*.value).reverse[^10]' ... I have 6017 line unicode text version of Maria Chapdelaine 15:27
gtodd couints the top 10 most frequent words in 7 seconds 15:27
Ibut a 6294 line unucode text of La_psychologie_des_foules.txt croaks with 15:28
gtodd "Arg has not been flattened in slurpy_positional" 15:28
gtodd in method new at src/gen/m-CORE.setting:17249 15:29
in sub bag at src/gen/m-CORE.setting:17906
gtodd but if I shorten it to 6100 lines it works 15:30
gtodd oops I meant 5654 lines ... ;-) ie reducing the length/size of the file to equal the one that is working is not helping ... suggesting that something bag or Baggy is doing after grabbing the slurped words is causing p6 to exit with the error that Arg is not flattened in slurpy_positional 15:47
gtodd but what would not get be getting flattened ? the error sends me to look at at src/gen/m-CORE.setting:17249 15:50
dalek kudo-star-daily: c881109 | coke++ | log/ (14 files):
today (automated commit)
15:54
rl6-roast-data: 76f34df | coke++ | / (4 files):
today (automated commit)
gtodd that I guess comes from src/core/Baggy.pm github.com/rakudo/rakudo/blob/nom/...ggy.pm#L24 15:56
gtodd which refers to rt.perl.org/Public/Bug/Display.html?id=119609 :-) 15:58
dalek rl6-roast-data: 7b55a1e | coke++ | perl6_pass_rates.csv:
These 2 were not run today.
16:07
gtodd anyway I thought it might be simple, but what ever is? 16:16
masak_grr: I have alias="perl6 -e '.say for (bag slurp.words).pairs.sort(*.value).reverse[^10]' " and use it at least once a month ;-)
TimToady so, in perl6-bench, after I did a fetch, I didn't expect a build to rebuild the entire world, including the all the "stable" old versions of everything; how can I just rebuild the things that changed? 16:42
TimToady japhb: ^^ 16:44
or do I have to cd down and do such builds by hand? 16:45
TimToady it's doubly irritating because all the old builds take twice as long... 16:45
gtodd maybe it will only do that once? 16:49
TimToady and all I want to do is to see if my new test of push @a, @a comes out scaled correctly
I already did it once last night
now it's doing it again
gtodd that seems .... suboptimal for a large set of situations 16:50
TimToady of course, when it's not busy overheating my lap, it's sitting there trying to update submodules on old version, which presumably are tagged anyway
anywya, it seems that 'bench build' reconfigs everything, which is no fun at all 16:51
gtodd sounds like " bench build " needs more cowbell 16:54
... or cloud
TimToady at least I thought to rebuild before I started backlogging rather than after... 17:01
TimToady oh lovely, now it's starting in on rebuilding all the old P5 versions...no lap heater breaks for submodules now... 17:08
TimToady at least it doesn't do 'make test' 17:09
lizmat_ is back, but still tired :-) 17:10
lizmat FWIW, after jnthn's latest pull, the spectest seems a little slower to me (and more CPU, 1200+ for the first time in a long time) 17:23
TimToady my informal run of bench last night had current (as of yesterday) rakudo decreasing to 3.3% of P5, with a peak of 4% on 2014-08 17:27
so that tends to confirm that things have got slower 17:28
TimToady also provides a grain of salt with that
TimToady dunno how much of that is just the "push" effect 17:29
TimToady would like to rerun the tests today, but for Some Reason he can't, possibly related to all the rakudo-jvm rebuilds that just started now :/ 17:31
lizmat :-(
but today still has at least 4.5 hours, even here :-)
TimToady 'bench build' should come with a big fat "ARE YOU ABSOLUTELY SURE?" confirmation
TimToady s/SURE/INSANE/ 17:32
timotimo t.h8.lv/p6bench/2014-09-19-post_rel...akudo.html t.h8.lv/p6bench/2014-09-19-history_rakudo.html 17:33
the parse json benchmarks both suffered a bit :( 17:36
TimToady is that before or after jnthn's push patch? 17:37
timotimo after
it's nice to see the improvement in zero and hello 17:38
dalek kudo/nom: a874439 | (Elizabeth Mattijsen)++ | src/core/Supply.pm:
Implement Supply.words, according to spec
17:46
ast: 1aa3c11 | (Elizabeth Mattijsen)++ | S17-supply/words.t:
Add tests for Supply.words
17:47
kudo/nom: 197d0a5 | (Elizabeth Mattijsen)++ | t/spectest.data:
Add Supply.words tests to spectest
17:53
kudo/nom: 7a381fd | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Some initial ChangeLog entries for 2014.10
grondilu_ so, this GRL thing you guys keep talking about, is it coming soon? I can't wait now :P 18:01
dalek p-js: 1a083d0 | (Pawel Murias)++ | src/vm/js/bin/run_tests:
Add passing test 46.
18:01
p-js: a3cf6e7 | (Pawel Murias)++ | src/vm/js/ (2 files):
Emit partial data required for deserialization (code refs are missing).

And stubs for ops required for deserialization.
p-js: baf2612 | (Pawel Murias)++ | src/vm/js/nqp-runtime/runtime.js:
Fix coding standard violations.
nqp-js: c02577e | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (2 files):
lizmat hopes pmichaud will be able to make it to the APW, so we can get clarity about the GLR 18:02
grondilu (oops, misspelled that. was GLR I guess)
PerlJam .seen pmichaud 18:03
yoleaux I saw pmichaud 30 Aug 2014 16:52Z in #perl6: <pmichaud> lunchtime -- bbl
PerlJam That's one long lunch ;) 18:04
grondilu hopefully if there's a talk about it we'll get videos quicker than what we did for YAPC::EU :/
PerlJam Did the videos from the third room ever go up? 18:05
lizmat PerlJam: I think all but the main room videos are up 18:06
check it out at www.youtube.com/user/yapceu 18:07
pmurias hmm, with a high quality live stream it should be possible to add talk started/ended and crowdsource the editing of videos
PerlJam yeah, it's the Vitosha videos that are still missing.
lizmat just pinged #yacpeu, but no news there yet either 18:08
timotimo aaw 18:15
pmurias ?
dalek ar: ec742d5 | (Tobias Leich)++ | modules/zavolaj:
update NativeCall's revsion, pmakholm++
18:16
timotimo i'm still somewhat eagerly waiting for the vitosha videos 18:17
checking almost every day ...
lizmat wonders whether Integral isn't a fossil (e.g. S02:754) 18:19
synopsebot Link: perlcabal.org/syn/S02.html#line_754
lizmat it *is* most definitely NYI and underspecced 18:20
TimToady well, the question is, what would belong in a role for integers, and will this get more important as more integer types are used? 18:21
lizmat ah, good point... 18:23
TimToady timotimo: I made the mistake of typing 'bench build' this morning, and am still awaiting the results; do you have any secrets for building just latest without rebuilding everything? 18:27
or do you just do it by hand in the subdir?
timotimo "bench build rakudo-moar/2014.09 rakudo-parrot/2014.09 nqp-moar/2014.09 nqp-parrot/2014.09 etc etc" will do that for you 18:28
TimToady thanks
timotimo until now i didn't know you could leave the arguments out
i thought it only did that when you use "bench quickstart"
TimToady seems like there oughta be a way to say just rebuild the things that git pull modified 18:30
or 'fetch'
timotimo mhh yes
seems like the user interface portion of p6bench just got a new hacker :P 18:31
TimToady well, so much for the GLR :)
lizmat m: my $a = nqp::box_s("foo",ObjAt); say $a; say $a.WHAT # is there a better way to make an ObjAt string? 18:33
camelia rakudo-moar 7a381f: OUTPUT«foo␤(ObjAt)␤»
timotimo TimToady: after only a bit of hacking on p6bench, you'll want to get back to making things faster real quick :P
lizmat m: say ObjAt.new(:value<foo>) # LTA error, very LTA 18:34
camelia rakudo-moar 7a381f: OUTPUT«(signal )»
lizmat m: say <a b c>.Set.WHICH.WHAT # should be ObjAt according to spec 18:35
camelia rakudo-moar 7a381f: OUTPUT«(Str)␤» 18:36
timotimo i don't really know what we need ObjAt for :\ 18:36
lizmat S02:652 "So C<WHICH> still returns a value rather than another object, but that value must be of a special C<ObjAt> type that prevents accidental confusion with normal value types, and at least discourages trivial pointer arithmetic." 18:37
synopsebot Link: perlcabal.org/syn/S02.html#line_652
gtodd and it's not yak shaving if p6bench needs to be faster for the GLR to happen :-) 18:40
itz GLT? 18:47
errr
GLR?
lizmat "The Great List Refactor: a refactoring of the reification of lazy lists, so that lazy evaluation is only done when it is really needed. Expected to provide a performance benefit of several factors in certain, loop-like situations."
itz ah 18:49
nwc10 is so glad that GLR isn't en.wikipedia.org/wiki/BBC_London_94....80.932000 18:50
itz I thought it was a pre-nationalisation railway company :) 18:53
dalek ecs: 364a50a | (Elizabeth Mattijsen)++ | S02-bits.pod:
Fix typo
gtodd itz: hehe 18:58
gtodd wasn't that GNR ? 18:58
ajr_ GWR 18:59
Great West
gtodd TGTIMTOWTMIGFR the great there is more than one way to make it go faster refactor 19:00
but really ... TGIF
nwc10 en.wikipedia.org/wiki/Great_Western_Railway en.wikipedia.org/wiki/Great_Norther...Britain%29 en.wikipedia.org/wiki/Great_Eastern_Railway en.wikipedia.org/wiki/Great_Southern_Railways 19:01
take your pick
but if you really want a fun railway, see en.wikipedia.org/wiki/Lartigue_Monorail 19:03
gtodd lizmat: btw an error I described above when using masak's "6golfed" wordcount script sent me digging around and I found a bug of yours mentioned .. 19:05
lizmat: rt.perl.org/Public/Bug/Display.html?id=119609 <-- is that "fixed" ?
lizmat looks 19:06
I think it is worked around in the Set implementation 19:07
gtodd ok good 19:08
lizmat but the underlying issue still exists
m: my %e; -> $_ { (%e{$_.WHICH} //= ($_ => 0)).value++ } for <a b b c c c>; say %e.perl
camelia rakudo-moar 7a381f: OUTPUT«("Str|a" => "a" => 1, "Str|c" => "c" => 3, "Str|b" => "b" => 2).hash␤»
lizmat p: my %e; -> $_ { (%e{$_.WHICH} //= ($_ => 0)).value++ } for <a b b c c c>; say %e.perl
camelia rakudo-parrot 7a381f: OUTPUT«("Str|b" => "b" => 2, "Str|c" => "c" => 3, "Str|a" => "a" => 1).hash␤»
lizmat hmmm... underlying issue seems fixed as well
gtodd oh good! anyway it did not seem to explain the error I described ... which I think is moar related
lizmat: jnthn: hmm not sure if I should file it --> paste.scsys.co.uk/424473 but I think it is a more accurate source of the error I encountered ... I don't know if it is a bug or just an "unimplemented" bit ... 19:09
jnthn: are moar bugs on rt or ...github? 19:11
lizmat gtodd: I'm getting 'Malformed UTF-8' ? 19:13
gtodd hmm
I don't get anything from perl6-m
gtodd after running iconv to make it into utf-8 19:14
I get the error unless I shrink the file down ...
lizmat ok, after running it through iconv, it is accepted 19:16
ah, but only 23 lines left 19:17
gtodd iconv -f ISO-8859-1 -t UTF-8 24007-8.txt > La_psychologie_des_foules.txt 19:18
wc La_psychologie_des_foules.txt
6295 53934 369256 La_psychologie_des_foules.txt
lizmat (bag slurp.words).pairs' <text2 19:20
is enough for a segfault for me
gtodd with perl6-m -e '.say for (bag slurp.words).pairs.sort(*.value).reverse[^10]' aliased wordcount I did to a bunch of txt files thus: 19:21
for i in *txt; do echo ""; wc $i ; wordcount $i; done
lizmat (bag slurp.words) <text2
actually
gtodd so is it the moar backend's slurpy_positional doing that?
lizmat no idea: 19:23
$ time perl6 -e 'my @w := slurp.words; .say for @w.Bag.pairs.sort({$^b.value cmp $^a.value})[^10]' <text2 # works for me and takes ~ 5.5 seconds
gtodd there's a case MVM_CALLSITE_ARG_DEFAULT or something that throws that error but at the top of the while loop I think there's a check of some kind 19:24
if (arg_info.flags & MVM_CALLSITE_ARG_FLAT) nqp/MoarVM/src/core/args.c line 517
lizmat $ time perl6 -e 'my @w := slurp.words; .say for @w.Bag.pairs.sort(*.value).reverse[^10]' <text2 # this version takes 6.5 seconds
gtodd heh yeah it's faster to count words than to match words in a logfile ... anyway just wondered if it was effecting anyone else ... my p6-p and p6-j work - only perl6-m crashes 19:27
lizmat: it works if I use your approach ... time perl6 -e 'my @w := slurp.words; .say for @w.Bag.pairs.sort(*.value).reverse[^10]' <La_psychologie_des_foules.txt 19:30
but takes 14 seconds (it's my disks I'm sure)
someone smarter than me must poinder why masak's elegant code doesn't work ... :-) I can't really say when it started 19:32
lizmat it's probably something Moarish, indeed 19:33
gtodd can say when it started to break since I only use it sporadically and not always on large files
lizmat TimToady: I just wondered how [ * - ^10 ] could be taken to mean "give me the last 10 elements"
BenGoldberg m: say( * - ^10 ); 19:34
camelia rakudo-moar 7a381f: OUTPUT«WhateverCode.new()␤»
BenGoldberg m: (^20)[ * - ^10 ].say; 19:35
camelia rakudo-moar 7a381f: OUTPUT«10␤»
gtodd leaving aside the dot on "say" (and maybe the pairs bit) a total non programmer could quite well understand the wordcount "p6 phrase"--> 19:36
.say for (bag slurp.words).pairs.sort(*.value).reverse[^10]
BenGoldberg m: (bag slurp.words).pairs.sort(*.value).reverse[^10].say 19:39
camelia rakudo-moar 7a381f: OUTPUT«"mo" => 9 "a" => 8 "le" => 5 "is" => 5 "Ghaoth" => 4 "an" => 4 "ag" => 4 "gach" => 3 "gan" => 3 "Dobhair." => 3␤»
gtodd Alba an aigh!
gtodd tries to make it only count wors with > 5 chars 19:41
words
lizmat grep( *.value > 5 )
gtodd :-) 19:42
yay
that's what I thought to try ... perl6 is working for my brain ! 19:43
lizmat gtodd: seems the segfault doesn't happen if the file is truncated to the first 5655 lines 19:46
if it has 5656 lines, it segfaults
gtodd yesh .. for me it was 5654 lines and then a few more chars
TimToady you can't implicitly hyper a - like that 19:47
gtodd !!
lizmat TimToady: do we have another way to say "the last 10 elements" ? 19:48
TimToady [ *-10 .. * ] maybe
lizmat gtodd: 5654 lines, indeed 19:49
TimToady [ * X- ^10 ] maybe
[ * «-« ^10 ] maybe
TimToady but you can't automatically assume a - will distribute over a range 19:49
lizmat [*-10 .. *] works 19:50
TimToady or course the X and hyper, if they work, will be in reverse order
lizmat ah, yes, reverse order... hmmm.. 19:51
TimToady and * - 0 will be off the end in any case
gtodd in vim it's 10$ :-)
or maybe {10}$ 19:52
TimToady different languages make different things easy 19:53
lizmat gtodd: did you rakudobug it already ?
gtodd no ... wondered if I should file it under moar repo on github or on rt.perl.org ... 19:55
lizmat rakudobug for now, with the indication that it's a moar specific rakudo problem
gtodd ok so just mail it to [email@hidden.address] and it's all good or ...? 19:56
lizmat yup
gtodd ok good I forgot my rt login .... trying to sign up again today 19:57
lizmat S02:900 "A Str is a Unicode string object. There is no corresponding native str type." 20:02
synopsebot Link: perlcabal.org/syn/S02.html#line_900
lizmat TimToady: is that a fossil? or is rakudo using str in a Buf way ?
dalek rl6-bench: 1754bab | TimToady++ | microbenchmarks.pl:
add a pushme benchmark
20:06
TimToady lizmat: depends on how things work out under NFG 20:07
lizmat ah, the other big thing we still need :-) 20:08
TimToady late lunch &
TimToady never managed to get plots out of that benchmark, but suspects it's a config issue 20:16
bartolin while building perl6-p on different BSD systems I repeatedly stumbled over dyncall. AFAIK dyncall is an external library included in nqp. for FreeBSD (10.0), OpenBSD (5.5) and DragonFly BSD (3.8.2) I had to add -fPIC as a compiler flag for building dyncall. for OpenBSD (5.5) this was not necessary, since Position Independent Code is enabled per default. (I googled that one :-) 20:26
since I'm not familiar with dyncall: do you think I should report this issues upstream (to the dyncall developers)? I'm not sure I'm able to describe the problem properly. I *think* we run into trou
bartolin ble because we build shared libraries of dyncall which we use later in our build process. 20:26
erm 20:27
timotimo oh btw 20:29
is rakudo vulnerable to that real number that causes double parsers to loop infinitely?
gtodd bartolin: I might be wrong but did Chohag find different versions of dyncall being used in nqp parrot etc. ? 20:30
oh wait ChoHag is here :-)
PerlJam timotimo: sounds like a good test to write anyway, just in case :)
ChoHag Sort of here.
gtodd anyway bartolin++ for chasing this down ... I got perl6-p to build (finally) but it is very slow and the repl is strange (I need to press return twice to get into it or exec lines of code?) ... rebuilding on some more machines again now :) 20:32
timotimo perl6: say +"2.2250738585072012e-308"
camelia rakudo-jvm 7a381f: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
..rakudo-{parrot,moar} 7a381f: OUTPUT«2.2250738585072e-308␤»
..niecza: OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
timotimo perl6: say 2.2250738585072012e-308
camelia rakudo-{parrot,moar} 7a381f: OUTPUT«2.2250738585072e-308␤»
..niecza: OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
..rakudo-jvm 7a381f: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
gtodd bartolin: do you have hardware or vm's for your BSDs ? ... if they are bare vm's can you share ;-) 20:33
bartolin gtodd: I installed some KVM guests. At the moment they are definitely not ready for sharing :-/ 20:34
gtodd: But sounds like a nice idea.
gtodd heh ok I have some VBox VMs ... contemplating 11-CURRENT and bhyve :-) 20:35
bartolin gtodd: regarding dyncall: I found only dyncall v0.8 included at github.com/perl6/nqp/tree/master/3...ty/dyncall 20:35
gtodd I think I will "down tools" and update netbsd and openbsd and various 9 and 10 series VMs before trying any more weekly builds 20:36
bartolin: ok I must have mis-remembered that discrepancy 20:37
bartolin gtodd: And adding -fPIC as a compiler flag enabled me to build perl6-p for different BSD variants (as above).
bartolin gtodd: I saw yesterday, that upstream added -fPIC for FreeBSD as well: dyncall.org/svn/dyncall/trunk/dyncall/ChangeLog 20:38
gtodd bartolin: ye nice I grabbed head/master with --gen-parrot=master
bartolin gtodd: But only in trunk (yet) and not for NetBSD or DragonFly BSD
gtodd since I'm bleeding edge for parrot that might explain other slowness ... is the patch now in the parrot 6.8.0 release ? 20:39
oh only trunk
ok
bartolin gtodd: It's not in parrot 6.8.0. IIRC rurban++ said, it should probably go in 6.8.1 20:40
gtodd I shouldn't think of parrot as upstream but it is kind of upstream to rakudo ;-) dyncall is double upstream :) 20:42
bartolin Well, for the moment I'll patch nqp's version of dyncall, so that perl6-p is buildable on DragonFly BSD
gtodd have not used DFly for some time ... needed hardware to do so back then
bartolin gtodd: then I was referring to double upstream ;-) 20:43
gtodd will DFly run in a kvm?
bartolin I just installed it
But did not a lot more than building parrot and perl6-p ;-) 20:44
tony-o timotimo: i don't know if you've pulled http-server-async recently but i have the tests messed up 20:45
gtodd I should try ... sometime next my little "farm" will end up with: netbsd openbsd and freebsd 9.3R 10.0.1R
s/next/nest week/
s/nest/next/ 20:46
bartolin on a related note: do you think it is useful to support systems like DragonFly BSD? or should I better try to look for LHF in tickets or tests? 20:47
timotimo tony-o: didn't test it thoroughly ... or at all :( 20:56
tony-o timotimo: it should be fixed in the repo 20:59
timotimo cool 21:00
bartolin gtodd: regarding different versions of dyncall: I just saw that MoarVM has it's own dyncall (looks like pre 0.8): github.com/MoarVM/dyncall 21:12
gtodd ok that was it :-) 21:13
lizmat good night, #perl6! 21:34
PerlJam good night lizmat! 21:35
sleep well.
dalek kudo/better-errors-for-roles: a15c440 | (Rob Hoelz)++ | src/Perl6/Grammar.nqp:
Give a clearer error message when trying "does UnknownRole"
23:01