Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-09-14

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 telex joined #perl6
00:03 cognominal joined #perl6
00:06 telex joined #perl6
00:07 n0tjack joined #perl6
00:07 kurahaupo_ joined #perl6
00:12 telex joined #perl6
00:18 telex joined #perl6
00:21 n0tjack joined #perl6
00:24 telex joined #perl6
00:25 zostay m: $_ = "xyz"; .=subst(/(.)(.)/, { "$1$0" }, :g); .say
00:25 camelia rakudo-moar 1bd727: OUTPUT«yxz␤»
00:26 telex joined #perl6
00:27 zostay m: $_ = "xyz"; .=subst(/(.)(.)/, { "<$1>$0<>" }, :g); .say
00:27 camelia rakudo-moar 1bd727: OUTPUT«<y>xz␤»
00:28 zostay m: $_ = "xyz"; .=subst(/(.)(.)/, { "<a$1>$0<>" }, :g); .say
00:28 camelia rakudo-moar 1bd727: OUTPUT«<ay>xz␤»
00:28 zostay m: $_ = "xyz"; .=subst(/(.)(.)/, { "<a$1>$0</a>" }, :g); .say
00:28 camelia rakudo-moar 1bd727: OUTPUT«Use of Nil in string context  in block  at /tmp/K3gDPdltxM:1␤<ay>z␤»
00:28 zostay m: $_ = "xyz"; .=subst(/(.)(.)/, { "<a$1>$0<a>" }, :g); .say
00:28 camelia rakudo-moar 1bd727: OUTPUT«Use of Nil in string context  in block  at /tmp/JLfEqqzFFr:1␤<ay>z␤»
00:28 zostay what is up with that? i don't get it
00:31 zostay ah, i see... i hadn't realized that <> worked with interpolation... need to skim through S02 again
00:32 telex joined #perl6
00:33 ShimmerFairy zostay: yeah, I think jnthn's SPW slides even mentioned that as a common gotcha (though I may be misremembering)
00:34 ShimmerFairy m: $_ = "xyz"; .=subst(/(.)(.)/, { "<a$1>$0\<a>" }, :g); .say
00:34 camelia rakudo-moar 1bd727: OUTPUT«<ay>x<a>z␤»
00:34 ShimmerFairy zostay: ^^^ you can escape the opening bracket, to give you a solution directly :)
00:39 telex joined #perl6
00:44 samb1 joined #perl6
00:45 telex joined #perl6
00:51 telex joined #perl6
00:53 n0tjack joined #perl6
00:57 telex joined #perl6
01:03 telex joined #perl6
01:06 Sqirrel joined #perl6
01:09 telex joined #perl6
01:12 telex joined #perl6
01:17 aborazmeh joined #perl6
01:17 aborazmeh joined #perl6
01:18 telex joined #perl6
01:24 telex joined #perl6
01:26 n0tjack joined #perl6
01:30 telex joined #perl6
01:35 telex joined #perl6
01:37 tokuhiro_ joined #perl6
01:41 telex joined #perl6
01:47 ilbot3 joined #perl6
01:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
01:47 telex joined #perl6
01:53 tokuhiro_ joined #perl6
01:53 telex joined #perl6
01:59 n0tjack joined #perl6
01:59 telex joined #perl6
01:59 vendethiel joined #perl6
02:05 telex joined #perl6
02:11 telex joined #perl6
02:17 telex joined #perl6
02:18 telex joined #perl6
02:24 telex joined #perl6
02:30 telex joined #perl6
02:31 n0tjack joined #perl6
02:33 tping joined #perl6
02:36 telex joined #perl6
02:41 japhb .ask tony-o Is there a reason JSON::Faster isn't Panda-visible?  Also, is it compatible with both pre- and post-glr?
02:41 yoleaux japhb: I'll pass your message to tony-o.
02:42 telex joined #perl6
02:48 telex joined #perl6
02:53 noganex_ joined #perl6
02:54 telex joined #perl6
02:54 Ben_Goldberg joined #perl6
03:00 telex joined #perl6
03:02 krunen joined #perl6
03:03 kaare_ joined #perl6
03:04 n0tjack joined #perl6
03:06 telex joined #perl6
03:12 telex joined #perl6
03:18 telex joined #perl6
03:24 telex joined #perl6
03:27 colomon joined #perl6
03:29 khw joined #perl6
03:29 telex joined #perl6
03:32 telex joined #perl6
03:36 n0tjack joined #perl6
03:38 telex joined #perl6
03:44 telex joined #perl6
03:50 telex joined #perl6
03:56 telex joined #perl6
04:02 telex joined #perl6
04:08 telex joined #perl6
04:09 n0tjack joined #perl6
04:14 telex joined #perl6
04:20 telex joined #perl6
04:26 rmgk_ joined #perl6
04:26 telex joined #perl6
04:32 telex joined #perl6
04:38 telex joined #perl6
04:40 telex joined #perl6
04:42 n0tjack joined #perl6
04:46 telex joined #perl6
04:52 telex joined #perl6
04:54 lolisa joined #perl6
04:58 telex joined #perl6
05:04 telex joined #perl6
05:10 telex joined #perl6
05:14 n0tjack joined #perl6
05:16 telex joined #perl6
05:19 laouji joined #perl6
05:22 telex joined #perl6
05:28 telex joined #perl6
05:34 telex joined #perl6
05:40 telex joined #perl6
05:44 quester joined #perl6
05:44 quester joined #perl6
05:46 telex joined #perl6
05:46 n0tjack joined #perl6
05:48 telex joined #perl6
05:54 telex joined #perl6
06:00 telex joined #perl6
06:06 telex joined #perl6
06:08 quester left #perl6
06:08 diana_olhovik_ joined #perl6
06:08 quester joined #perl6
06:11 Guest84576 left #perl6
06:12 telex joined #perl6
06:13 echo`division joined #perl6
06:14 domidumont joined #perl6
06:15 rurban joined #perl6
06:18 telex joined #perl6
06:18 temp-q joined #perl6
06:19 temp-q joined #perl6
06:19 n0tjack joined #perl6
06:20 domidumont joined #perl6
06:24 telex joined #perl6
06:30 telex joined #perl6
06:36 telex joined #perl6
06:42 telex joined #perl6
06:48 telex joined #perl6
06:50 telex joined #perl6
06:51 n0tjack joined #perl6
06:56 telex joined #perl6
07:00 abraxxa joined #perl6
07:02 telex joined #perl6
07:03 lizmat joined #perl6
07:04 silug joined #perl6
07:05 Ven joined #perl6
07:05 _mg_ joined #perl6
07:05 z448 joined #perl6
07:08 kjs__ joined #perl6
07:08 telex joined #perl6
07:10 timotimo japhb: its code has been merged into JSON::Fast
07:14 telex joined #perl6
07:15 BooK heya #perl6
07:16 BooK I was wondering how to write documentation for my perl6 modules^H
07:16 aborazmeh joined #perl6
07:16 aborazmeh joined #perl6
07:16 FROGGS joined #perl6
07:17 masak morning, #perl6
07:17 masak BooK: since there's not really a CPAN where things are put on display, there's not really an emerged standard for how/where to write documentation.
07:18 masak BooK: that said, attaching Pod comments to things is quite great.
07:18 FROGGS o/
07:18 yoleaux 13 Sep 2015 23:49Z <japhb> FROGGS: \o/
07:18 BooK I'm sure there's a perl6 flavour of pod, right?
07:18 FROGGS Pod (instead of POD), yes
07:19 masak see S26.
07:19 masak I needed to refer to it just now to remember that it's #| that means "comment attaches to thing after".
07:19 cschwenz BooK:  maybe look at https://github.com/perl6/doc/ for examples?
07:19 masak m: say ""
07:19 camelia rakudo-moar 1bd727: OUTPUT«␤»
07:20 masak m: #| This comment gets attached to the class␤class C {}; say C.WHY
07:20 camelia rakudo-moar 1bd727: OUTPUT«This comment gets attached to the class␤»
07:20 masak BooK: ^
07:20 telex joined #perl6
07:20 BooK masak, cschwenz: thanks, will do
07:20 masak also works for attributes, parameters, variable declarations, etc.
07:21 BooK it's a really weird feeling to write code without being supported by a whole infrastructure
07:21 BooK what an adventure!
07:21 masak :D
07:21 cschwenz ;-)
07:21 masak if you want to attach to something immediately after its declaration, you use #=
07:24 n0tjack joined #perl6
07:26 telex joined #perl6
07:32 telex joined #perl6
07:37 dalek joined #perl6
07:37 xfix joined #perl6
07:37 xfix joined #perl6
07:37 [Sno] joined #perl6
07:38 telex joined #perl6
07:40 thou joined #perl6
07:44 telex joined #perl6
07:49 zakharyas joined #perl6
07:50 telex joined #perl6
07:51 masak joined #perl6
07:55 telex joined #perl6
07:57 n0tjack joined #perl6
07:58 psch joined #perl6
08:01 telex joined #perl6
08:07 telex joined #perl6
08:07 leont joined #perl6
08:08 jnthn morning, #perl6
08:08 telex joined #perl6
08:08 nine Good morning, jnthn
08:09 jdv79 mornin
08:11 nine jnthn: I'll probably have a couple of hours hacking time this evening. Anything particular on your TODO list I could have a look at?
08:13 jnthn nine: Taking a look at the RTs marked GLR and seeing if you can take on any of those (or filtering out those that need design calls) would be useful
08:13 darutoko joined #perl6
08:14 nine jnthn: ok, I've already started that yesterday. I may as well continue :)
08:14 darutoko- joined #perl6
08:15 jnthn :)
08:15 timotimo jnthn: i highlighted you with a few lines - i neglected to .tell them; it's about the benchmark i gisted your way yesterday
08:15 jnthn timotimo: OK :)
08:16 timotimo about how a surprising amount of very simple infix operators end up getting called rather than inlined
08:21 darutoko joined #perl6
08:23 jnthn That's 'cus the inliner doesn't know about native refs yet :)
08:23 jnthn We often can statically inline those things though
08:25 araujo joined #perl6
08:26 timotimo right. but they don't end up inlined by spesh either
08:27 FROGGS but doesnt 'statically inline' point to rakudo's optimizer rather than spesh?
08:27 araujo joined #perl6
08:28 brrt joined #perl6
08:28 timotimo that's right
08:29 timotimo neither of the two is able to do it, but i thought spesh at least should be able
08:29 Possum joined #perl6
08:29 timotimo maybe it also needs to learn that a lexref, attrref or localref can be passed like a regular native value?
08:30 brrt good *
08:30 yoleaux 12 Sep 2015 12:01Z <masak> brrt: in http://brrt-to-the-future.blogs​pot.fr/2015/09/wrapping-up.html there seems to be missing text around "I hereby promise that if any Oh". also, overnegation in "I will not maintain the illusion here that a register allocator is a nontrivial component" ?
08:30 yoleaux 12 Sep 2015 18:20Z <timotimo> brrt: what's "quite high-level talk, so I hereby promise that if any Oh, and I just " all about? %)
08:30 n0tjack joined #perl6
08:30 timotimo ohai brrt!
08:30 brrt ohai
08:30 brrt yes
08:30 brrt i will fix it
08:31 brrt fixedit
08:32 brrt :-) thanks
08:34 cschwenz joined #perl6
08:41 Possum joined #perl6
08:43 dakkar joined #perl6
08:47 ab5tract_ joined #perl6
08:49 grondilu joined #perl6
08:50 CQ joined #perl6
08:50 telex joined #perl6
08:52 El_Che joined #perl6
08:56 telex joined #perl6
08:56 mprelude joined #perl6
09:02 telex joined #perl6
09:02 araujo joined #perl6
09:02 n0tjack joined #perl6
09:03 FROGGS joined #perl6
09:03 * timotimo experiments with the static optimizer's trial bind and multi-dispatch analysis stuff
09:04 timotimo when fiddling around with it, i may start to understand things
09:05 El_Che joined #perl6
09:08 telex joined #perl6
09:09 kjs__ joined #perl6
09:10 domidumont joined #perl6
09:10 masak heh. Angular keeps imitation Perl 5/Perl 6 by extolling the virtues of interoperating across the version boundaries: http://angularjs.blogspot.se/2015/08/an​gular-1-and-angular-2-coexistence.html
09:10 masak imitating*
09:11 brrt sincerest form of flattery
09:12 brrt masak: one of the things i forgot to ask, where do you want to implement escape analysis? within rakudo or within moarvm?
09:12 timotimo brrt: there's already been a branch for escape analysis in moarvm
09:12 timotimo which masak worked on
09:12 brrt orly
09:12 brrt hmm
09:13 brrt ok
09:13 brrt might as well do that, yes
09:13 timotimo i imagine escape analysis is much harder or perhaps impossible to do with any effectiveness inside rakudo
09:13 cognominal joined #perl6
09:13 brrt hmmm. i'm not sure about that
09:14 telex joined #perl6
09:14 brrt that's more or less an artificial effect from the fact that it's the VM that does the 'linking'
09:15 * |Tux| applauds
09:15 |Tux| test             50000    37.171    37.091
09:15 |Tux| test-t           50000    37.080    37.000
09:16 rindolf joined #perl6
09:16 domidumont joined #perl6
09:16 brrt \o/
09:16 timotimo oh wow!
09:16 timotimo that's quite good indeed
09:17 andreoss joined #perl6
09:17 domidumont joined #perl6
09:19 masak could someone interpret those numbers for an uninitiated onlooker like me?
09:20 masak brrt: moarvm.
09:20 telex joined #perl6
09:20 masak brrt: are you starting in on escape analysis? I've been meaning to look more at it, but I haven't found the time.
09:20 masak neither, I imagine, has jnthn.
09:20 brrt not so much starting as thinking about it
09:21 brrt i have real life work to do :-P
09:21 timotimo got a non-ok type in - QAST::Op(call &METAOP_ASSIGN)
09:21 timotimo - QAST::Var(lexical &infix:<->)
09:21 timotimo -- parameter - QAST::Var(lexical &infix:<->)
09:21 timotimo ^- this seems like we should be able to look in the lexical environment to figure out the type is right for &infix:<-> to be put into METAOP_ASSIGN
09:21 jnthn timotimo: Even after I put in the thing to fix it?
09:22 jnthn (fix the type, I mean)
09:22 masak brrt: we could have a good long chat at some point, maybe on privmsg?
09:22 masak brrt: there are also some papers and PDFs I could dump on you.
09:22 brrt yeah, good idea.
09:22 brrt dump them pdfs :-)
09:22 * jnthn tires of admin work and decides it's time to hack :)
09:22 FROGGS jnthn: +1
09:22 FROGGS :o)
09:22 timotimo jnthn: the thing? did i miss something? :)
09:22 brrt the jnthnzilla has awoken :-o :-p
09:23 jnthn timotimo: Recently I did a patch to Optimizer.nqp that spots that nqp::ops can get annotated with nqp's native types and replaces them with Perl 6 ones :)
09:23 jnthn timotimo: Which let us inline more things
09:25 timotimo ah, right
09:25 timotimo yeah, there's no nqp:: op in there, though :)
09:26 timotimo i stumbled upon those lines a few minutes ago
09:26 telex joined #perl6
09:26 timotimo so they are in effect, i'm sure
09:26 timotimo now i'm a bit surprised by this: a call to &infix:<*> tells me the $type_ok result is 0 for a QAST::Want with a 'Nn'
09:27 jnthn odd
09:27 |Tux| masak, 37.xxx is the time (in seconds) required to parse 10000 lines of CSV on my Text::CSV development box
09:28 |Tux| https://gist.github.com/Tux/b3b1d9c63f49b65b4881 <= over time
09:28 timotimo masak: we still have at least a factor of 10 of improvement in front of us if we want to be anywhere near good
09:28 FROGGS |Tux|: 50k lines, no?
09:28 |Tux| 50k fields, 10k lines
09:28 thou joined #perl6
09:29 FROGGS ahh, I see
09:29 jnthn FROGGS: I guess "skipped: Cannot compile C++ script" is expected on Windows/MSVC at this point? :)
09:29 timotimo jnthn: that output only appears after the nqp translation code has had its chance to set $type_ok back to 1
09:29 FROGGS jnthn: no, should Just Work™
09:30 timotimo jnthn: in this case the nqp::istype($type, $!symbols.Mu) part causes $type_ok to be set to 0; i'll have a look at what exactly we annotate the want with
09:30 masak |Tux|: so the applause was for a marginal improvement in the xxx part of 37.xxx ?
09:31 |Tux| yes
09:31 |Tux| under 38
09:31 cognominal hi, what's the specific purpose of the trailing comma if you can do the same with |@a ?  In:  my @a = < a b c >; .say for @a,
09:31 FROGGS jnthn: I can re-check on my box later, but it would be nice and helpful anyway if you'd posted me the output of one of the skipped test files
09:31 |Tux| masak, and the fact that it is going the right way: down
09:32 telex joined #perl6
09:32 jnthn FROGGS: https://gist.github.com/jnthn/283979d6120c2278ee0e
09:32 jnthn FROGGS: It's not finding/using cl, but rather trying g++, it seems.
09:32 jnthn cl is certainly available and in the path though
09:32 FROGGS jnthn: hmmm, it is using cl first, then g++ if cl failed...
09:33 psch FROGGS: on hack it's trying clang and failing, fyi
09:33 FROGGS jnthn: ohh, I've got a thinko in my script
09:33 FROGGS it compiles with cl, succeeds, doesnt care, tries g++, fails
09:33 jnthn m: sub a { return $^a andthen .Int }; a(Str).perl.say; a(42).perl.say
09:34 camelia rakudo-moar 1bd727: OUTPUT«Str␤42␤»
09:34 jnthn m: sub a { return ($^a andthen .Int) }; a(Str).perl.say; a(42).perl.say
09:34 camelia rakudo-moar 1bd727: OUTPUT«()␤42␤»
09:34 * jnthn rejects RT #126050 with a reminder about precedence :)
09:35 n0tjack joined #perl6
09:36 psch FROGGS: https://gist.github.com/pe​schwa/123396eb36802a474005 (in case that's not covered by the same thinko)
09:37 jnthn RT #126047 too :)
09:37 dalek rakudo/nom: 63077a5 | FROGGS++ | t/04-nativecall/CompileTestLib.pm:
09:37 dalek rakudo/nom: handle successful case of compiling C++ script
09:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/63077a5e4c
09:37 dalek rakudo/nom: 00bd81b | FROGGS++ | t/04-nativecall/CompileTestLib.pm:
09:37 dalek rakudo/nom: delete files created during testing
09:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/00bd81b39a
09:37 brrt .tell TimToady i think that @answers{@slice} = 42 xx * should be @answers[@slice] = 42 xx *
09:37 yoleaux brrt: I'll pass your message to TimToady.
09:38 brrt and that it's really cool
09:38 telex joined #perl6
09:39 andreoss what is the difference between Any and (Any)?
09:40 dalek rakudo/nom: 54ce37c | FROGGS++ | t/04-nativecall/CompileTestLib.pm:
09:40 dalek rakudo/nom: handle succeeded C++ compilation even better
09:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/54ce37cd59
09:40 telex joined #perl6
09:40 FROGGS psch: can you try again on hack?
09:40 jnthn FROGGS: Now they pass on Windows :)
09:41 FROGGS \o/
09:41 jnthn t\04-nativecall\11-cpp.t ............. ok
09:41 jnthn t\04-nativecall\13-cpp-mangling.t .... ok
09:41 jnthn :)
09:41 jnthn FROGGS++
09:41 Alina-malina joined #perl6
09:41 psch FROGGS: sure, just have to rebuild...
09:41 FROGGS psch: that'd be great :o)
09:46 telex joined #perl6
09:46 pmurias joined #perl6
09:47 psch FROGGS: yup, works
09:48 pmurias hi
09:50 * jnthn thinks he has a fix for RT #126033 :)
09:51 jdv79 timotimo: any idea why the qt profiler doesn't load moritz's 93M json file?
09:52 telex joined #perl6
09:52 El_Che joined #perl6
09:53 psch m: my $x; say $x.VAR.WHAT
09:53 camelia rakudo-moar 00bd81: OUTPUT«(Scalar)␤»
09:57 dalek nqp: 989fde6 | jnthn++ | src/QRegex/Cursor.nqp:
09:57 dalek nqp: Store decont'd $!orig in Cursor.
09:57 dalek nqp:
09:57 dalek nqp: Otherwise, things like "$a = $a ~~ /./" will end up with trying to
09:57 dalek nqp: substr(.orig, ...) when looking at the Match object, which now is
09:57 dalek nqp: pointing to the Match itself rather than the original string.
09:57 dalek nqp: review: https://github.com/perl6/nqp/commit/989fde602c
09:58 dalek rakudo/nom: b949144 | jnthn++ | tools/build/NQP_REVISION:
09:58 dalek rakudo/nom: Bump NQP_REVISION for Cursor fix.
09:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b949144912
09:58 telex joined #perl6
09:58 dalek roast: 6043ba0 | jnthn++ | S05-match/capturing-contexts.t:
09:58 dalek roast: Test for RT #126033.
09:58 dalek roast: review: https://github.com/perl6/roast/commit/6043ba06bf
10:00 jnthn nine: RT #126032 is another one you could probably hunt down fairly easily :)
10:01 itz_ joined #perl6
10:01 itz_ morning *
10:01 jnthn o/ itz_
10:02 pmurias \o
10:02 psch m: my int $x is default(42) # doesn't die on jvm
10:02 camelia rakudo-moar 00bd81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VDlczaLKHB␤Can't use trait 'is default' on a native.␤at /tmp/VDlczaLKHB:1␤------> 3t $x is default(42) # doesn't die on jvm7⏏5<EOL>␤    expecting any of:␤        constraint␤»
10:02 psch and it doesn't die because accessing the descriptor works
10:02 psch calling &say on it, however, gives a SOE
10:03 psch calling &so.&say on it dies appropriately...
10:03 jnthn Oh, phew, we don't have a huge CORE.setting regression in the last few days...
10:03 jnthn (Build time, I mean)
10:03 * jnthn had MVM_SPESH_DISABLE=1 MVM_CROSS_THREAD_WRITE_LOG=1 set :)
10:03 psch i'm thinking that still points somewhere at lazy stuff somehow :/
10:03 jnthn psch: That's...very good :S
10:04 psch because i sincerely hope that all those SOE are somehow related
10:04 jnthn psch: Uh, very *odd*
10:04 psch jnthn: :D
10:04 jnthn psch: Maybe the QAST -> JAST isn't getting sink context right enough?
10:04 telex joined #perl6
10:04 |Tux| for those who speak dutch, this is nice news to read: http://webwereld.nl/development/8​8760-disney-stopt-linux-in-lampje
10:05 psch jnthn: that's probably a good hint, i'll try if i can find anything around there
10:05 psch jnthn: it fits, 'cause every SOE i saw up to now goes via sink into reify, into pull-* into new, new, CREATE, BUILDALL
10:05 psch and the last 4 loop, with 2 or 3 anons in between
10:05 jnthn |Tux|: And even for those of us how can only guess at the odd words, the paper referenced in there i in English :)
10:07 n0tjack joined #perl6
10:10 telex joined #perl6
10:13 timotimo jdv79: perhaps QJson isn't built for such big data files? perhaps there's some streaming design we could use instead?
10:15 timotimo aha, the .returns of those Want nodes seems to be NQPMu
10:15 timotimo that's not all right
10:16 jnthn timotimo: That probably just means "we didn't set it"
10:16 jnthn timotimo: And it's hard to set a .returns on a QAST::Want
10:17 jnthn timotimo: 'cus there's not just one answer
10:17 timotimo should analyze_args_for_ct_call introspect Want nodes?
10:17 timotimo er
10:18 timotimo it already does, but it gets stopped because the Want doesn't set an appropriate .returns
10:19 ShimmerFairy joined #perl6
10:22 nine jnthn: so I'm not the only one who opens links despite the language being foreign ;)
10:23 FROGGS psch: awesome, thank you
10:25 psch FROGGS: fyi, removing the clone hack also works now
10:25 FROGGS psch: yeah, I was hoping for that :o)
10:26 dalek rakudo/nom: b3d2f2a | peschwa++ | src/Perl6/Actions.nqp:
10:26 dalek rakudo/nom: Remove jvm-specific workaround.
10:26 dalek rakudo/nom:
10:26 dalek rakudo/nom: Thanks to nqp commit 0c26f68d we don't need this workaround anymore.
10:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b3d2f2aee3
10:27 psch i want to motion for moving moar generated source files out of src/
10:27 psch it's a tad annoying when greping :P
10:28 FROGGS psch: +1
10:29 FROGGS move all under gen/<vm>
10:31 psch nqp and moar also do src/gen
10:32 psch i'm not gonna touch the latter, i don't deal with it that often :)
10:32 timotimo moar does src/gen?
10:32 psch timotimo: yeah, looks like it
10:32 psch timotimo: might be the purpose is different, though
10:33 psch config.h probably is rightfully generated
10:33 pmurias weird moarvm realloc failure: https://paste.debian.net/311618
10:33 psch (and i think i misread my grepping wrt nqp...)
10:33 timotimo ah
10:33 timotimo right
10:33 [ptc] m: [[[[["a", "b"], "c"], "a"], "d"], "e"].flat
10:33 camelia rakudo-moar b94914: ( no output )
10:33 [ptc] m: [[[[["a", "b"], "c"], "a"], "d"], "e"].flat.perl
10:33 camelia rakudo-moar b94914: ( no output )
10:33 pmurias if I pass this file to nqp-m I get a realloc error
10:33 timotimo [ptc]: try .say
10:34 [ptc] m: [[[[["a", "b"], "c"], "a"], "d"], "e"].flat.say
10:34 camelia rakudo-moar b94914: OUTPUT«([[[[a b] c] a] d] e)␤»
10:34 timotimo [ptc]: btw, i only referred to your accent as hannoverian because you had talked about hannover a few minutes prior and i got confused :)
10:34 [ptc] timotimo: heh :-)
10:35 nine .oO(New Zealand, Hannover, all the same....we _are_ one)
10:35 [ptc] silly question of the day: how does one completely flatten a nested set of arrays?
10:36 FROGGS nine: resistance is futile?
10:36 timotimo m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.flat.say
10:36 camelia rakudo-moar b94914: OUTPUT«[[[[[(a) (b)] (c)] (a)] (d)] (e)]␤»
10:36 timotimo hahaha, wat :D
10:36 [ptc] nine: all ur accents are belong to us?
10:36 FROGGS m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.Slip.say
10:36 camelia rakudo-moar b94914: OUTPUT«(([[[a b] c] a] d) (e))␤»
10:36 timotimo m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.flat.perl.say
10:36 camelia rakudo-moar b94914: OUTPUT«[[[[[("a",).Seq, ("b",).Seq], ("c",).Seq], ("a",).Seq], ("d",).Seq], ("e",).Seq]␤»
10:36 timotimo m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.flat.list.say
10:36 camelia rakudo-moar b94914: OUTPUT«[[[[[(a) (b)] (c)] (a)] (d)] (e)]␤»
10:36 timotimo m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.flat.>>.list.perl.say
10:36 camelia rakudo-moar b94914: OUTPUT«([[[[("a",).Seq, ("b",).Seq], ("c",).Seq], ("a",).Seq], ("d",).Seq], ("e",))␤»
10:37 timotimo m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.flat.>>.list.>>.flat>>.list>>.List.perl.say
10:37 camelia rakudo-moar b94914: OUTPUT«(([[[(("a",).Seq,), (("b",).Seq,)], (("c",).Seq,)], (("a",).Seq,)], (("d",).Seq,)), (("e",).Seq,))␤»
10:37 gfldex timotimo: you may need a bigger hammer
10:37 pmurias error I get: https://paste.debian.net/311619
10:37 timotimo m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.flat.>>.list.>>.flat>​>.list>>.List>>.Str.perl.say
10:37 camelia rakudo-moar b94914: OUTPUT«($($[[[($("a",),), ($("b",),)], ($("c",),)], ($("a",),)], $($("d",),)), $($("e",),))␤»
10:37 timotimo it's getting better and better!
10:37 pmurias jnthn: is this error something that rings any bells for you?
10:38 * [ptc] is wondering how many .flat/.list are needed in the general case :-D
10:38 Util joined #perl6
10:38 jnthn pmurias: 'fraid not
10:39 timotimo m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.<>.perl.say
10:39 camelia rakudo-moar b94914: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤  in block <unit> at /tmp/r_Tu1Ycy5d:1␤␤»
10:39 timotimo m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.[].perl.say
10:39 camelia rakudo-moar b94914: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤  in block <unit> at /tmp/JXrg04zWwa:1␤␤»
10:40 timotimo m: say [[[[["a", "b"], "c"], "a"], "d"], "e"].map: *.[]
10:40 camelia rakudo-moar b94914: OUTPUT«([[[[a b] c] a] d] e)␤»
10:40 timotimo m: say [[[[["a", "b"], "c"], "a"], "d"], "e"].map: *.[].flat
10:40 camelia rakudo-moar b94914: OUTPUT«(([[[a b] c] a] d) (e))␤»
10:40 timotimo >_<
10:40 n0tjack joined #perl6
10:41 ShimmerFairy joined #perl6
10:47 [ptc] timotimo: hrm, doesn't look that easy...
10:47 silug joined #perl6
10:48 nine m: sub flatten(@a) { @a.map: {$_ ~~ List ?? flatten($_).Slip !! $_} }; say flatten([[[[1, 2], 3], 4], 5]).list.perl;
10:48 camelia rakudo-moar b94914: OUTPUT«(1, 2, 3, 4, 5)␤»
10:48 * timotimo just doesn't know anything
10:48 timotimo didn't timtoady show a pretty simple and short piece of code for that yesterday or two days ago?
10:48 jnthn m: say gather [[[[["a", "b"], "c"], "a"], "d"], "e"].deepmap(*.take)
10:48 camelia rakudo-moar b94914: OUTPUT«(a b c a d e)␤»
10:49 [ptc] oh, that looks better
10:49 nine ah, gather/take!
10:49 timotimo but that takes continuations and such
10:49 jnthn timotimo: Not sure about the say case, but in the eager case (e.g. you assign the result to an array) it own't
10:49 jnthn *won't
10:50 jnthn my @a = gather ...; # won't take a continuation any more, just keep going
10:50 timotimo oh? neato
10:50 jnthn Yeah, that's one of the changes I did while re-working gather/take for GLR
10:50 pmurias jnthn: that's bad it also seems to disappear when chaning unrelated parts of the test :(
10:50 timotimo <3
10:50 jnthn pmurias: Memory errors usually do.
10:50 timotimo m: my @result; [[[[["a", "b"], "c"], "a"], "d"], "e"].deepmap({ @result.push $_ }); say @result
10:50 camelia rakudo-moar b94914: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gpxFhszrrv␤Two terms in a row␤at /tmp/gpxFhszrrv:1␤------> 3 "a"], "d"], "e"].deepmap({ @result.push7⏏5 $_ }); say @result␤    expecting any of:␤        infix␤        infix stopper␤        s…»
10:50 timotimo m: my @result; [[[[["a", "b"], "c"], "a"], "d"], "e"].deepmap({ @result.push: $_ }); say @result
10:50 camelia rakudo-moar b94914: OUTPUT«[a b c a d e]␤»
10:53 psch http://irclog.perlgeek.de/p​erl6/2015-09-13#i_11210147
10:53 psch re: flat [[[]]]
10:53 pmurias jnthn: so what should I do about that error as it's causing a test failure when the js-merge-wip branch is merged in
10:53 domidumont joined #perl6
10:54 psch m: say flat ((((1,),),),); say flat [[[[1,],],],] # should both be flattened
10:54 camelia rakudo-moar b3d2f2: OUTPUT«(1)␤([[[1]]])␤»
10:54 timotimo ah
10:55 pmurias jnthn: I could embark on a MoarVM bug hunt, but I'm not sure how successfull it will be if it's some serious gc issue rather than some silly error
10:55 laouji joined #perl6
10:56 timotimo pmurias: how about turning spesh on and off? and you can also try making the nursery much smaller
10:56 timotimo like 1/4th of what it is now, or 1/16th
10:58 timotimo that'll make GC problems much more likely to happen; also there's a flag to make spesh more agressively kick in on frames, that is known to cause builds to fail ;(
10:59 timotimo jnthn: https://gist.github.com/timo/9c30f942f14a8d468e9f ← looks nice to have
11:03 dalek rakudo/nom: 934893b | timotimo++ | src/Perl6/Optimizer.nqp:
11:03 dalek rakudo/nom: compile-time dispatch shall inspect a Want node's WVal.
11:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/934893b26e
11:06 st_iron joined #perl6
11:06 st_iron hi
11:06 timotimo ohai
11:07 leont perl6-debug-m is broken for me after upgrade this weekend -_
11:07 leont -_-
11:07 leont "Unhandled exception: ctxlexpad needs an MVMContext"
11:08 leont (somewhere deep in the CORE.setting)
11:09 itz_ grrr the repl likes consuming seq values
11:09 kjs__ joined #perl6
11:10 leont Anyone got a clue?
11:11 FROGGS leont: not yet, sorry
11:11 FROGGS leont: please file an RT ticket so sombody will look at it
11:12 nine timotimo: just curious. Is there any direct performance benefit of your Optimizer commit to be expected?
11:12 n0tjack joined #perl6
11:13 timotimo not 100% likely
11:13 pmurias nqp-m: say(nqp::findcclass(nqp::const::CCLASS_ANY, "123", 9, 10))
11:13 camelia nqp-moarvm: OUTPUT«19␤»
11:13 timotimo it can cause very simple operators to be inlined more often
11:13 pmurias under the jvm ^^ returns 3
11:14 pmurias not sure what's the behavior I should standardize towards
11:14 pmurias * standardise
11:14 leont Will try rebuild, maybe I just build from an unlucky commit or some such
11:15 timotimo nine: there's some work left to do to cope with lexicalref and such, not 100% sure where exactly it'll go, though
11:15 pmurias jnthn: there is a difference in the way findcclass works on moar and the jvm
11:15 pmurias jnthn: which way is correct?
11:17 thou joined #perl6
11:22 Ven joined #perl6
11:24 psch pmurias: i think the difference is because moar has NFG
11:24 psch (that's on a glance, though...)
11:24 timotimo um, wha?
11:24 timotimo "123" should really not be different in NFG vs whatever else
11:25 timotimo this is more about the edge case where the start and range parameters are higher than the length of the string, no?
11:26 pmurias timotimo: yes
11:27 pmurias timotimo: in the moarvm the start+range is returned
11:27 psch ...shows what i can discern on a glance :)
11:27 pmurias timotimo: on the jvm the length of the string is returned
11:27 pmurias timotimo: it could be just a bug
11:28 pmurias timotimo: the improved nqp-js test suit found this
11:28 ShimmerFairy ops.markdown says "[...]return the position of the first character after the given range, or the length of the string, whichever is smaller", so that's a MVM bug
11:28 laouji joined #perl6
11:29 timotimo https://gist.github.com/timo/4505a55475ea1b51a5b8 - jnthn, do you have a clue why the outer two add operations don't get inlined, but the inner muls do? i thought perhaps it's about the Stmts + Stmt, but putting a "while $type =:= NQPMu and it's a stmt or stmts with a single child, $_ := $_[0]" in the same part that also handles Want now didn't change anything about this
11:29 dalek specs: 6cc6cd1 | (Steve Mynott)++ | S07-lists.pod:
11:29 dalek specs: remove surplus 'an'
11:29 dalek specs: review: https://github.com/perl6/specs/commit/6cc6cd1fc4
11:34 pmurias ShimmerFairy: the docs were likely written based on reading the code
11:35 jnthn pmurias: I think all that we rely on is that if we find anything, the value returned will be within the string
11:35 ShimmerFairy pmurias: "length of string at most" makes sense to me, however :) . (Granted, it's just a difference of  $result == nqp::chars($str)  using >= instead, but still (for uses of findcclass going to the end of string, naturally))
11:36 jnthn pmurias: As in, the regex code-gen emits a < check against eos
11:39 pmurias jnthn: should I change moar or the jvm/js?
11:39 leont Got a short example of the crash at last
11:39 leont perl6-debug-m -e 'if 0 { }'
11:41 pmurias jnthn: even if the exact details of the return value aren't used I think having consistency between backends is important
11:41 jnthn pmurias: If you want to patch Moar that's fine by me :)
11:42 itz_ " |(1, 2)         # a Slip, a list which flattens into a surrounding List" < =- I thought that was $(1,2) or am I missing something?
11:42 ShimmerFairy I'd prefer maintaining compat with jvm and ops.markdown, as well as generally not giving blown-up values just because you tried to go way beyond the EOS :P
11:43 timotimo nope, $ is the other direction; it'd prevent flattening
11:43 jnthn m: say (1, |(2, 3), 4).perl
11:43 camelia rakudo-moar 934893: OUTPUT«(1, 2, 3, 4)␤»
11:43 itz_ ah ok thanks
11:45 n0tjack joined #perl6
11:50 itz_ S07++
11:55 dalek rakudo/nom: 17d7a17 | peschwa++ | / (2 files):
11:55 dalek rakudo/nom: Ignore the gen/ directory directly.
11:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/17d7a17f83
11:55 dalek rakudo/nom: 92ef047 | peschwa++ | tools/build/Makefile- (2 files):
11:55 dalek rakudo/nom: Adjust Makefiles for JVM and Moar.
11:55 dalek rakudo/nom:
11:55 dalek rakudo/nom: With this Moar and JVM both place generated source files in gen/moar and
11:55 dalek rakudo/nom: gen/jvm respectively.
11:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/92ef0477db
11:55 dalek nqp: 1f46367 | jnthn++ | tools/build/MOAR_REVISION:
11:55 dalek nqp: Bump to a MOAR_REVISION with various fixes.
11:55 dalek nqp: review: https://github.com/perl6/nqp/commit/1f46367caf
11:56 psch ...i really hope it's platform agnostic enough, what i did with the Makefiles
11:56 psch although i guess it worked on jvm before
11:56 psch also one more build dep: creating gen/{moar,jvm}, which we previously didn't have because only jvm put stuff there
11:57 psch i'll also remove src/gen, i guess
11:57 leont "platform agnostic enough" is all relative after having had to deal with perl5's VMS Makefile ;-)
11:58 dalek rakudo/nom: f21f00b | peschwa++ | src/gen/README:
11:58 dalek rakudo/nom: Remove placeholder README.
11:58 dalek rakudo/nom:
11:58 dalek rakudo/nom: We're not putting anything generated there anymore, so we don't need the
11:58 dalek rakudo/nom: placeholder.
11:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f21f00b6dc
11:59 dalek rakudo/nom: 48e0037 | jnthn++ | tools/build/NQP_REVISION:
11:59 dalek rakudo/nom: Bump NQP_REVISION to get updated MoarVM.
11:59 dalek rakudo/nom:
11:59 dalek rakudo/nom: This brings in fixes to a nasty data race in MoarVM. While it had been
11:59 dalek rakudo/nom: there for a while, recent code-gen improvements made it more likely to
11:59 dalek rakudo/nom: show up. This should address the recent increase in crashes seen in
11:59 dalek rakudo/nom: multi-threaded programs.
11:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/48e003712e
11:59 psch hm, maybe i should've checked some git best-practices re: keeping gen folders around
11:59 jnthn psch: I normally shove a .gitignore inside of them
12:00 psch jnthn: right, that's what we had with gen/jvm - i opted to create them via the Makefile
12:00 psch jnthn: i'll defer to your judgement though, cause i'm pretty sure you have more git experience than me :)
12:04 FROGGS psch: on cu_load I've got again/still a BUILDALL infiniloop/SOE... how do you debug these things? https://gist.github.com/FR​OGGS/1fddec0c8c3ad5a86f29
12:05 FROGGS (besides banging the head against walls and such)
12:05 dalek rakudo/nom: 002dfca | peschwa++ | / (2 files):
12:05 dalek rakudo/nom: Revert "Ignore the gen/ directory directly."
12:05 dalek rakudo/nom:
12:05 dalek rakudo/nom: This reverts commit 17d7a17f83a86639fcc7590094854a56c16429f0.
12:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/002dfca1b7
12:05 dalek rakudo/nom: 3655638 | peschwa++ | / (3 files):
12:05 dalek rakudo/nom: We're not ignoring gen/{moar,jvm}, so we don't need to create them.
12:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3655638953
12:05 jnthn psch: I'm OK with creating them in the Makefile too
12:05 psch jnthn: too late!
12:05 jnthn :)
12:05 * jnthn ain't fussy
12:05 * jnthn is hungry though
12:05 jnthn lunch &
12:06 psch FROGGS: oh, mostly banging, tbh
12:06 leont How can I install a package when not having panda around?
12:06 FROGGS psch: k
12:06 FROGGS leont: copy it into site/lib
12:06 timotimo some bugs will make a satisfying "crunch!" sound when you step on them, but they're really fine and just play dead for a while, then escape to re-emerge somewhere else
12:07 psch FROGGS: what i tried with traits.pm is isolating the exact call by pulling the statement apart (i.e. "my \pkgs := nqp::hllize(); for flat pkgs")
12:07 FROGGS m: say %*CUSTOM_LIB<site>
12:07 camelia rakudo-moar 934893: OUTPUT«/home/camelia/rakudo​-inst-2/share/perl6/site␤»
12:07 psch FROGGS: but in the end that didn't really help, iirc...
12:07 FROGGS psch: the problem vanished IIRC
12:08 psch FROGGS: yeah, but i think that's because a different bug had a proper stacktrace and fixed the SOE as fallout
12:08 psch FROGGS: i don't really remember exactly, though... :)
12:09 psch FROGGS: the fact that we still get a few of those SOEs speak for that
12:10 psch FROGGS: iirc it was the Attribute bug that you had that i fixed with the "don't compare SC" patch...
12:10 FROGGS yeah...
12:10 psch which i think you found only because you worked around the flat hllize bug...
12:11 timotimo what are some noteworthy things that have been done since the SPW?
12:12 leont It seems rakudo doesn't handle a relative path $*EXECUTABLE very well
12:12 FROGGS timotimo: that the jvm backend was broken and is still a little bit shaky
12:13 FROGGS timotimo: and the C++ merge
12:13 timotimo the c++ merge is already noted down, thanks :)
12:13 FROGGS timotimo: first serious improvements due to/after GLR
12:13 timotimo noted already
12:13 timotimo though i don't have very good examples
12:14 FROGGS well, Text::CSV
12:14 FROGGS .lines and .words and such
12:14 timotimo that's now as fast as it was a couple of months before the GLR or what? :)
12:14 FROGGS faster
12:15 FROGGS jnthn posted microbenchmarks that showed that
12:15 leont Doing that well is rather platform dependent, but really helpful for end users
12:15 timotimo oh
12:15 timotimo right, today's change hasn't made it into that gist yet
12:15 timotimo i meant T::CSV by "that", btw
12:15 [Coke] joined #perl6
12:16 FROGGS aye, 37s for the first time
12:16 kjs__ joined #perl6
12:16 timotimo and htmlify got quicker, too, right?
12:18 n0tjack joined #perl6
12:18 FROGGS I think so, yes
12:19 timotimo i only see the "before" value in the irclog
12:22 FROGGS Sep 13 21:48:36 <moritz>real13m11.531s
12:22 FROGGS Sep 13 21:48:42 <moritz>used to be 21min. Wow.
12:22 FROGGS timotimo: ^^
12:22 timotimo ah, there it is!
12:22 timotimo no "htmlify" nearby, that's why it was so hard for me to find :)
12:28 itz_ if I have a var "our $foo" is there anyway of calling a ^method or similar to get the scope?
12:30 leont I'm trying to debug the debugger, this is confusing…
12:30 larion joined #perl6
12:31 cschwenz joined #perl6
12:33 andreoss m: subset Z; class Y { has Z $.z }; my Y @y = do Y.new(:z($_)) for 1..10; my @z = @y».z; say @z.perl
12:33 camelia rakudo-moar 365563: OUTPUT«[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]␤»
12:34 cschwenz left #perl6
12:34 andreoss m: subset Z; class Y { has Z $.z }; my Y @y = do Y.new(:z($_)) for 1..10; say @y».z.perl
12:34 camelia rakudo-moar 365563: OUTPUT«Array[Y].new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)␤»
12:35 itz_ m: my $x = 42; say GLOBAL::<$x>
12:35 camelia rakudo-moar 365563: OUTPUT«(Any)␤»
12:35 andreoss why is it not Array[Z]?
12:35 itz_ m: our $x = 42; say GLOBAL::<$x>
12:35 camelia rakudo-moar 365563: OUTPUT«42␤»
12:37 andreoss m: subset Z; class Y { has Z $.z }; my Y @y = do Y.new(:z($_)) for 1..10; say (@=@y».z).perl
12:37 camelia rakudo-moar 365563: OUTPUT«[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]␤»
12:38 leont I have an NQP match object, how can I debug anything about it?
12:38 FROGGS leont: can you .DUMP it?
12:38 FROGGS ohh, dump probably
12:39 leont Cannot find method 'dump'
12:39 leont Same for DUMP
12:40 FROGGS NQPMatch has a dump method though...
12:41 leont Well, it's also complaining it doesn't have a from method, so I guess it's getting something else passed
12:42 st_iron left #perl6
12:42 FROGGS you can print is $obj.HOW.name($obj)
12:43 n0tjack joined #perl6
12:43 FROGGS its*
12:44 leont Ah!
12:44 timotimo visit_2d_indices_cross                                   57633/s                     5370/s
12:44 timotimo 1.0x                      10.7x
12:44 timotimo something got slower!
12:44 leont It's getting an NQPArray instead of an NQPMatch
12:44 timotimo did anybody else experience a drastic improvement in performance just by switching to GLR?
12:46 leont It seems 1c76b58e5 is the cause of my issue
12:46 itz_ japh has a benchmark suite I think
12:46 timotimo i've run it; that's where that output came from
12:46 leont The debugger hasn't been updated to deal with it
12:47 leont I think I can fix this
12:48 timotimo that's good news!
12:48 jnthn om nom nom
12:49 leont Will PR if tests succeed
12:49 timotimo bon appetit, jnthnom
12:49 timotimo jonathnom worthingnom
12:49 timotimo has the GMR already been included in nom?
12:50 hernanGOA joined #perl6
12:50 jnthn timotimo: I had a good appetite, but now I eated a plate of aloo dum and am quite full :)
12:50 jnthn timotimo: GMR hasn't yet, no
12:50 Psyche^ joined #perl6
12:51 jnthn timotimo: If you're doing the weekly you could mention the nasty data race I fixed and code-gen improvements :)
12:51 jnthn timotimo: What's the code of the benchmark that got slower?
12:53 [Coke] We have two months of Changelog going on. Please review and update.
12:53 [Coke] Don't know if we need to be explicit on deprecations or just say "all".
12:55 Ven joined #perl6
12:58 jnthn .tell nine I've reviewed the GMR branch and I'm happy with how it's looking overall. The only point of discomfort is the ".key => my $ = .value" pattern that is common enough to make me wish we had a better way to do it.
12:58 yoleaux jnthn: I'll pass your message to nine.
12:58 timotimo jnthn: https://github.com/japhb/perl6-bench​/blob/master/microbenchmarks.pl#L442
12:59 jnthn .tell nine Not sure I feel that's a merge blocker, though, and more in TimToady++'s hands to decide if we should do something about it :)
12:59 yoleaux jnthn: I'll pass your message to nine.
12:59 timotimo let's use :=> for the "put the RHS into a scalar" thing; it looks a tiny bit like how we make object hashes
13:00 timotimo ... and so it's exactly the wrong way around
13:00 dalek rakudo/nom: e7b27c4 | leont++ | src/perl6-debug.nqp:
13:00 dalek rakudo/nom: Handle new if statement definition
13:00 dalek rakudo/nom:
13:00 dalek rakudo/nom: This updates the debugger to deal with the syntax tree as it is created
13:00 dalek rakudo/nom: after 1c76b58e5.
13:00 dalek rakudo/nom:
13:00 dalek rakudo/nom: Without this commit, the debugger will die if your code contains any if
13:00 dalek rakudo/nom: statements.
13:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e7b27c4a20
13:00 dalek rakudo/nom: bdcccf0 | jnthn++ | src/perl6-debug.nqp:
13:00 dalek rakudo/nom: Merge pull request #530 from Leont/debugger
13:00 dalek rakudo/nom:
13:00 dalek rakudo/nom: Handle new if statement definition
13:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bdcccf0ab1
13:00 timotimo pff, what kind of code contains if statements?
13:00 brrt joined #perl6
13:00 nine Really
13:00 yoleaux 12:58Z <jnthn> nine: I've reviewed the GMR branch and I'm happy with how it's looking overall. The only point of discomfort is the ".key => my $ = .value" pattern that is common enough to make me wish we had a better way to do it.
13:00 yoleaux 12:59Z <jnthn> nine: Not sure I feel that's a merge blocker, though, and more in TimToady++'s hands to decide if we should do something about it :)
13:01 leont timotimo: I know, I write crazy stuff like that!
13:01 jnthn I know, I mean it's 2015, you should be using polymorphism everywhere, not if statements!
13:01 nine jnthn: thanks for the review :)
13:03 jnthn timotimo: Gee, that range X range benchmark really is slow
13:05 thou joined #perl6
13:12 colomon joined #perl6
13:14 brrt joined #perl6
13:16 El_Che joined #perl6
13:17 [Coke] RT: 1,030 tickets, 10 testneeded, 9 [GLR]
13:23 dalek perl6-examples: 76af694 | paultcochrane++ | t/000-check-dependencies.t:
13:23 dalek perl6-examples: Summarise which dependencies are missing in check deps test
13:23 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/76af694fa9
13:23 dalek perl6-examples: cb245d9 | paultcochrane++ | t/categories/99-problems.t:
13:23 dalek perl6-examples: [99probs] sort scripts to test
13:24 dalek joined #perl6
13:26 khw joined #perl6
13:26 telex joined #perl6
13:26 nine timotimo: my $k = 0; for 1 .. SCALE X 1 .. SCALE -> ($i, $j) { $k = $i + $j }; say $k;
13:26 jnthn nine: I'm looking into that one at the moment :)
13:26 nine timotimo: is already a third faster than the version used in the benchmark
13:27 pmurias can I get a MoarVM commit bit or should I make a pull request on github?
13:27 jnthn pmurias: PR
13:27 jnthn m: say 1.84 / 2.17
13:27 camelia rakudo-moar bdcccf: OUTPUT«0.847926␤»
13:27 jnthn Well, found an easy 15% off it
13:28 jnthn Along with a semantic inconsistency
13:28 jnthn Need to spectest this first
13:31 jnthn m: my \a = gather { for ^5 { .say; .take } }; my \b = gather { for ^5 { .say; .take } }; for a X b { }
13:31 camelia rakudo-moar bdcccf: OUTPUT«0␤1␤2␤3␤4␤0␤1␤2␤3␤4␤»
13:32 rurban joined #perl6
13:36 pmurias jnthn: I made the PR
13:36 aborazmeh joined #perl6
13:36 aborazmeh joined #perl6
13:37 Ven https://twitter.com/mistydem​eo/status/641820075243102208 <- I really, really, really like we're actually using higher-order functions in Perl.
13:40 dalek rakudo/nom: 831b7cb | jnthn++ | src/core/List.pm:
13:40 dalek rakudo/nom: Make flat(...) consistent with .flat.
13:40 dalek rakudo/nom:
13:40 dalek rakudo/nom: It now also returns a Seq, which means we don't end up storing any
13:40 dalek rakudo/nom: intermediate values - both a memory and speed improvement.
13:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/831b7cba16
13:40 dalek rakudo/nom: aaa4363 | jnthn++ | src/core/List.pm:
13:40 dalek rakudo/nom: Fix permutations.
13:40 dalek rakudo/nom:
13:40 dalek rakudo/nom: This was the one victim in the spectests of the flat/.flat consistency
13:40 dalek rakudo/nom: fix.
13:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/aaa4363c91
13:40 brrt joined #perl6
13:40 jnthn timotimo: found ^^ while looking into the benchmark you pointed out
13:41 rurban joined #perl6
13:44 hernanGOA joined #perl6
13:47 * Ven didn't realize there was a difference between | and `flat`
13:47 Ven well, no, that's wrong. I guess | is Slip, rather
13:50 TimToady speaking of which, we need a slurpy style for the one-arg rule, and at the moment I'm leaning towards *| for that
13:50 yoleaux 09:38Z <brrt> TimToady: i think that @answers{@slice} = 42 xx * should be @answers[@slice] = 42 xx *
13:50 TimToady brrt: yes, that was a booboo
13:50 timotimo will be afk for ~4h
13:52 El_Che joined #perl6
13:52 Ven joined #perl6
13:52 laouji joined #perl6
13:57 jnthn infix:<X> is...interesting :)
13:57 nine And hasn't gotten much love since the initial GLR fixes
13:58 jnthn Yeah
13:58 * jnthn is loving it now
13:58 jnthn Well, or trying :)
13:58 Ven TimToady: slurpy style for the one-arg rule?
13:59 nine Ven: the flatten a single iterable argument into the slurpy, except if it's itemized
14:00 pmurias how do I make nqp write moar bytecode?
14:01 nine pmurias: nqp --target=mast I believe
14:01 jnthn nqp --target=mbc --output=foo.moarvm
14:02 pmurias --target=mbc does it
14:03 TimToady speaking of slurpies, if we ever want * to default to something else, we'd better replace the current flattening syntax with something else now
14:03 pmurias and the test file which is causing the realloc error passes if I split the compilation and running
14:03 jnthn timotimo: Do we want that?
14:03 jnthn oops
14:04 jnthn TimToady: ^^
14:04 jnthn I'd thought the current *@foo semantics were the right ones, fwiw
14:04 TimToady with the idea that whatever mark we put on the * for explicit flattening, could also be used to mark X or Z for flattening their args and results
14:05 TimToady *_ doesn't work though, if there's no sigil
14:07 awwaiid Is there an updated Periodic Table of Operators? My co-workers linked to a 2009 one, which I suspect is out of date.
14:07 TimToady not yet
14:07 jnthn yay, my patch survives spectest
14:08 jnthn m: say 0.83 / 1.84
14:08 camelia rakudo-moar bdcccf: OUTPUT«0.451087␤»
14:08 itz joined #perl6
14:08 jnthn m: say 0.83 / 2.17
14:08 camelia rakudo-moar bdcccf: OUTPUT«0.382488␤»
14:08 awwaiid cool
14:08 TimToady is that for X?
14:08 jnthn The first number is improvement of X
14:09 jnthn The second is improvement of X and flat
14:09 jnthn That is, 1..100 X 1..100 now runs in 38% of the time it once did (including startup)
14:09 TimToady given how many of our flats are applied to X and Z, I'm wondering if we have the default wrong there
14:09 jnthn That's still slower than I want it to be, but it's a good start :)
14:10 TimToady and maybe we should mark "bumpy" X and Z rather
14:10 FROGGS let's use x and z as a flat-producing X and Z :o)
14:11 TimToady x is tooked
14:11 FROGGS ups
14:11 geekosaur (Y and W, then you can distinguish between flat/not flat and mammals/birds >.> )
14:12 TimToady well, zip used to be Y
14:13 dalek rakudo/nom: e5c1df1 | jnthn++ | src/core/List.pm:
14:13 dalek rakudo/nom: Various improvements to infix:<X>.
14:13 dalek rakudo/nom:
14:13 dalek rakudo/nom: Remove various superstitious bits of code that worked around the way
14:13 dalek rakudo/nom: things were pre-GLR. Then make sure we .list the things we are going
14:13 dalek rakudo/nom: to work over. It turns out that if a Range were one of the arguments
14:13 dalek rakudo/nom: to infix:<X> then indexing it would be rather more expensive than if
14:13 dalek rakudo/nom: we had done .list on it in the first place.
14:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e5c1df1187
14:14 Skarsnik joined #perl6
14:14 Sqirrel joined #perl6
14:15 pat_js joined #perl6
14:17 aindilis joined #perl6
14:18 thou joined #perl6
14:22 pmurias is there a way to skip entires tests file on the moar backend?
14:23 FROGGS print "1..0\nReason"; exit 0;
14:23 FROGGS or so
14:23 pmurias the test file doesn't compile
14:23 FROGGS eww
14:23 FROGGS pmurias: then put it in a vm specific test directory
14:23 Sqirrel joined #perl6
14:23 FROGGS like t/js
14:23 pmurias t/not-moar ?
14:24 FROGGS O.o
14:24 FROGGS pmurias: what is the test about?
14:24 pmurias FROGGS: it's an expanded version of test 84-loop-labels
14:24 Ven joined #perl6
14:25 FROGGS ahh, so it is meant to run on all backends, right?
14:25 pmurias FROGGS: it causes a memory issue, which doesn't appear if I add a few extra assignments
14:25 pmurias FROGGS: yes
14:25 brrt joined #perl6
14:25 FROGGS then it should reside in t/nqp or where the other tests are... but maybe just in a branch with an associated github issue
14:26 TimToady pmurias: maybe #?rakudo.js emit BEGIN exit
14:26 TimToady or some such
14:26 pmurias TimToady: it's in nqp
14:26 TimToady ah
14:27 hernanGOA joined #perl6
14:28 grondilu m: say (1, 2) X+ (1 X* [1, 2])
14:28 camelia rakudo-moar aaa436: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: Uninstantiable)␤»
14:29 nine jnthn: using list unpack in the benchmark instead of flat() will still shave off another 30 %. Runs in 0.688s here
14:30 FROGGS m: say (1, 2) X+ (1 X* |[1, 2])
14:30 camelia rakudo-moar aaa436: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: Uninstantiable)␤»
14:34 jnthn nine: Interesting; I'd never considered unpacking too speedy :)
14:34 TimToady m: say (1, 2) X+ flat(1 X* [1,2])
14:34 camelia rakudo-moar aaa436: OUTPUT«(2 3 3 4)␤»
14:34 * jnthn is looking into an optimizer "missed opportunity" that can get some wins across the board, but it's...non-trivial.
14:35 nine jnthn: maybe it isn't. Maybe flat() is still just too slow
14:35 * BooK is wondering if there's a Perl6 equivalent to Perl5's B::Deparse
14:35 jnthn nine: Actually the next hotspot on the list seems to be multi-arg map...
14:35 skids joined #perl6
14:35 nine BooK: perl6 --target=ast
14:36 cschwenz joined #perl6
14:36 Juerd Is there a way to use the instance in the refinement block in "has $.foo where { ... }"?
14:36 nine BooK: oh, forget that, I confused B::Deparse with something else
14:37 cschwenz left #perl6
14:37 jnthn Juerd: no
14:37 BooK nine: that's more like B::Concise, yes
14:37 TimToady a deparser would be...interesting...
14:37 Juerd jnthn: Is something like that planned, or will this not happen any time soon?
14:37 BooK just make perl6 --target=perl6 work :-)
14:37 ugexe Juerd: cant you do that in the constructor?
14:37 timotimo sounds like something that just requires doing?
14:38 BooK alias perl6tidy='perl6 --target=perl6'
14:38 jnthn Juerd: Not planned; that's not how the scoping of where blocks in general works
14:38 Juerd ugexe: No, I have a constantly modifying tree, and I have to avoid that it becomes cyclic :)
14:38 Juerd jnthn: Too bad. Thanks for the info!
14:38 Juerd Might use a setter :(
14:39 jnthn Or do OO design and think up a nice name for the operation :P
14:39 nine jnthn: is for @a -> ($a, $b) { ... } a multi arg map or do we hit the optimized single arg branch there? Might explain why list unpack is faster
14:39 pmurias I created issue #260 in MoarVM for that memory bug
14:39 jnthn nine: no, for @a -> $a, $b { } is
14:39 Juerd jnthn: It'd still be a setter in disguise :)
14:40 TimToady m: class A { has $.foo where { .say } }; A.new(:foo<bar>)
14:40 camelia rakudo-moar aaa436: OUTPUT«bar␤»
14:40 TimToady Juerd: how I undersood your question ^^
14:40 Juerd The application will keep track of where things are, barcode driven. So you can say that a certain device is in a specific box, on a shelf, in a room, in a building, etc. Containers can nest, but you can't put a box in itself, for example :)
14:41 timotimo he wants the instance of the class that owns the attribute
14:41 diakopter m: class A { has $.foo where { .say } }; A.new(:foo<0>)
14:41 camelia rakudo-moar aaa436: OUTPUT«0␤»
14:41 FROGGS hey diakopter
14:41 Juerd TimToady: I know it can access the newly assigned value. But I want to check that against existing attributes.
14:42 Juerd TimToady: class Foo { has Foo $.child where { not-cyclic(self, $_) } }
14:43 Juerd Easily solved with a setter, so I should probably just use that :)
14:43 aindilis joined #perl6
14:43 timotimo hmmm
14:43 diakopter m: class A { has $.foo where { .say } }; A.new(:foo<<>>)
14:43 camelia rakudo-moar aaa436: OUTPUT«()␤»
14:44 timotimo i wonder if you can parameterize the type with the instance
14:44 Juerd If I understand correctly, there's no concept of 'self' in a where block at all.
14:44 Juerd (It's valid syntax, though. Is that a bug?)
14:44 timotimo and then check against that?
14:44 Juerd s/It's valid syntax/It compiles/
14:44 timotimo it might blow up upon the first type check
14:44 dalek doc: 9fe36fd | skids++ | lib/Language/subscripts.pod:
14:44 dalek doc: Complete the post-glr slice truncation section
14:44 dalek doc: review: https://github.com/perl6/doc/commit/9fe36fd7c7
14:45 Ven m: say "to".chars>>.succ.join
14:45 camelia rakudo-moar aaa436: OUTPUT«3␤»
14:45 Juerd timotimo: What does 'parameterize the type with the instance' mean?
14:47 ugexe role foo { has $.a is <some requirements>; } class bar { foo $.x } probably
14:48 timotimo nah
14:48 jnthn Ven: .comb, not .chars
14:48 timotimo role Uniquity[%values] { ... }
14:48 Ven jnthn: whoops. cargo-culting..
14:48 Ven m: say "to".comb>>.succ.join
14:48 camelia rakudo-moar aaa436: OUTPUT«up␤»
14:49 timotimo now do it with HAL
14:52 timotimo jnthn, thanks for taking a look
14:52 timotimo does this also entail changing the test itself to align with glr semantics like nine suggested?
14:53 timotimo annoyingly i cannot kick off a new run from my phone alone...
14:54 jnthn timotimo: I think we should keep the benchmark as it is, though we can also include nine++'s suggestion too
14:54 timotimo include it as an extra benchmark in the list?
14:55 jnthn Yeah
14:55 timotimo does it work properly before glr?
14:55 kjs__ joined #perl6
14:55 jnthn Think unpacking one? Believe so
14:55 timotimo i have wondered if we could get some benchmarks reporting onto the same graph
14:56 * Ven starts debugging post-GLR breakages in his little scripts...
14:56 timotimo anyway, that can be done
14:56 timotimo i will be AFP for two hours in a few minutes
14:57 timotimo jnthn, did you also see the qast dump where only the innermost operation got inlined?
14:58 timotimo 1é26 my local time
14:58 timotimo 3 hours ago
14:58 jnthn timotimo: Didn't get to looking at that yet
14:58 timotimo 1326
14:58 jnthn So...many...things...
14:58 timotimo hehe
14:58 timotimo sorry
14:58 timotimo afp
14:58 Ven obviously, `(1, 2 X 3, 4).map: { $^x + $^y }` broke post-glr...
14:59 laouji joined #perl6
15:00 zostay the P6SGI discussion is getting lively.... we must remember that Perl6 is not Perl5 :)
15:00 rurban SGI?
15:00 zostay standard gateway interface
15:00 Ven m: say ((1, 2, 3) (-) 1).perl
15:00 camelia rakudo-moar e5c1df: OUTPUT«set(3,2)␤»
15:01 zostay like CGI, but 30 years better
15:01 Ven m: say (((1, 2), (3, 4), (5, 6)) (-) (1,2)).perl
15:01 camelia rakudo-moar e5c1df: OUTPUT«set(5,4,3,6)␤»
15:02 jnthn timotimo: At the moment I'm looking into the way dynamic compilation of code prevents the immediate block inlining optimization, fwiw.
15:02 rurban PSGI, right?
15:02 zostay yes, but not really
15:02 BooK Ven: what does (-) do ?
15:02 Ven BooK: set intersection
15:03 zostay PSGI is synchronouish, but P6SGI is async
15:03 TimToady set difference
15:03 Ven er, yes. difference. uhm.
15:03 Ven intersection would be (|), I guess
15:04 eiro BooK++
15:04 eiro oops... wrong chan. hello everyone
15:05 BooK ∆ is probably more readable, if not either to type :-)
15:06 BooK also, wrong operator
15:06 itz odd I'm getting intermittent failures with prove -e perl6
15:06 awwaiid zostay: I thought it was async in the streaming case, but pretty identical for the normal case (or at least indistinguishable)?
15:07 BooK mmm, I get to see how rusty my set theory is
15:07 awwaiid also where is this lively discussion to which you refer?
15:07 rurban http://blogs.perl.org/users/sterling_hanenkamp/201​5/09/p6sgi-smack-the-reference-implementation.html probably
15:07 awwaiid cool
15:08 hoelzro o/ #perl6
15:08 Ven \o hoelzro
15:08 TimToady m: say (((1, 2), (3, 4), (5, 6)) ∖ (1,2)).perl
15:08 camelia rakudo-moar e5c1df: OUTPUT«set(5,4,3,6)␤»
15:09 tokuhiro_ joined #perl6
15:11 zostay awwaiid: all apps are required to return a Promise, so they could do so synchronously if they really want to be jerks
15:11 awwaiid seems like the API could sniff whether it was a promise or not
15:12 * BooK realizes that the things arount the set operators are lists, and they are turned into sets for doing the set operation
15:12 BooK operator-rich languages for the win :-)
15:13 BooK also ∖ is not \ # naughty
15:14 hoelzro o/ Ven
15:14 Ven joined #perl6
15:15 TimToady fortunately there's no infix:<\> to confuse it with
15:15 leont Surely that could be used as a namespace operator! ;-)
15:16 TimToady PHPHPHPTHTHT!
15:16 jnthn Yeah...Windows users will love it! :P
15:18 * flussence still cringes at that decision... "parsing is hard, which keyboard button haven't we used yet?"
15:18 pink_mist you have ∖ on your keyboard? 0_o
15:18 flussence only the ascii one
15:19 flussence (I wonder if there's some compose-key thing for the unicode one though, I can already type ≠ easily enough...)
15:21 pat_js joined #perl6
15:22 [Coke] RT #126049 is new. tagged it [GLR]
15:23 leont flussence: you can add your own compose-key thingies, I think
15:25 skids On docs, is L<OtherDocPage#subsection> broken in htmlify, or is that not the right syntax to use?
15:25 BooK if you really want to be operator rich, I guess you have to go beyond the keyboard
15:26 flussence leont: yeah, I just wish I knew how to get a list of existing ones... xmodmap won't tell me.
15:26 TimToady BooK: which is okay--you only type something once, but you read it many times
15:27 BooK also, copy-paste!
15:27 dayangkun joined #perl6
15:27 BooK I've seen people copy-paste accented letters when they had an ascii-only keyboard/keymap
15:27 BooK although, most give up pretty quick
15:29 flussence oh, I typed `man compose` absent-mindedly and it gave me exactly what I wanted...
15:29 dayangkun joined #perl6
15:30 * TimToady eeks, got run-mailcap instead
15:30 flussence `man 5 compose` to be precise :)
15:30 dayangkun joined #perl6
15:31 TimToady last time I tried, that stuff fought with my Japanese input method
15:32 dalek doc: b628b18 | skids++ | lib/Type/Parameter.pod:
15:32 dalek doc: Attempt to fix some links based on what a working link did.
15:32 dayangkun joined #perl6
15:32 dalek doc: review: https://github.com/perl6/doc/commit/b628b183ca
15:33 flussence no "SET MINUS" in these files, though there are a few lines for unicode set operators that take other set operators as compose input. Looks like whoever wrote this had a space cadet keyboard...
15:33 dayangkun joined #perl6
15:33 jnthn m: say 0.72 / 0.83
15:33 camelia rakudo-moar e5c1df: OUTPUT«0.867470␤»
15:34 dayangkun joined #perl6
15:34 abaugher joined #perl6
15:35 dayangkun joined #perl6
15:36 * jnthn crosses fingers, runs spectest
15:36 dayangkun joined #perl6
15:37 Ven .oO( is that jnthn++'s secret to good code? Crossed fingers to code? )
15:37 Ven .o( I guess if you're nordic, and used to coding with mittens, crossed fingers are an actual improvement... *g* )
15:38 leont I think I'm running afoul with the longest token matcher :-s
15:39 leont I have a proto rule with a bunch of multi-rules. It doesn't seem to backtrack the way I had hoped it would :-/
15:40 leont It doesn't seem to try other "alternations"
15:40 jnthn The LTM-er should just decide an ordering to try the feasible ones
15:40 BooK does panda honor http_proxy and https_proxy environment variables?
15:41 dalek Heuristic branch merge: pushed 17 commits to rakudo/nom by FROGGS
15:41 skids leont: RT#125374 maybe?
15:41 * jnthn wonders what FROGGS++ just merged :)
15:41 dalek Inline-Perl5/glr: 2a11020 | FROGGS++ | lib/Inline/Perl5.pm6:
15:41 dalek Inline-Perl5/glr: register module loader using CompUnitRepo
15:41 dalek Inline-Perl5/glr:
15:41 dalek Inline-Perl5/glr: This change will be needed *after* the `cu_load` branch has been merged.
15:41 dalek Inline-Perl5/glr: Do not merge before this point.
15:41 dalek Inline-Perl5/glr: review: https://github.com/niner/Inl​ine-Perl5/commit/2a11020f75
15:41 dalek Inline-Perl5/glr: e0901ba | FROGGS++ | lib/Inline/Perl5.pm6:
15:41 dalek Inline-Perl5/glr: Merge pull request #42 from FROGGS/patch-2
15:41 dalek Inline-Perl5/glr:
15:41 dalek Inline-Perl5/glr: register module loader using CompUnitRepo
15:41 dalek Inline-Perl5/glr: review: https://github.com/niner/Inl​ine-Perl5/commit/e0901ba83d
15:41 FROGGS jnthn: the cu_load branch
15:41 jnthn FROGGS: One-sentence summary of what it does? :)
15:42 dalek roast: 621b348 | (Stefan Seifert)++ | S32-list/classify.t:
15:42 dalek roast: Test that .classify evaluates &test only once for each item
15:42 dalek roast:
15:42 dalek roast: RT #126032
15:42 dalek roast: review: https://github.com/perl6/roast/commit/621b348776
15:42 dalek rakudo/nom: b4a9f56 | (Stefan Seifert)++ | src/core/ (2 files):
15:42 dalek rakudo/nom: Fix .classify assuming side effects
15:42 dalek rakudo/nom:
15:42 dalek rakudo/nom: We now make sure to only evaluate &test once for each element of the input list.
15:42 dalek rakudo/nom: Fixes RT #126032
15:42 dalek rakudo/nom:
15:42 dalek rakudo/nom: This new implementation takes an Iterable instead of a List giving a speedup
15:42 dalek rakudo/nom: of 15 % for (1..500000).classify(* % 5)
15:42 xinming joined #perl6
15:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b4a9f56469
15:42 FROGGS jnthn: when we load a module in user space it does that via CompUnit.load
15:42 nine jnthn: the first catch of the day :)
15:42 jnthn nine++
15:42 jnthn FROGGS++
15:42 FROGGS jnthn: no Perl6::ModuleLoader involved anymore... well, except for merge_globals which jvm did not like
15:42 nine I love bug fixes that give speedups as a bonus :)
15:43 leont skids: that looks useful, will try
15:44 FROGGS |Tux|: next time you upgrade you need to upgrade both rakudo *and* Inline::Perl5
15:44 nine FROGGS: you pushed to Inline::Perl5 glr branch instead of master
15:44 FROGGS grrr
15:44 FROGGS nine: thanks for telling me :o)
15:44 nine FROGGS: no g_l_r ;)
15:44 FROGGS doing it right now
15:45 jnthn m: say 4061 / 4163
15:45 camelia rakudo-moar e5c1df: OUTPUT«0.975498␤»
15:45 jnthn Another 2.5% off Test::CSV
15:45 dalek Inline-Perl5: 88513e7 | FROGGS++ | lib/Inline/Perl5.pm6:
15:45 dalek Inline-Perl5: register module loader using CompUnitRepo
15:45 dalek Inline-Perl5:
15:45 dalek Inline-Perl5: This change will be needed *after* the `cu_load` branch has been merged.
15:45 dalek Inline-Perl5: Do not merge before this point.
15:45 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/88513e7de7
15:45 FROGGS there we go
15:46 FROGGS jnthn: in a distant future we should implement an op that loads a cu from memory, and then we can do nice things with databases
15:47 leont Ah, I think the mistake is mine, but I'm not sure how to fix it :-s
15:47 FROGGS .tell lizmat I've merged the cu_load branch, we should perhaps focus now on getting precomp working again
15:47 yoleaux FROGGS: I'll pass your message to lizmat.
15:48 dalek rakudo/nom: 7e265b6 | jnthn++ | src/Perl6/Optimizer.nqp:
15:48 dalek rakudo/nom: Perform the immediate block inlining more often.
15:48 dalek rakudo/nom:
15:48 dalek rakudo/nom: Previously, dynamic compilation meant we didn't do it as we might
15:48 dalek rakudo/nom: mess up closures taking at BEGIN time. However, that was overly
15:48 dalek rakudo/nom: pessimistic. We can in fact perform the optimization provided no
15:48 dalek rakudo/nom: possible closures exist to have been taken at BEGIN time. Improves
15:48 dalek rakudo/nom: quality of code in CORE.setting a good bit, knocking 4 GC runs and
15:48 dalek rakudo/nom: 2.5% of the runtime off Text::CSV, for example.
15:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7e265b6951
15:49 jnthn Uh, off my local benchmark of it doing 10,000 lines
15:49 Skarsnik Hi. It's a probably a stupid question but, can we call perl6 code in perl5?
15:49 FROGGS well, you specified the runtime percentage wise at least :o)
15:49 FROGGS Skarsnik: using Inline::Perl6, yes
15:50 nine Skarsnik: https://metacpan.org/pod/Inline::Perl6
15:51 nine Oh my .classify speedup is even 21 %. I accidentally included the .perl in my measurements
15:53 * FROGGS .oO( Ohh, my academic paper isn't 500 pages... I accidently included my cat... )
15:53 Skarsnik Ok, thanks you x)
15:55 jnthn FROGGS: The number of GC runs less was absolute, though :)
15:55 jnthn m: say 48 / 52
15:55 camelia rakudo-moar e5c1df: OUTPUT«0.923077␤»
15:56 jnthn 8% less or so :)
15:56 FROGGS *g*
15:56 * [Coke] ponders tagging RTs that we know are post 6.0 instead of / in addition to those that are definitely < 6.0
15:57 * [Coke] imagines it's probably a lot of churn for little benefit.
15:57 CQ [Coke]: well, if it focuses people on the right stuff and produces a "real" pre-6.0 bugcount to squash it might be worth it
15:57 [Coke] jnthn: https://rt.perl.org/Ticket/Display.html?id=71544 look closable to you?
15:58 [Coke] CQ: right now the pre-6.0 list is:
15:58 [Coke] https://rt.perl.org/Ticket/Display.html?id=123766
15:58 FROGGS [Coke]: 71544 looks good, yes
16:00 jnthn [Coke]: Believe so.
16:00 FROGGS[mobile] joined #perl6
16:00 [Coke] closing...
16:01 skids [Coke]: If you're taking nominations for 123766, I think 125437 might be good to fix before 6.0.
16:01 [Coke] anyone who is a bugadmin can add deps to the blocker ticket.
16:02 skids Well, me personally, I can't do much of anything if I log in, and I think we tried to fix that and it fizzled and we gave up.
16:03 [Coke] you sure you were using the non-public interface?
16:03 skids I'll try anything again -- how do I make sure I'm not?
16:05 [Coke] skids - need email address you use on RT.
16:07 dalek perl6-examples: 18afa95 | (Steve Mynott)++ | / (4 files):
16:07 dalek perl6-examples: fix for GLR 4 tests more tests from 99probs
16:07 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/18afa951c0
16:11 tokuhiro_ joined #perl6
16:19 ugexe FROGGS[mobile]: note the two `elsif $file {` https://github.com/rakudo/rakudo/blob​/nom/src/core/CompUnitRepo.pm#L77-L83
16:21 FROGGS[mobile] ugexe: ohh ups... probably happened when merging branches
16:21 rindolf joined #perl6
16:21 FROGGS[mobile] I think the first elsif needs to go
16:22 ugexe or elsif $file.IO.e
16:22 dalek perl6-examples: f337686 | (Steve Mynott)++ | t/000-check-dependencies.t:
16:22 dalek perl6-examples: order deps alphabetically
16:22 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/f337686c36
16:22 dalek perl6-examples: af42e9b | (Steve Mynott)++ | / (3 files):
16:22 dalek perl6-examples: add new deps
16:22 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/af42e9b161
16:23 FROGGS[mobile] no, I think .candidates will handle that
16:24 FROGGS[mobile] I mean CURLF would
16:24 FROGGS[mobile] or, hmmmm
16:25 FROGGS[mobile] maybe you are right
16:25 dalek perl6-examples: 7f8834e | (Steve Mynott)++ | / (4 files):
16:25 dalek perl6-examples: correct dep name to Web
16:25 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/7f8834e372
16:26 dalek perl6-examples: 72ceb8d | (Steve Mynott)++ | htmlify.pl:
16:26 dalek perl6-examples: revert debugging commit :/
16:26 dalek perl6-examples: review: https://github.com/perl6/perl​6-examples/commit/72ceb8d861
16:27 dha joined #perl6
16:27 dha left #perl6
16:27 dha joined #perl6
16:30 jnthn m: say 0.58 / 0.72
16:30 camelia rakudo-moar 7e265b: OUTPUT«0.805556␤»
16:31 jnthn m: say 0.58 / 2.17
16:31 camelia rakudo-moar 7e265b: OUTPUT«0.267281␤»
16:31 larion joined #perl6
16:31 alpha- joined #perl6
16:31 alpha- hello
16:32 jnthn Yay, got that bad benchmark timotimo++ reported down to about a quarter of what it was. :)
16:32 jnthn hello, alpha-
16:32 alpha- are there any plans for perl6 browser integration? eg. <script type='text/perl6'>...</script>
16:34 jnthn I've not heard about anyone working on that; closest I'm aware of is ongoing work on Perl 6 -> JavaScript compilation
16:35 alpha- I see, thanks
16:35 pink_mist what does that entail? perl6 --target=js or something?
16:36 xfix joined #perl6
16:37 [Coke] pink_mist: doesn't exist yet.
16:37 cognominal joined #perl6
16:37 [Coke] work is being done on nqp to target node.js
16:37 [Coke] once that's in place, then work can be done to get a perl6-js compiler.
16:37 [Coke] (much like today there is a perl6-j and a perl6-m)
16:37 dalek rakudo/nom: 57a7f6a | jnthn++ | src/core/Iterable.pm:
16:37 dalek rakudo/nom: Optimize .flat somewhat.
16:37 dalek rakudo/nom:
16:37 dalek rakudo/nom: This cuts a further 20% off "for 1..100 X 1..100 { }".
16:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/57a7f6a6f6
16:38 jnthn oops
16:38 jnthn Of "for flat 1..100 X 1..100 -> $i, $j { }" is what I shoulda said...
16:40 jnthn Still plenty more to squeeze out of it, but I think that's a nice bunch of improvements for now :)
16:42 kjs__ joined #perl6
16:44 perl6_newbee joined #perl6
16:46 dha Ok, wrote up some docs for C<state>. Thoughts? https://gist.github.com/dha/8009c28d7bf2d1ca8875
16:47 dha Also, I note that code blocks are being rendered oddly by perl6 --doc. First line is outdented by one character.
16:47 yqt joined #perl6
16:50 flussence m: say "    " ~ ('foo', 'bar')
16:50 camelia rakudo-moar 7e265b: OUTPUT«    foo bar␤»
16:51 flussence probably that space.
16:51 flussence (leaking in at Pod::To::Text line 40)
16:51 dha Ok. Well *I'm* not going to try to fix that. :-)
16:56 hoelzro .tell pmurias should I go ahead and complete that merge tonight?
16:56 yoleaux hoelzro: I'll pass your message to pmurias.
16:57 vendethiel joined #perl6
17:05 masak just want to check: has anyone else with a Perl blog received an email from guru99?
17:05 tadzik nope
17:05 arnsholt Doesn't look like it, no
17:06 masak ok, just want to make sure how widely they're targeting. thanks.
17:08 telex joined #perl6
17:12 kjs__ joined #perl6
17:14 diana_olhovik_ joined #perl6
17:15 larion joined #perl6
17:18 |Tux| masak, DPW (NLPW) has
17:18 |Tux| and he got quite a negative reaction for the shit his website contained
17:19 |Tux| of course we denied his request
17:19 nine Now I'm becoming curious...
17:21 |Tux| 👏 👏 👏 👏
17:21 |Tux| test             50000    36.525    36.446
17:21 |Tux| test-t           50000    36.905    36.826
17:22 * |Tux| off to badminton
17:26 [Coke] dha++ state docs.
17:26 dha Do they look ok?
17:26 [Coke] masak: yes, I've gotten guru99 emails.
17:26 [Coke] hence the upvote, yes.
17:27 [Coke] ship it. :)
17:27 dha Heh. Ok.
17:27 [Coke] oh! no, I just have linkedin mails that include guru99
17:27 [Coke] linkedin--
17:29 leont Got it the same way |Tux| did, my review of his content had little mercy…
17:30 hernanGOA o/
17:30 [Coke] Their inconsistent use of PERL vs. Perl is grating right off the bat.
17:31 leont Their lack of use strict isn't any better
17:32 leont And two arg open is very 90s too
17:32 dha "PERL is popularly known as duct tape of the internet." No, it is known as a way of telling if people know anything about Perl.
17:33 dha I'm not reading any more of this. My blood pressure's probably high enough.
17:34 jercos funny, I see the exact same phrase on a fair number of sites...
17:35 jercos with the same outline
17:35 jercos I wonder who's copying and pasting from whom?
17:35 tony-o is there a gist or a link somewhere?
17:35 yoleaux 02:41Z <japhb> tony-o: Is there a reason JSON::Faster isn't Panda-visible?  Also, is it compatible with both pre- and post-glr?
17:35 ab5tract jercos: including the broken grammar?
17:36 tony-o .tell japhb because the META.json was broken
17:36 yoleaux tony-o: I'll pass your message to japhb.
17:37 leont Not Panda-visible? I thought Panda was using JSON::Faster
17:38 ab5tract dha: I like the `state` docs very much
17:38 dha thanks!
17:39 ab5tract leont: JSON::Fast, apparently
17:39 dalek roast: eaaec7a | (Stefan Seifert)++ | S16-filehandles/io.t:
17:39 dalek roast: Test if .lines() really is lazy (RT #112716)
17:39 dalek roast: review: https://github.com/perl6/roast/commit/eaaec7af0a
17:39 dha Ok, I'm committing
17:39 jercos ab5tract: indeed.
17:39 ab5tract dha: I feel a bit like there could be a bit of discussion about `perl6 -ne`
17:40 ab5tract for instance, you state that '$' is stateful for subroutines, but  there is no subroutine definition in that example
17:40 dha Hm. patches welcome. to be honest, everytime I ask something about C<$> I get a little more confused. :-)
17:40 ab5tract s/you state/you mention/; # unintended pun
17:41 dha Ha! ;-)
17:41 ab5tract dha: Yeah, not a blocker for immediate pushing, that's for sure.
17:41 dha ok. I'll toss it in, and we can add later if necessary.
17:41 ab5tract I finally learned why one would choose to use $ vs $_
17:41 ab5tract :)
17:42 domidumont joined #perl6
17:42 leont Just made the mistake of looking at the php section of the same site -_-
17:44 muraiki joined #perl6
17:45 dalek doc: 87b2b50 | (David H. Adler)++ | lib/Language/variables.pod:
17:45 dalek doc: Added doc for C<state> to lib/Language/variables.pod
17:45 dalek doc: review: https://github.com/perl6/doc/commit/87b2b50991
17:45 dha Ta. And also, da.
17:52 spider-mario joined #perl6
17:52 masak |Tux|, [Coke]: thanks. that's what I suspected.
17:53 masak I'm planning to reply to them, very politely, that I don't like their email, their site, or their course.
17:53 nine m: 1 X 1 X 1 X 1
17:53 camelia rakudo-moar 57a7f6: OUTPUT«Method 'pull-one' not found for invocant of class 'List'␤  in block <unit> at /tmp/gGFH4ZNHOt:1␤␤»
17:53 nine oooops
17:54 nine m: 1 X 1 X 1
17:54 camelia rakudo-moar 57a7f6: ( no output )
17:55 nine Is it possible that we don't have any spec test for n-dimentional X with n > 3?
17:55 jnthn Apparently :)
17:55 jnthn .u �
17:55 yoleaux U+FFFD REPLACEMENT CHARACTER [So] (�)
17:55 flussence m: say 1 ZXZZX 1
17:55 camelia rakudo-moar 57a7f6: OUTPUT«((((((1 1))))))␤»
17:55 ab5tract :O
17:56 nine what the?
17:56 flussence b: say 1 ZXZZX 1 # wonder if this still works...
17:56 flussence guess not :)
17:57 * grondilu reads S07, learns about prefiw:<|> and is quite happy about it
17:57 flussence (that used to return a flat [1, 1] pre-glr... and have exponential runtime pre-nom)
17:57 * grondilu was a bit concerned about the verbosity of adding flat everywhere after GLR
17:59 grondilu m: .say for 1, 2, |map &cos, ^10;
17:59 camelia rakudo-moar 57a7f6: OUTPUT«1␤2␤1␤0.54030230586814␤-0.416146836547​142␤-0.989992496600445␤-0.653643620863612␤0.2​83662185463226␤0.960170286650366␤0.7539022543​43305␤-0.145500033808614␤-0.911130261884677␤»
17:59 grondilu that looks cool
17:59 domidumont joined #perl6
18:00 ssqq joined #perl6
18:00 grondilu however the example in S07 suggest to put | inside the closure given to map.  Not sure if it matters that much.
18:01 TimToady that's only if map is returning more than one thing at a time
18:02 jnthn m: .say for 1, 2, |map { ($++, $_) }, <a b c d>
18:02 camelia rakudo-moar 57a7f6: OUTPUT«1␤2␤(0 a)␤(1 b)␤(2 c)␤(3 d)␤»
18:02 jnthn m: .say for 1, 2, |map { |($++, $_) }, <a b c d>
18:02 camelia rakudo-moar 57a7f6: OUTPUT«1␤2␤0␤a␤1␤b␤2␤c␤3␤d␤»
18:02 jnthn Vive la difference
18:02 jnthn Or however French works
18:02 vendethiel différence :)
18:02 TimToady .oO(those French, they always have to be different...)
18:03 jnthn That's acute correction... :P
18:03 TimToady mark his words
18:03 vendethiel *g*
18:04 dalek specs: 3373e72 | (Lucien Grondin)++ | S07-lists.pod:
18:04 dalek specs: fix typo
18:04 dalek specs: review: https://github.com/perl6/specs/commit/3373e7261a
18:05 nine Why do I always get suspicious when my first attempt at fixing seems to work?
18:06 kjs__ joined #perl6
18:06 dha I'm now glad I put all those TODOs into the docs. we seem to have cleared 5 of them.
18:07 patrickz joined #perl6
18:08 nine RT #114918 contains a benchmark that apparently took 146 seconds in 2012. It now completes in 8 seconds on my machine.
18:11 jnthn Much wow :)
18:11 jnthn m: say 8/146
18:11 camelia rakudo-moar 57a7f6: OUTPUT«0.054795␤»
18:11 flussence nine: I get suspicious sometimes too... things seem to work first try in Perl 6 way more than I'm used to :D
18:12 tokuhiro_ joined #perl6
18:15 skids I used to get a rush when something worked first try, thinking "I'm starting to finally get good at this."  With Perl 6 it's "don't get cocky, It's just because that language is smarter than you"
18:15 pippo joined #perl6
18:15 pippo o/ #perl6
18:16 grondilu skids: tell me about it :  http://www.perlmonks.org/index.pl/?node_id=1004081
18:16 pippo m: say grep-index(<a b c d>, /a/);
18:16 camelia rakudo-moar 57a7f6: OUTPUT«(0)␤»
18:16 pippo m: say grep-index(<a b c d>, /b/);
18:16 camelia rakudo-moar 57a7f6: OUTPUT«(0)␤»
18:16 pippo m: say grep-index(<a b c d>, /c/);
18:16 camelia rakudo-moar 57a7f6: OUTPUT«(0)␤»
18:16 pippo m: say grep-index(<a b c d>, 'c');
18:16 camelia rakudo-moar 57a7f6: OUTPUT«(0)␤»
18:17 pippo m: say grep-index(<a b c d>, 'c')[^10];
18:17 camelia rakudo-moar 57a7f6: OUTPUT«(0)␤»
18:18 pippo my @a = <a b c d>; say grep-index(@a, /c/);
18:18 pippo m: my @a = <a b c d>; say grep-index(@a, /c/);
18:18 camelia rakudo-moar 57a7f6: OUTPUT«()␤»
18:18 cognominal mock the French but fruity american "think different ™ "
18:18 pippo m: my @a = <a b c d>; say grep-index(|@a, /c/);
18:18 camelia rakudo-moar 57a7f6: OUTPUT«Regex object coerced to string (please use .gist or .perl to do that)  in block <unit> at /tmp/cFYZwuNkjc:1␤()␤»
18:18 skids pippo: GLR has not gotten around to figuring out what sub forms flatten yet.
18:19 skids m: say <a b c d>.grep-index(/c/)
18:19 camelia rakudo-moar 57a7f6: OUTPUT«(2)␤»
18:19 pippo skids: Thank you very much!
18:19 lizmat joined #perl6
18:19 yqt joined #perl6
18:21 FROGGS joined #perl6
18:22 TimToady m: say grep-index(/a/, <a b c d>)
18:22 camelia rakudo-moar 57a7f6: OUTPUT«(0)␤»
18:22 TimToady m: say grep-index(/b/, <a b c d>)
18:22 camelia rakudo-moar 57a7f6: OUTPUT«(1)␤»
18:23 TimToady helps to have the args in the right order too
18:23 TimToady but yeah, we need to audit all the * slurpies to see which ones still make sense
18:23 tokuhiro_ joined #perl6
18:24 TimToady m: [max] rand xx 65536
18:24 camelia rakudo-moar 57a7f6: OUTPUT«Too many arguments in flattening array.␤  in block <unit> at /tmp/n4wjZmA55x:1␤␤»
18:25 TimToady related to that problem too
18:25 skids IIRC grep-index got changed but none of its relatives did, for some reason.
18:25 TimToady I changed a bunch of them to **, and things blew up real fast
18:27 TimToady but we should probably establing a one-arg slurpy before deciding on those, so we don't keep repeating the one-arg boilerplate
18:27 skids https://gist.github.com/skids/4f6ff2e1c1e3b6855773 # old gist that got me most of the way there on things other than map()
18:27 dalek roast: 6bda03d | (Stefan Seifert)++ | S03-metaops/cross.t:
18:27 dalek roast: Test X with more than 3 dimensions and with lazy secondaries
18:27 dalek roast: review: https://github.com/perl6/roast/commit/6bda03d24c
18:27 dalek rakudo/nom: 57340b4 | (Stefan Seifert)++ | src/core/List.pm:
18:27 dalek rakudo/nom: Fix X with more than 3 dimensions
18:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/57340b4e9a
18:27 dalek rakudo/nom: 56634c5 | (Stefan Seifert)++ | src/core/List.pm:
18:27 dalek rakudo/nom: Fix X with lazy second argument
18:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/56634c5544
18:28 TimToady after thinking about that all weekend off and on, I've been leaning toward using *|args for one-arg binding
18:29 pippo TimToady: Yes it helps. TY.
18:31 skids Would there also be a "one-arg-plus-array-slurpy"?  Or just stick with two candidates?
18:32 TimToady don't understand the question...
18:33 timotimo o/
18:33 timotimo jnthn: you got the "10x as long as before glr" to "1/4th of 10x as long"? so basically "2.5x as long"?
18:33 skids I'm assuming *|args would do the checks and convert to (a,) if needed, but you'd still need to nextwith into your **@ candidate?
18:34 TimToady *|args would replece **@args
18:34 TimToady *place
18:34 skids Ah.  Ok.  It didn't look arrayish is all.
18:35 TimToady that's the non-caching form, we'd also maybe allow *|@args to cache it
18:37 nine m: constant @t = [\+] (1..5); say ((0,|@t) Z^.. @t).perl;
18:37 camelia rakudo-moar 57a7f6: OUTPUT«(0^..1, 1^..3, 3^..6, 6^..10, 10^..15).Seq␤»
18:37 nine TimToady: is this correct? ^^^
18:38 lizmat good *, #perl6!
18:38 yoleaux 15:47Z <FROGGS> lizmat: I've merged the cu_load branch, we should perhaps focus now on getting precomp working again
18:38 lizmat FROGGS: will do
18:39 skids TimToady: that makes sense.
18:40 dha hi lizmat
18:40 [Coke] TimToady: are you proposing that go in the september release?
18:40 lizmat TimToady++   # *|args to automatically make 1 arg rule part of the language
18:41 lizmat dha o/
18:41 moritz m: constant @t = [\+] (0..5); say @t Z^.. @t[1..*]).perl;
18:41 camelia rakudo-moar 57a7f6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XiNTOQkbMF␤Unexpected closing bracket␤at /tmp/XiNTOQkbMF:1␤------> 3t @t = [\+] (0..5); say @t Z^.. @t[1..*]7⏏5).perl;␤»
18:41 moritz m: constant @t = [\+] (0..5); say (@t Z^.. @t[1..*]).perl;
18:41 camelia rakudo-moar 57a7f6: OUTPUT«(0^..1, 1^..3, 3^..6, 6^..10, 10^..15).Seq␤»
18:42 moritz nine: both look correct to me
18:42 nine moritz: ok, then that's another ticket we can close :)
18:43 aindilis joined #perl6
18:44 dha Oh, I should take C<state> out of WANTED
18:44 * lizmat left a comment with https://gist.github.com/dha/8009c28d7bf2d1ca8875
18:44 * moritz broke twitter
18:44 dha ah.
18:44 TimToady [Coke]: yes, but won't break anything
18:45 smls joined #perl6
18:45 dha My understanding about the scope of C<state> wrt access, at least, is that it's' the same as C<my>
18:45 smls m: "Copy files and folders" ~~ /$<verb>=[\w+] " " [$<pred>=[\w+]]+ % " and "/;  say $<verb>;  say $<pred>;  say $<verb> X @<pred>;
18:45 camelia rakudo-moar 57a7f6: OUTPUT«「Copy」␤[「files」 「folders」]␤()␤»
18:45 smls ^^ weird issue with X
18:45 TimToady skids: I mean, you'd use *| in the same spot you'd use **, not that it replaces it in the language
18:45 smls used to work pre-GLR
18:45 skids (Perl6... where you have reasons other than a language barrier to feel stupid about not understanding discreet mathemeticians.)
18:46 dha But it maintains the contents of the variable similarly to a global. But there may be some nuances that need explication.
18:46 skids TimToady: ack, of course.
18:46 smls m: say 4 X [5, 6]
18:46 camelia rakudo-moar 57a7f6: OUTPUT«((4 5) (4 6))␤»
18:47 dalek doc: a0163f7 | (David H. Adler)++ | WANTED:
18:47 dalek doc: removed C<state> from WANTED
18:47 dalek doc: review: https://github.com/perl6/doc/commit/a0163f75d7
18:47 TimToady dha: more like it's an implict 'my' in the outer lexical scope
18:48 smls i.e. the X metaop works fine when called as  Int X Array-of-Int,  but produces an empty list when called as  Match X Array-of-Matches
18:48 smls that's a bug, right?
18:49 * timotimo is currently building a newer rakudo for the benchmark run
18:49 smls s/empty list/empty Seq/
18:49 dha TimToady - I will happily let people make that clear if they think it's necessary. :-)
18:50 dalek rakudo/nom: a9407ef | FROGGS++ | src/core/CompUnitRepo.pm:
18:50 dalek rakudo/nom: fix handling of filename in require/use, ugexe++
18:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a9407efa53
18:50 dalek rakudo/nom: 694cebf | FROGGS++ | src/core/CompUnitRepo.pm:
18:50 dalek rakudo/nom: include @*INC in error message of failed use/require
18:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/694cebf4dc
18:51 nine What do I do with a ticket like this? https://rt.perl.org/Public/​Bug/Display.html?id=117403 I've re-benchmarked and it seems fine.
18:51 smls Oh wait, it works if called as   ($<verb>,) X @<pred>;
18:51 khw joined #perl6
18:52 smls just a case of unexpected single-arg rule consequences then... :(
18:52 nine smls: a Match is Capture. Capture.list returns () if it doesn't contain positionals.
18:53 smls yeah, I see that now
18:53 smls It's just that $<verb> looks very much like an item
18:53 smls and pre-GLR, X treated it that way
18:55 * masak sent a long email back to guru99 explaining why they're not getting a link
18:55 moritz did I miss some drama on p6u?
18:55 timotimo oh?
18:56 masak no, I just got some semi-directed spam from them.
18:56 moritz timotimo: I just guessed what masak++'s comment might be about
18:56 raiph joined #perl6
18:56 masak (and so did |Tux| and [Coke], it seems)
18:58 telex joined #perl6
18:58 [Coke] masak: turns out that was linked in spam that contained guru99 links.
18:58 kjs__ joined #perl6
18:59 masak [Coke]: what was linked in spam that contained guru99 links?
18:59 moritz nine: close it
19:00 nine moritz: done
19:01 cdc m: say ++$ for ^2
19:01 camelia rakudo-moar 56634c: OUTPUT«1␤2␤»
19:01 cdc m: say ++$; say ++$
19:01 camelia rakudo-moar 56634c: OUTPUT«1␤1␤»
19:01 moritz nine++ # ten now :-)
19:01 masak moritz: here's his email and my reply. https://gist.github.com/masak/d967a1749a44f85e6d29
19:01 masak I tried to stay polite, but still get the point across that his course is very, very bad.
19:02 nine There are now 5 open tickets tagged [GLR]
19:02 cdc Hello #perl6, I don't understand why «m: say ++$; say ++$» doesn't print «m: 1␤2␤».  Please, could you help?
19:03 * [Coke] sees +is 1/128, (1/128).perl.EVAL, '(1/128).perl.EVAL round trips with sufficient accuracy';
19:03 [Coke] and wonders, isn't there an is-idemp-mumble function?
19:03 [Coke] cdc: state variables need a sub.
19:03 [Coke] bare $ is implicitly a state var.
19:04 [Coke] m: my $a; say ++$a; say ++$a;
19:04 camelia rakudo-moar 56634c: OUTPUT«1␤2␤»
19:04 masak I don't think state variables need a sub.
19:04 telex joined #perl6
19:04 masak m: say ++$ for ^5
19:04 camelia rakudo-moar 56634c: OUTPUT«1␤2␤3␤4␤5␤»
19:04 TimToady anonymous variables are always considered unique
19:04 masak m: say ++(state $) for ^5
19:05 camelia rakudo-moar 56634c: OUTPUT«1␤2␤3␤4␤5␤»
19:05 masak look ma, no sub
19:05 [Coke] masak, TimToady: I stand corrected.
19:05 cdc m: { say ++$; say ++$ } for ^5
19:05 camelia rakudo-moar 56634c: OUTPUT«1␤1␤2␤2␤3␤3␤4␤4␤5␤5␤»
19:05 masak m: say ++$ andthen say ++$ for ^5
19:05 camelia rakudo-moar 56634c: OUTPUT«1␤1␤2␤2␤3␤3␤4␤4␤5␤5␤»
19:05 lizmat cdc: that creates 2 unnamed state variables
19:06 cdc ohh
19:06 TimToady cdc: that's just like saying ++(state $foo), ++(state $bar)
19:06 * [Coke] wonders where his brain damage there came from. huh.
19:06 telex joined #perl6
19:06 lizmat m: my $c = { state $a; $a++ }; say $c() for ^10   # don't need a sub
19:06 camelia rakudo-moar 56634c: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
19:06 * [Coke] blames $dayjob, a convenient scapegoat.
19:06 cdc ok, thanks! :)
19:06 lizmat [Coke]: scapegoat accepted  :-)
19:06 masak I find there are often a lot of confusion around the term "anonymous".
19:07 masak for example, people tend to interchangeably use "lambda", "closure", and "anonymous function".
19:08 skids masak: there's probably a name for that. :-)
19:08 timotimo lomsure
19:08 cdc dha: maybe this point http://irclog.perlgeek.de/p​erl6/2015-09-14#i_11216761 should be added to your gist.
19:08 masak and really, anonymous functions are rather unromantic when it comes down to it. they are functions that weren't given a name. a-nonymous, see?
19:08 timotimo masak: more like a non-ymous sub?
19:08 masak it's funny that we are so attached to the idea that functions must have a name, at least by default.
19:08 moritz and they don't even need to be closures, in the stricter sense
19:09 masak we don't go all crazy about anonymous arrays or anonymous integer literals.
19:09 timotimo aye, you can have a language that doesn't do closure semantics properly
19:09 timotimo have fun with that! :)
19:09 dha Hm.
19:09 moritz just imagine you growing up, and your parents didn't even bother to give you a name
19:09 masak timotimo: you mean like Rakudo in 2008? :P
19:09 * cdc .oO( where the streets have no name )
19:09 moritz we should care more for our subs.
19:10 timotimo visit_2d_indices_cross                                   57633/s                    26543/s                     5370/s
19:10 timotimo 1.0x                       2.2x                      10.7x
19:10 timotimo ugh, so unreadable
19:10 dalek rakudo/nom: 65d33be | lizmat++ | src/core/IO/Path.pm:
19:10 dalek rakudo/nom: Make "foo".IO.lines/words($limit) work
19:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/65d33be345
19:10 masak just some anonymous statistics :P
19:10 dha Actually, I think the last example I give does use C<$> outside a sub. So I could certainly mention that. Thanks.
19:11 jnthn timotimo: What do the numnbers mean? :)
19:11 timotimo the leftmost is 2015.07, the one in the middle is very recent, the one to the right is from earlier today
19:11 raiph dha: commented on your state var gist
19:12 pink_mist timotimo: so it's middle-endian sorted? :P
19:12 timotimo you may like this one:
19:12 raiph dha: ah, looks like you're covering the same ground here on #perl6
19:12 timotimo while_push_join                                          81485/s                   447675/s                   435981/s
19:12 timotimo 5.5x                       1.0x                       1.0x
19:12 timotimo pink_mist: indeed!
19:12 khw joined #perl6
19:13 jnthn timotimo: ooh, 5.5x faster than pre-GLR, iiuc?
19:13 timotimo no
19:13 timotimo oh
19:13 timotimo yes, you are right
19:13 timotimo i'd have written "used to take 5.5x longer"
19:14 timotimo on the other hand, almost all "for_" microbenchmarks are between 2.5x and 8.5x slower now compared to before GLR
19:14 telex joined #perl6
19:14 timotimo most probably it's not doing the for-to-loop optimization correctly
19:15 jnthn If they use ranges, then yeah, probably that
19:15 timotimo uh
19:15 timotimo the ast for that looks really weird
19:16 timotimo extremely different compared to what it used to be in any case
19:16 timotimo creates a for-list_* local var and binds to that
19:17 timotimo https://github.com/japhb/perl6-bench​/blob/master/microbenchmarks.pl#L143  -  this one has slowed down by a factor of 2.2
19:17 nine timotimo: the for-list was my changed. Needed to make for $item loop only once while $item.map loops over $item's elements
19:17 timotimo but loop_empty and postwhile_nil have both improved by 4.8x and 3.8x respectively
19:17 timotimo ah
19:18 dwarring joined #perl6
19:18 timotimo nine: now all i've got to do is teach the optimizer about this new layout again :P
19:18 jnthn https://rt.perl.org/Ticket/Display.html?id=125978 seems stable locally
19:18 jnthn Perhaps thanks to my invocation race fixes
19:19 nine timotimo: https://github.com/rakudo/rakudo/commit/7aee0acfd
19:19 jnthn cdc: Maybe you could test ^^ on latest
19:19 lizmat jnthn: I haven't seen any async related test fails in the last 3 spectest runs that I did (after pulling about an hour ago)
19:19 jnthn lizmat: nice :)
19:19 timotimo nine: the problem is that the qast tree doesn't have a link upwards, so i'll probably have to special case vars called for-list_.* so that they get kept around for a bit
19:20 timotimo jnthn: seems like that patch made a whole lot of things a whole lot better. i'm pretty glad i pointed you at the code-gen quirk, in that case :D
19:20 dha raiph -  yes, some of your concerns are being discussed. :-)
19:21 telex joined #perl6
19:21 jnthn timotimo: Yes :D
19:21 cdc jnthn: OK, I'll give it a try. Thanks!
19:22 masak jnthn: you fixed the closure thing? good going!
19:22 masak jnthn++
19:25 jnthn https://rt.perl.org/Ticket/Display.html?id=125705 may also be better now, but I'm meant to be writing slides, not looking at RT :)
19:25 tokuhiro_ joined #perl6
19:26 braintwist joined #perl6
19:27 lizmat looking at IO::Handle.lines, and "nqp::p6box_s(nqp::readlinefh($!PIO)).chomp"
19:27 lizmat this is what pull-one returns.  I wonder whether the boxing is necessary...
19:28 khw joined #perl6
19:28 timotimo to call .chomp on it, surely it'd be necessary?
19:28 FROGGS to call a method, yes, I think so
19:28 lizmat ah, ok
19:28 braintwist hi
19:28 timotimo nine: do you have a better idea, ooc?
19:28 FROGGS hi braintwist
19:28 lizmat but the case without chomp also does a box
19:28 braintwist I was wondering about where I can read about variables built-in in perl6
19:28 FROGGS lizmat: and that boxed thing will be returned?
19:29 braintwist such as $*DISTRO and $*USER
19:29 jnthn lizmat: If you don't put it in then the . will force it anyway
19:29 lizmat yeah, by pull-one
19:29 braintwist to see what options they have
19:29 nine This is a curious one:
19:29 lizmat now, if it is not cached, it doesn't need to be boxed, I would think
19:29 nine m: [("a", "b"), ("a", "b")] >>,<< |<a a>;
19:29 braintwist like $*DISTRO.name
19:29 camelia rakudo-moar 694ceb: OUTPUT«Lists on either side of non-dwimmy hyperop of infix:<,> are not of the same length␤left: 2 elements, right: 1 elements␤  in block <unit> at /tmp/imbqG9AwZD:1␤␤»
19:29 nine Is this really a bug? ^^^
19:29 telex joined #perl6
19:30 nine Seems so on the first glance, but HYPER is actually recursive. So it ends up calling HYPER(infix:<,>, ("a", "b"), "a") which then fails
19:30 timotimo oh, that's curious
19:31 timotimo in that case we may want to give a more helpful error message
19:31 timotimo i.e. point out that we're recursively into the hyper
19:31 timotimo rather than at the outermost level
19:31 timotimo perhaps it'd even be enough to say "non-dwimmy recursive hyperop"?
19:32 timotimo though mentioning its recursiveness like that seems to point out there's non-recursive hyperops, too
19:32 timotimo which isn't false
19:32 FROGGS braintwist: http://design.perl6.org/S28.html​#SPECIAL_VARIABLES_MORE_IN_DEPTH
19:33 braintwist FROGGS: thanks I will look at that :D
19:34 braintwist FROGGS: is there a way to see whats "fields" are on the different variables ?
19:34 lizmat jnthn: but I was thinking that the iterator need not return boxed strings at all
19:35 jnthn lizmat: True. :)
19:35 timotimo braintwist: you can grab methods via .^methods
19:35 lizmat especially in a situation with for ....lines -> $line { .... }
19:35 jnthn Though note it's .chomp that forces the boxing here
19:35 braintwist timotimo: I am a little new :D
19:35 timotimo don't worry
19:35 jnthn lizmat: I've been podering adding an nqp op that gives you back something already chump
19:35 timotimo m: say "hello".^methods
19:35 camelia rakudo-moar 694ceb: OUTPUT«(BUILD Int Num chomp chop pred succ match ords samecase samespace trim-leading trim-trailing trim encode NFC NFD NFKC NFKD wordcase trans indent codes chars uc lc tc tclc flip ord WHY WHICH Bool Str Stringy DUMP ACCEPTS Numeric gist perl comb subst-mutate …»
19:36 lizmat jnthn: that's just because we don't have an nqp::chomp  :-(
19:36 jnthn lizmat: Nor should we
19:36 lizmat because ?
19:36 jnthn lizmat: We should have an I/O level op so it can build the string correct in the first place *and* do so with the same line separator configured on the file handle.
19:37 telex joined #perl6
19:37 jnthn lizmat: We surely have a bug at the moment 'cus we .chomp off newlines unconditionally, even if the separator is something else, no?
19:37 ][Sno][ joined #perl6
19:37 lizmat afaik, yes...
19:38 jnthn But if we get that bit right then we can nqp::readlinechompfh($!PIO)
19:38 jnthn And we done
19:39 lizmat yup
19:39 dha Ok, have updated the C<state> docs to address the issues noted. Anything else? https://gist.github.com/dha/8009c28d7bf2d1ca8875
19:40 jdv79 zostay: IO::Socket::INET seems a bit too specific
19:40 jdv79 .tell zostay IO::Socket::INET seems a bit too specific
19:40 yoleaux jdv79: I'll pass your message to zostay.
19:40 ab5tract dha: it might be more fun to do ++$ and $++
19:41 rindolf joined #perl6
19:41 ab5tract but these are things I can also push changes to
19:41 dha Yes, yes it might. :-)
19:42 dha I'm actually already ready to push these changes if no one has any further comments.
19:42 FROGGS m: say $*DISTRO.^methods; say $*DISTRO.^attributes».name
19:42 camelia rakudo-moar 694ceb: OUTPUT«(BUILD cur-sep Str gist <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon>)␤($!release $!is-win $!path-sep $!name $!auth $!version $!signature $!desc)␤»
19:42 FROGGS braintwist: ^^
19:42 [Coke] t/spec/S32-io/pipe.t - Failed tests:  11-13
19:42 ab5tract dha: do it!
19:42 FROGGS [Coke]: yes, known
19:42 flussence really stupid way to get a list of all predefined names in perl6: run `script out.script`; start a repl; hold Tab until it cycles back to "A"; exit repl and shell; `strings out.script`
19:42 timotimo haha
19:42 timotimo does it give you dynamic variables, too?
19:42 [Coke] FROGGS: then we should fudge them and open a ticket, non?
19:42 timotimo i don't know if there's a way to introspect dynamic variables
19:42 FROGGS [Coke]: I dunno how to fix it yet, and what the result is that we want
19:43 flussence timotimo: looks like it doesn't :(
19:43 FROGGS [Coke]: I'd prefer a fix tbh
19:43 dalek doc: 5ef883b | (David H. Adler)++ | lib/Language/variables.pod:
19:43 dalek doc: Revised C<state> docs to reflect #perl6 comments
19:43 dalek doc: review: https://github.com/perl6/doc/commit/5ef883b7d0
19:43 raiph dha: it seems you've only addressed 1 of the 3 points I made in my earlier comment to your gist
19:43 lizmat commute to room&
19:43 dha That is possible. :-/
19:44 [Coke] if they're still broke the next time I check, I'll ticket and fudge them.
19:44 dha Actually, I think I got two of them. I may be wrong, however.
19:45 raiph dha++ # for awesome combination of persistence, humor, diligence, patience, at just the right time (run up to 6.0)
19:45 timotimo nine: it looks like we're generating a Want for for loops that has the exact same subtree in both the "want value" and "want no value" cases
19:46 telex joined #perl6
19:46 nine timotimo: do not assume that I knew what I did there.
19:46 timotimo :D
19:46 timotimo can you fix it and see if it breaks things?
19:46 dalek rakudo/nom: 99ee82c | (Stefan Seifert)++ | src/core/ (2 files):
19:46 dalek rakudo/nom: Point out HYPER's recursive behavior in NonDWIM message if relevant
19:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/99ee82c5af
19:46 FROGGS nine: you can't use that excuse any longer :o)
19:46 dha "I go where I will and I do what I can" :-)
19:46 masak dha++ # documenting
19:46 dha I need to see that movie again.
19:47 timotimo nine: that makes hypering a tiny bit more expensive for the common case; perhaps you could instead when throwing the error check the caller's frame name if it's HYPER?
19:48 lizmat joined #perl6
19:49 raiph dha: I'm pretty sure a dummy placeholder in a list is not a state variable and it seems odd to me to suggest so
19:49 raiph dha: hmm, but maybe it is, hmm
19:49 dha Right. I'm trying to remember where I got that from.
19:49 timotimo you mean in (1, 2, $, 5)?
19:49 timotimo m: say (1, 2, $, 5)[2]
19:49 camelia rakudo-moar 694ceb: OUTPUT«(Any)␤»
19:49 dha timotimo -  I think that's what we're talking about.
19:49 timotimo m: say (1, 2, $, 5)[2].VAR.name
19:49 camelia rakudo-moar 694ceb: OUTPUT«$␤»
19:50 timotimo seems to be a state variable there
19:50 timotimo but it may make a difference if the list is used for assignment
19:50 dha so, should I just remove the "dummy variable" comment?
19:50 timotimo i believe you can use a * instead of a $ for such a case
19:51 dha I think it's just confusing in any case. I'll remove.
19:52 dalek doc: d72d26c | (David H. Adler)++ | lib/Language/variables.pod:
19:52 dalek doc: Tweaks to C<state> docs
19:52 dalek doc: review: https://github.com/perl6/doc/commit/d72d26c94b
19:52 dha Ok, I'm giving up on editing the gist over and over again. Feel free to look at the entry in the doc directory to see if my changes are acceptable.
19:53 braintwist I have a question .^methods is nice, but what does the ^ mean ?
19:54 timotimo braintwist: "call on the meta-object"
19:54 timotimo the ^ elevates your method onto the meta-level, so to speak
19:54 timotimo your method call*
19:54 braintwist timotimo: thanks.
19:54 flussence $a.^foo is a shortcut for $a.HOW.foo($a), where .HOW is the meta-object stuff attached to whatever you're looking at:
19:55 flussence m: say Int.HOW.^name
19:55 [Coke] search is broken on docs.perl6.org
19:55 camelia rakudo-moar 65d33b: OUTPUT«Perl6::Metamodel::ClassHOW␤»
19:55 braintwist it seems logical, not that I had thought about it
19:55 dha [Coke] -  it's always broken. :-|
19:55 [Coke] looks like source is an array of objects that is NOT comma separated.
19:55 [Coke] dha: it's SUPER broken relative to previous broken.
19:56 * [Coke] sees if he has commit bits on this.
19:56 dha YAY!
19:56 dha you should. I think *I* do.
19:57 Peter_R joined #perl6
19:57 FROGGS braintwist: we try to get the semantics in a shape where you dont have to think about it all the time
19:57 FROGGS that's why the look of operators and such matter so much
19:57 [Coke] oh, right, this is slow.
19:57 braintwist FROGGS: yes consistency is a good thing,
19:58 timotimo who wants to look at this nugget: compared to split_string_regex (which has slowed down to 1.4x since GLR), split_string_constant has become a whooping 7x slower!
19:58 braintwist ^ is also used for exponentiation so to "raise" something seems natural :D
19:58 timotimo and any_equals has become 2.5x slower
19:59 braintwist ^^ although I dont know about perl6 but in other languages.
19:59 FROGGS braintwist: we use ** here
19:59 timotimo in perl6 it's actually **
19:59 telex joined #perl6
19:59 rindolf joined #perl6
20:00 FROGGS braintwist: though you can construct ranges by doing: ^10
20:00 TimToady m: say 42 ^ "red"
20:00 camelia rakudo-moar 65d33b: OUTPUT«one(42, red)␤»
20:00 FROGGS m: say ^10
20:00 camelia rakudo-moar 65d33b: OUTPUT«0..^10␤»
20:00 FROGGS m: say (^10).list
20:00 camelia rakudo-moar 65d33b: OUTPUT«(0 1 2 3 4 5 6 7 8 9)␤»
20:00 FROGGS which means 'up to'
20:00 FROGGS (but not including)
20:00 timotimo hm
20:00 timotimo ^ kind of looks like a fork where either the left or right path can be chosen
20:01 timotimo so it makes a surprising amount of sense to construct a "one" junction from that
20:01 FROGGS clearly foo.^bar should call up to but not including the meta object :P
20:01 timotimo FROGGS: all methods that come lexicographically before "bar"
20:01 FROGGS hehe
20:01 braintwist FROGGS: python uses ** as well I think
20:01 TimToady even Fortran uses **
20:02 _mg_ joined #perl6
20:02 braintwist I think their mnemonic is that it is as multiply twice...
20:02 braintwist kind of makes sense.
20:02 telex joined #perl6
20:02 FROGGS that reminds me that I should put Fortran NativeCall support on my 5 year agenda :D
20:02 masak they've been talking about introducing infix:<**> in JavaScript ES7 as well.
20:03 masak but last I heard, they had precedence troubles.
20:03 FROGGS masak: I guess that are the consequences when your grammar isnt very strict
20:03 masak m: my $x = 2; say -$x ** 2
20:03 camelia rakudo-moar 65d33b: OUTPUT«-4␤»
20:04 masak that one is always a bit problematic, no matter how you slice it.
20:04 FROGGS true
20:04 FROGGS same with ^10
20:04 FROGGS and methods calls
20:04 * [Coke] installs a version of perl6 post-glr and sees if htmlify gets magically faster.
20:05 masak well, people have inconsistent expectations about pre- and postfixes and their precedence
20:05 timotimo we could go the non-associating operator route and just throw an exception if we ever see either way without parenthesis
20:05 masak and aren't usually aware until several small snippets are put in front of them, and they have to come up with a consistent behavior
20:05 timotimo ah
20:05 masak for example, I really like how -$n.abs works
20:05 timotimo but it's so easy!
20:05 timotimo for example:
20:05 kjs__ joined #perl6
20:06 timotimo ^10.pick
20:06 timotimo it's obvious that you want to call the pick method on an array-y thing
20:06 timotimo ^10.rand
20:06 timotimo it's obvious that you want to call the rand method on a number-y thing
20:06 TimToady m: ^10.pick
20:06 camelia rakudo-moar 65d33b: OUTPUT«Potential difficulties:␤    Precedence of ^ is looser than method call; please parenthesize␤    at /tmp/lBVrn0ZSL0:1␤    ------> 3^107⏏5.pick␤WARNINGS:␤Useless use of "^" in expression "^10.pick" in sink context (line 1)␤»
20:06 dalek rakudo/nom: 87a74dc | (Stefan Seifert)++ | src/core/metaops.pm:
20:06 dalek rakudo/nom: Get rid of HYPER runtime cost for recursion hint
20:06 dalek rakudo/nom:
20:06 dalek rakudo/nom: Suggested by timotimo++
20:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/87a74dcb33
20:06 masak timotimo: yes, good example.
20:06 timotimo nine: cool, thanks!
20:09 brrt joined #perl6
20:10 AlexDaniel joined #perl6
20:13 timotimo i've added two microbenchmarks that remove the flat(...) around the X operator and instead of -> $i, $j they to -> ($i, $j)
20:13 timotimo and then we'll see how good that works
20:13 espadrine joined #perl6
20:14 PerlJam joined #perl6
20:18 timotimo nine: as ven comments, perhaps the use of callframe is problematic there; have you tried timing both implementations?
20:19 rurban joined #perl6
20:20 Humbedooh joined #perl6
20:20 * [Coke] zzzzzzzzzzzzzz
20:20 Humbedooh joined #perl6
20:20 timotimo gnite coke :)
20:21 * [Coke] was waiting for htmlify to come back.
20:21 timotimo did it?
20:21 timotimo and did it do it faster than it used to?
20:21 [Coke] would anyone mind if I updated the URLS so it didn't require being in docroot to run?
20:21 [Coke] timotimo: no clue. it's unusably slow atm.
20:22 bronco_creek joined #perl6
20:23 pmurias joined #perl6
20:23 [Coke] I won't bother testing it pre GLR, will just make it faster.
20:24 nine timotimo: I have no idea about the callframe thing. I'm out of my depths there.
20:24 telex joined #perl6
20:25 timotimo right
20:25 nine timotimo: regarding the for Want: the code in Actions.nqp clearly generates two different subtrees. One calling .eager and one calling .sink. Somehow both branches end up calling .sink. However looking at the dump for "do for 1 {}" the eager reappears.
20:25 timotimo at least the optimizer part that does block inlining probably says "callframe? nope nope nope nope!"
20:25 bronco_creek I'm having trouble install modules with panda on the 2015.06 star release.  Always fails with "no such file or directory" when it gets to the test phase.  Any suggestions?
20:25 yoleaux 31 Aug 2015 21:46Z <japhb> bronco_creek: Years ago I came across a Santana album in which the liner notes consisted of a complex infographic of the changing band lineup, just so fans could get it straight.
20:26 * [Coke] opens https://github.com/perl6/doc/issues/125
20:28 FROGGS m: my num32 $n = 42.Num; say $n # uff, I forgot that this is still with us
20:28 camelia rakudo-moar 87a74d: OUTPUT«0␤»
20:28 FROGGS bronco_creek: it perhaps makes more sense to build latest rakudo with panda via rakudobrew
20:29 FROGGS bronco_creek: and then install Task::Star
20:31 colomon joined #perl6
20:31 bronco_creek FROGGS: thx, I'll try that.  Do you know whether Task::Star will get me XML?
20:33 FROGGS bronco_creek: look: https://github.com/tadzik/Task​-Star/blob/master/META.info#L8
20:33 nine timotimo: the callframe version seems fix the ~ 5 % regression of the previous version
20:34 timotimo oh?
20:34 larion joined #perl6
20:34 nine So either callframe is not actually a problem, or our optimizer is not smart enough anyway to optimize HYPER as it is
20:38 [Coke] do we have the equivalent of "python -m SimpleHTTPServer" ?
20:38 timotimo hehehe
20:38 timotimo [Coke]: you mean "serve stuff from the local directory"?
20:38 timotimo i don't think we do
20:38 jnthn 'night, #perl6
20:38 timotimo gnite jnthn!
20:39 colomon o/
20:42 brrt good night jnthn :-)
20:44 psch the light are all wrong! /o\
20:44 psch and pushing more buttons isn't helping
20:45 [Coke] who is running the scripts to generate docs.perl6.org?
20:45 [Coke] (trying to figure out what version of perl6 is being used)
20:46 brrt moritz perhaps?
20:47 [Coke] pretty sure a glr change broke htmlify. testing a fix..
20:48 [Coke] (it's faster to run the moarvm spectests!)
20:49 nine [Coke]: didn't he report a htmlify speedup due to the glr yesterday?
20:49 timotimo well, are you on newest htmlify? perhaps things are still in a glr/ branch?
20:50 nine I certainly fixes Inline::Python's tests yesterday for htmlify on GLR
20:51 timotimo baumkuchenspitzen <3
20:52 FROGGS m: say &infix:<+>.candidates>>.gist
20:52 camelia rakudo-moar 87a74d: OUTPUT«No appropriate parametric role variant available for 'Rational'␤  in any specialize at gen/moar/m-Metamodel.nqp:2497␤  in any compose at gen/moar/m-Metamodel.nqp:2807␤  in any make_pun at gen/moar/m-Metamodel.nqp:1644␤  in any find_method at gen/mo…»
20:52 timotimo ah, interestengi
20:52 timotimo because Rational takes two type parameters
20:53 bronco_creek FROGGS: rakudobrew won't help me on Windows, I guess.  Also, it look like Task:Star will only get me XML:Writer. I have a script from a few months back that uses other features of XML.
20:53 FROGGS bronco_creek: ohh
20:53 timotimo oh
20:53 FROGGS :S
20:53 timotimo just last night someone visited who was porting rakudobrew to windows
20:54 timotimo https://github.com/patzim/rakudobrew
20:54 larion joined #perl6
20:54 [Coke] nine: it could be faster. it's still really slow.
20:55 FROGGS bronco_creek: it seems we are getting a release this Thursday... I can then create a star release and a windows msi this weekend or early next week
20:55 [Coke] FROGGS: I hopefully can manage that, aye.
20:55 FROGGS [Coke]: we'll be here to help
20:55 bronco_creek I'll have to find another approach untill we have a 6.0 msi.  New Year's eve?
20:56 timotimo whoa, a release?
20:56 bronco_creek FROGGS:  Oops, missed your last post.
20:56 timotimo was september meant to be the beta release?
20:57 [Coke] timotimo: just the normal september release
20:57 [Coke] TimToady can call it whatever he wants. :)
20:58 FROGGS [Coke] / timotimo: the release TimToady is talking about is roast, mind
20:59 timotimo ah, of course
20:59 [Coke] well, there's 2 releases - one is the spec, one is the compiler, sure. Anyway, I'm just doing a braindead compiler release this week.
21:00 FROGGS aye
21:00 jdv79 does perl6 have any locale support?
21:02 braintwist wow those built-in variables can access a lot of information, that is nice.
21:03 FROGGS gnight #perl6
21:03 [Coke] jdv79: for users to generate locale-specific data, or for the compiler to complain to the programmer in locale-specific ways?
21:04 [Coke] (I think no both ways)
21:07 jdv79 thanks
21:08 [Coke] perl6 htmlify.p6 --no-highlight --sparse=100 # dies with Method 'name' not found for invocant of class 'Any'
21:08 jdv79 just wondering about sorting german numerals - came up on #perl
21:08 dalek rakudo/nom: 2475abf | lizmat++ | src/core/Str.pm:
21:08 dalek rakudo/nom: Introduce internal CHOPCRLF sub
21:08 dalek rakudo/nom:
21:08 dalek rakudo/nom: Takes anything (presumably a native str) so we can chomp without a container.
21:08 dalek rakudo/nom: Temporary until we have nqp::readlinefhchomp().
21:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2475abfb57
21:08 dalek rakudo/nom: 1391588 | lizmat++ | src/core/IO/Handle.pm:
21:08 dalek rakudo/nom: Make IO::Handle.lines push unboxed strings
21:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1391588554
21:09 meisl joined #perl6
21:10 psch r: say BagHash.new(<a>) (&) <a b>
21:10 camelia rakudo-{moar,jvm} 87a74d: OUTPUT«bag(a)␤»
21:11 psch r: say BagHash.new(<a c>) (&) <a b>
21:11 camelia rakudo-{moar,jvm} 87a74d: OUTPUT«bag(a)␤»
21:11 psch r: my $kb = BagHash.new(<blood green>); say $kb ∩ <blue blood>
21:12 camelia rakudo-jvm 87a74d: OUTPUT«java.util.ConcurrentModificationException␤  in block <unit> at /tmp/tmpfile:1␤␤»
21:12 camelia ..rakudo-moar 87a74d: OUTPUT«bag(blood)␤»
21:12 psch r: my $kb = BagHash.new(<blood green>); say $kb (&) <blue blood>
21:12 camelia rakudo-moar 87a74d: OUTPUT«bag(blood)␤»
21:12 camelia ..rakudo-jvm 87a74d: OUTPUT«java.util.ConcurrentModificationException␤  in block <unit> at /tmp/tmpfile:1␤␤»
21:12 psch ...that just makes it worse!
21:12 psch why is the lengths of the items in the LHS bag relevant...
21:13 psch r: say BagHash.new(<blood green>) (&) <blue blood>
21:13 camelia rakudo-jvm 87a74d: OUTPUT«java.util.ConcurrentModificationException␤  in block <unit> at /tmp/tmpfile:1␤␤»
21:13 camelia ..rakudo-moar 87a74d: OUTPUT«bag(blood)␤»
21:13 psch r: say BagHash.new(<bloo green>) (&) <blue blood>
21:13 camelia rakudo-moar 87a74d: OUTPUT«bag()␤»
21:13 camelia ..rakudo-jvm 87a74d: OUTPUT«java.util.ConcurrentModificationException␤  in block <unit> at /tmp/tmpfile:1␤␤»
21:13 nine Good night, #perl6!
21:13 psch r: say BagHash.new(<bloo g>) (&) <blue bloo>
21:13 camelia rakudo-jvm 87a74d: OUTPUT«java.util.ConcurrentModificationException␤  in block <unit> at /tmp/tmpfile:1␤␤»
21:13 camelia ..rakudo-moar 87a74d: OUTPUT«bag(bloo)␤»
21:14 psch g'night nine o/
21:14 jdv79 lizmat: does CHOPCRLF differ from a chomp?
21:15 lizmat nope
21:15 lizmat but it is a sub and it takes an unboxed str
21:15 pippo left #perl6
21:19 larion joined #perl6
21:22 psch night #perl6
21:22 lizmat gnight psch
21:24 colomon joined #perl6
21:24 dalek rakudo/nom: 29cffa2 | lizmat++ | src/core/ (2 files):
21:24 dalek rakudo/nom: Revert previous 2 commits: no speed gain after all
21:24 dalek rakudo/nom:
21:24 dalek rakudo/nom: Not sure why, but probably the extra sub call in .chomp did it.
21:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/29cffa29af
21:26 tokuhiro_ joined #perl6
21:29 [Sno] joined #perl6
21:31 ab5tract .tell flussence re: the performance of Test::Corpus, I imagine a great deal of it is related to slurping a bunch of files
21:31 yoleaux ab5tract: I'll pass your message to flussence.
21:32 ab5tract .tell flussence but building a pipeline for doing concurrent processing would be very interesting as well
21:32 yoleaux ab5tract: I'll pass your message to flussence.
21:37 kjs__ joined #perl6
21:41 * [Coke] stares at some convoluted code in htmlify
21:41 * [Coke] gives up for now.
21:43 patrickz joined #perl6
21:44 patrickz .seen tadzik
21:44 yoleaux I saw tadzik 17:05Z in #perl6: <tadzik> nope
21:44 ugexe be careful with doing parallized testing via `>>.&test-method`. not everything can be tested out-of-order, so .map() lets you add an await if you want to turn off parallized testing
21:44 timotimo create_and_copy_2d_grid_cross_unpack                       --                       12241/s                     3417/s
21:44 timotimo FAIL                        1.0x                       3.6x
21:44 timotimo visit_2d_indices_cross_unpack                              --                       30576/s                     7392/s
21:44 timotimo FAIL                        1.0x                       4.1x
21:44 timotimo ^- this is the work of le jnthn + the suggestion of le nine
21:46 colomon is the last column the results of their work/suggestion?
21:46 timotimo no, it's - confusingly enough! - the one in the middle
21:47 timotimo but the x is a "lower is better" figure
21:47 timotimo and the column that says FAIL is just because before GLR, ^100 X ^100 -> ($i, $j) doesn't work
21:47 timotimo here's the columns for the respective non-unpack benchmarks:
21:48 timotimo 1.0x                       2.0x                       8.4x
21:48 timotimo 1.0x                       2.2x                      10.9x
21:52 tadzik patrickz: sup:)
21:52 meisl joined #perl6
21:52 meisl hello #perl6
21:52 yoleaux 22 Jul 2015 08:24Z <brrt> meisl: if you want to ask questions, i'm typically available between 07:00 UTC and 15:00 UTC :-)
21:52 yoleaux 26 Jul 2015 19:29Z <brrt> meisl: i have a (p5) initial implementation of aho-style tiling
21:52 yoleaux 26 Jul 2015 19:32Z <brrt> meisl: check out https://github.com/MoarVM/MoarVM/blob/eve​n-moar-jit/tools/tiler-table-generator.pl if you wish
21:52 patrickz Hey!
21:53 tadzik Hey hey
21:53 meisl oh-wow...
21:54 meisl never had such a nice welcome - and such an immediate one
21:54 patrickz tadzik: https://github.com/tadzik/rakudobr​ew/blob/master/bin/rakudobrew#L407 <- any reason for not using run('make install')?
21:55 patrickz *currently removing bugs from rakudobrew on windows...
21:55 tadzik patrickz: possibly historical reasons
21:55 patrickz ok, I'll replace it then.
21:55 tadzik I wouldn't be surprised if rakudobrew predated run() :P
21:55 tadzik Thanks!
21:56 patrickz So what do you think about keeping / removing commands?
21:58 meisl brrt: I assume I just saw some kind of automated message (?) Anyways, I *am* interested in Aho-style tiling, will have a look.
21:58 tadzik I don't mind removing them completely as long as they come with a proper deprecation notice
21:58 masak 'night, #perl6
21:58 patrickz Would you prefer removing them?
21:59 tadzik And I wouldn't worry about breaking existing things like travis, people should know better than to rely on master being what they think it is
21:59 tadzik 'night masak
22:00 tadzik patrickz: I'm a bit sentimental towards them, but they probably belong in git log and nowhere else :)
22:00 patrickz Well they match perlbrew commands pretty closely.
22:00 patrickz Which is A Good Thing.
22:01 tadzik I now wonder if it's not too problematic to be named rakudo*brew* but be compatible with pl*env*
22:01 tadzik Oh perlbrew too?
22:01 meisl anyone: +yoleaux seems to be a means to "send messages to someone in the future", st she sees it when they come back here - how do I do that?
22:01 patrickz It's basically reduced redundancy vs familiarity for perlbrew/plenv users.
22:01 tadzik Which I'm all for
22:02 patrickz The old ones match perlbrew
22:02 ab5tract meisl: use `.tell $nick`
22:02 patrickz The new ones plenv
22:02 tadzik Ah
22:02 tadzik Well, it uses plenv model, not perlbrew
22:02 ab5tract meisl: use `.tell <nick> <msg>`
22:02 patrickz True.
22:02 tadzik So just the name remains problematic, kinda
22:02 meisl ab5tract: thx, that's really a nice feature
22:03 ab5tract .tell meisl I completely agree :)
22:03 yoleaux ab5tract: I'll pass your message to meisl.
22:03 ab5tract 'night #perl6 !
22:03 timotimo gnite ab5tract
22:04 meisl .tell ab5tract thx again: g'nite
22:04 yoleaux 22:03Z <ab5tract> meisl: I completely agree :)
22:04 yoleaux meisl: I'll pass your message to ab5tract.
22:04 patrickz *env is kinda nice because it's also present in other languages rbenv, pyenv...
22:04 tadzik Right
22:04 patrickz Nonetheless renaming the thing is painful.
22:05 ab5tract p6env is shorter :)
22:05 yoleaux 22:04Z <meisl> ab5tract: thx again: g'nite
22:05 meisl .tell brrt oh-wow...
22:05 yoleaux meisl: I'll pass your message to brrt.
22:05 tadzik Yeah. And rakudobrew is a really good brand now :P
22:05 meisl .tell brrt never had such a nice welcome - and such an immediate one!
22:05 yoleaux meisl: I'll pass your message to brrt.
22:05 timotimo pyenv? i think you mean "virtualenv"
22:05 tadzik Bbs, detram &
22:05 patrickz pl6env would be my preference. bikeshedding ftw!
22:05 ab5tract tadzik: that's quite true. the trusted source!
22:05 timotimo which is a very python-centric naming, isn't it?
22:05 meisl .tell brrt I *am* interested in Aho-style tiling, will have a look.
22:05 ab5tract ok, really o/
22:05 yoleaux meisl: I'll pass your message to brrt.
22:06 * patrickz didn't know about virtualenv...
22:06 * timotimo comes from a slight python background
22:06 patrickz With some added complexity we could have both.
22:07 meisl anyone: I've got a "QAST-ion", re Op stringify...
22:08 timotimo shoot
22:09 timotimo as in: go ahead with your question
22:09 meisl I found that you cannot just put a QAST::Op.new(:op<stringify>, ...) in your QAST tree - yields "no registered operation handler for stringify"
22:10 timotimo right
22:10 meisl ...only if it's under a CompUnit with :hll<nqp>...
22:10 timotimo ah
22:10 timotimo let's see
22:11 meisl so this op seems different from others - why?
22:11 timotimo i've got a link for you in a second
22:12 timotimo https://github.com/perl6/nqp/blob/​master/src/vm/moar/NQP/Ops.nqp#L95
22:12 timotimo extremely similar to the implementation for the jvm: https://github.com/perl6/nqp/blob/​master/src/vm/jvm/NQP/Ops.nqp#L100
22:13 timotimo https://github.com/perl6/nqp/blob/m​aster/src/vm/parrot/NQP/Ops.nqp#L85 - and the one for parrot as well
22:13 meisl yeah, found this as well - but don't really get the difference to, say, "really native" ops like eg isstr
22:14 timotimo https://github.com/perl6/nqp/blob/master/src%2F​vm%2Fmoar%2FQAST%2FQASTOperationsMAST.nqp#L2394 - this goes directly to the MoarVM operation
22:15 timotimo https://github.com/MoarVM/MoarVM/​blob/master/src/core/oplist#L389 - this is where its argument structure is defined
22:15 timotimo https://github.com/MoarVM/MoarVM/b​lob/master/src/core/interp.c#L2631 - and here's how moarvm implements it internally
22:16 timotimo the QASTOperationsMAST entry knows what the bytecode for isstr is and can emit that properly, and it also knows what arguments it gets
22:18 meisl hmm thx, but I'm afraid that's a bit over my head, or "too deep down" for me right now. Could you help me with a more general explanation, like why/how that is different from other QAST::Op s which would work under whatever :hll you have?
22:20 timotimo well, sure
22:20 timotimo it all depends on whether or not it's been defined "for you"
22:20 timotimo both the nqp and rakudo "Operations" file will register all of moarvm's (for example) operations for you, because wh ynot
22:21 pippo joined #perl6
22:21 timotimo however, you're allowed to add any more operations you want to your compiler, as long as you can compile it down to operations that are implemented by the VM you're using
22:21 tadzik patrickz: I now wonder, how much of a pain would be to convert the plenv-like commands to perlbrew-like commands?
22:21 tadzik I guess they're basically equivalent
22:21 tadzik and changing the api at this stage may be easier than changing the name
22:21 timotimo excuse me for being so low-level-focused; spent too much time in moarvm :)
22:21 patrickz perlbrew has no local/shell
22:21 tadzik aqh
22:22 pippo m: @a = (1..10)list; say @a.WHAT;
22:22 camelia rakudo-moar 29cffa: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jMdlZt6JD_␤Variable '@a' is not declared␤at /tmp/jMdlZt6JD_:1␤------> 3<BOL>7⏏5@a = (1..10)list; say @a.WHAT;␤»
22:23 pippo m: @a = (1..10).list; say @a.WHAT;
22:23 camelia rakudo-moar 29cffa: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Arz6L5oAOh␤Variable '@a' is not declared␤at /tmp/Arz6L5oAOh:1␤------> 3<BOL>7⏏5@a = (1..10).list; say @a.WHAT;␤»
22:23 pippo m: my @a = (1..10).list; say @a.WHAT;
22:23 camelia rakudo-moar 29cffa: OUTPUT«(Array)␤»
22:23 meisl timotimo: thx, and np at all :D. I'm not trying to add some new op, just use what I saw the nqp Actions/Grammar produce in my own hll
22:23 pippo @a.WHAT = list, no more?
22:25 timotimo meisl: btw, you can also generate a QAST tree inside the implementation of your custom op
22:25 timotimo let me find an example for you
22:25 timotimo ah
22:25 timotimo it's just above stringify, "postdec" which implements post-decrement
22:25 timotimo all you have to know is you can return the return value of $qastcomp.as_mast($your_shiny_qast_tree)
22:27 pippo m: my $a = (1..10).list; say $a.WHAT;
22:27 camelia rakudo-moar 29cffa: OUTPUT«(List)␤»
22:27 meisl timotimo: hmm, not really the same. I can put a QAST::Op.new(:op<postdec>, ...) in my QAST tree under a CompUnit with :hll<L> (eg), and the QAST-to-MAST goes well - but not so with stringify...
22:28 patrickz two more ideas: -keep both subcommand sets and differentiate them a little in the help ("perlbrew like commands:" ... "plenv like commands:")
22:28 timotimo oh?
22:28 meisl yes.
22:28 timotimo let's see why that could be
22:28 patrickz - provide both a rakudobrew and a pl6env
22:28 patrickz either with separate subcommand sets or that combined one
22:29 timotimo um, i have no idea why that would turn out differently :|
22:29 telex joined #perl6
22:30 patrickz (separate sets is a little dangerous, rakudobrew would invisibly behave differently if a local or shell version is set)
22:30 skids joined #perl6
22:30 pippo m: my $a = (1); say $a.WHAT; $a.push: 2; say $a.WHAT;
22:30 camelia rakudo-moar 29cffa: OUTPUT«(Int)␤Cannot call push(Int: Int); none of these signatures match:␤    (Any:U \SELF: *@values, *%_)␤  in block <unit> at /tmp/MHkFAsVBqk:1␤␤»
22:30 pippo m: my $a = (1); say $a.WHAT;
22:30 camelia rakudo-moar 29cffa: OUTPUT«(Int)␤»
22:30 meisl from https://github.com/perl6/nqp/b​lob/master/docs/qast.markdown I concluded (guessed) that the :hll on CompUnit is rather cosmetic - it seems it's not...
22:30 pippo m: my $a = (1,2); say $a.WHAT;
22:30 camelia rakudo-moar 29cffa: OUTPUT«(List)␤»
22:31 pippo m: my $a = (1,2); say $a.WHAT; $a.push: 3;
22:31 camelia rakudo-moar 29cffa: OUTPUT«(List)␤Cannot call push(List: Int); none of these signatures match:␤    (Any:U \SELF: *@values, *%_)␤  in block <unit> at /tmp/7dnkOd9cjU:1␤␤»
22:31 timotimo oh
22:31 timotimo you are right, that wants to be a more drastic explanation
22:32 timotimo every compunit remembers the hll and when values move between compunits, they'll often get "hllized"
22:32 timotimo m: use nqp; nqp::hllizefor('nqp', (1, 2, 3, 4)).WHAT.say
22:32 camelia rakudo-moar 29cffa: OUTPUT«This type cannot unbox to a native string␤  in block <unit> at /tmp/hrI9XUHh7k:1␤␤»
22:32 timotimo m: use nqp; nqp::hllizefor((1, 2, 3, 4), 'nqp').WHAT.say
22:32 camelia rakudo-moar 29cffa: OUTPUT«(List)␤»
22:32 timotimo um
22:33 timotimo m: use nqp; nqp::hllizefor("hello" ~~ /../, 'nqp').WHAT.say
22:33 camelia rakudo-moar 29cffa: OUTPUT«(Match)␤»
22:33 meisl it shouldn't say that?
22:33 timotimo i was expecting something nqp-ish
22:33 meisl let's try the stringify, like ~5
22:34 meisl (it's on you, I don't know npq::hllizefor :)
22:34 timotimo hah
22:34 timotimo hllizefor is only about transforming common kinds of things between HLLs
22:34 timotimo there's a NQPMatch class for use inside NQP that ought to turn into a Match when hllized for perl6, for example
22:35 timotimo or at least i think NQPMatch / Match have a role like that
22:35 meisl ah, so you were expecting NQPMatch instead of Match, right?
22:35 timotimo nope, wrong, Match and NQPMatch don't get registered for the hll config
22:36 timotimo there's types for different kinds of boxing
22:36 timotimo int, num, str, a null value (Mu vs NQPMu)
22:36 timotimo it could very well be that transforming from perl6 to nqp doesn't work, but the other way around it would
22:37 timotimo but camelia doesn't have a setup that'd make that easily possible to try :|
22:37 meisl to be clear: I'm entirely in NQP, no P6
22:37 meisl the QAST-generating stuff and all is only NQP
22:38 timotimo right, fair enough
22:38 patrickz MoarVM dyncall build fails with: dyncall_callf.c:90:75: error: invalid conversion from 'DCpointer {aka void*}' to 'DCstring {aka const char*}' [-fpermissive] on gcc-x64-windows. Is that a known problem?
22:38 leont joined #perl6
22:39 timotimo if dyncall gives you problems, you can try libffi instead ... but i don't know about that problem
22:39 timotimo i *think* we've only made the errors stricter for moarvm itself, not for sub-projects
22:39 meisl but maybe that's something: you said "don't get registered for the hll config" (about classes) - but maybe QAST Op may or may not be "registered for hll config" as well?
22:40 timotimo meisl: i expect the hll set in a compunit influences what set of ops will be looked at
22:40 timotimo but humans lie, code doesn't :)
22:40 timotimo and now i'll be afk for ~30 minutes
22:41 meisl timotimo: fine, I'll have to go to bed. Thx a lot for your efforts :))
22:41 tadzik patrickz: that seems to fragile to my liking (keeping both sets)
22:41 patrickz ok, then we have to decide :-)
22:41 timotimo you're welcome :)
22:41 timotimo looking forward to seeing what your language looks like
22:42 leont It seems rakudo doesn't detect infinite recursion
22:42 meisl hehe, rather simple. L = Lambda; g'night :)
22:44 leont (guess how I just swapped my computer to death)
22:45 patrickz Then our options are to go for full plenv commands compatibility or a mixture of the current commands and the commands I added. First is more consistent, second is less intrusive..
22:49 dalek rakudo/nom: e11a341 | lizmat++ | src/core/IO/Handle.pm:
22:49 dalek rakudo/nom: Implement push-all for IO::Handle.lines
22:49 dalek rakudo/nom:
22:49 dalek rakudo/nom: "words".IO.lines.elems.say                20% faster
22:49 dalek rakudo/nom: "words".IO.lines(:!chomp).elems.say       35% faster
22:49 dalek rakudo/nom: my @a = "words".IO.lines; say +@a         18% faster
22:49 dalek rakudo/nom:
22:49 dalek rakudo/nom: This for a file with 235886 lines.
22:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e11a3416b0
22:50 lizmat my first optimization work in the new GLR world
22:51 lizmat and with this I say good night to #perl6!
22:51 cognominal lizmat++
22:52 pippo Why I cannot push one element to a list?
22:53 pippo m: my $a = (); $a.push: 1;
22:53 camelia rakudo-moar 29cffa: OUTPUT«Cannot call push(List: Int); none of these signatures match:␤    (Any:U \SELF: *@values, *%_)␤  in block <unit> at /tmp/CMluZIDCnB:1␤␤»
22:53 pippo ??
22:54 cognominal m: my $a = []; $a.push: 1
22:54 camelia rakudo-moar 29cffa: ( no output )
22:54 pippo cognominal: but that is an array.
22:54 cognominal A list is read-only.
22:55 pippo Ah. cause of GLR?
22:55 cognominal I think so
22:56 pippo Sadly.
22:56 pippo cognominal: thank you.
22:57 cognominal pippo: GLR breaks things, but it seems more coherent than the world pre-GLR.
22:57 pippo https://github.com/perl6/specs​/blob/master/S07-glr-draft.pod
22:57 lizmat m: my $a = (,); $a.push(42)
22:57 camelia rakudo-moar 29cffa: OUTPUT«5===SORRY!5=== Error while compiling /tmp/bQyI5JcZ5J␤Preceding context expects a term, but found infix , instead␤at /tmp/bQyI5JcZ5J:1␤------> 3my $a = (,7⏏5); $a.push(42)␤»
22:58 lizmat hmmm...
22:58 pippo ^^ In here seems that lists are mutable and have a push method.
22:58 lizmat well, that's wrong then  :-)
22:59 lizmat Lists are immutable, but may contain mutable items
22:59 lizmat S07:1
22:59 pippo lizmat: OK. Thank you lizmat.
23:01 flussence .botsnack
23:01 yoleaux :D
23:01 yoleaux 21:31Z <ab5tract> flussence: re: the performance of Test::Corpus, I imagine a great deal of it is related to slurping a bunch of files
23:01 yoleaux 21:32Z <ab5tract> flussence: but building a pipeline for doing concurrent processing would be very interesting as well
23:02 pippo lizmat: BTW. The error messages are a little misleading. No?
23:06 meisl joined #perl6
23:06 flussence .tell ab5tract I think it would help a lot if I could throw is() and the like inside of start{} blocks, and have confidence in the results coming out in a consistent-enough order. In other words, I'm doing it wrong. I'll leave that code as-is for the time being because slow beats segfaulting.
23:06 yoleaux flussence: I'll pass your message to ab5tract.
23:06 ShimmerFairy pippo: The last error message you gave has nothing to do with .push, just with the fact that you tried to use (,)
23:06 ShimmerFairy m: my $a = (,);
23:06 camelia rakudo-moar 29cffa: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0eSlEh3EbJ␤Preceding context expects a term, but found infix , instead␤at /tmp/0eSlEh3EbJ:1␤------> 3my $a = (,7⏏5);␤»
23:07 pippo m: my $a = (); $a.push: 1;
23:07 camelia rakudo-moar 29cffa: OUTPUT«Cannot call push(List: Int); none of these signatures match:␤    (Any:U \SELF: *@values, *%_)␤  in block <unit> at /tmp/sIaafznfwM:1␤␤»
23:07 pippo ^^ and this one?
23:08 ShimmerFairy My guess is that it inherited a push method from Any, and hasn't overridden it
23:09 patrickz I'm off to bed. Night everyone...
23:09 meisl timotimo: just tried :op<postdec> - and it's the same as with stringify (so I was wrong on that) - but still: how come? (take, eg, reprname - that works for any :hll)
23:11 meisl .tell timotimo just tried :op<postdec> - and it's the same as with stringify (so I was wrong on that) - but still: how come? (take, eg, reprname - that works with any :hll)
23:11 yoleaux meisl: I'll pass your message to timotimo.
23:11 cognominal ShimmerFairy, indeed but the Any:U does not make any sense to me for a push method.
23:11 lizmat $ 6 'my $a = (); $a.push: 42'
23:11 lizmat Cannot call 'push' on an immutable 'List'
23:12 telex joined #perl6
23:12 lizmat pippo  ^^^  better ?
23:12 timotimo meisl: i told you, home boy! you can't op this!
23:12 yoleaux 23:11Z <meisl> timotimo: just tried :op<postdec> - and it's the same as with stringify (so I was wrong on that) - but still: how come? (take, eg, reprname - that works with any :hll)
23:12 timotimo er, i mean ...
23:12 cognominal you need a concreto object
23:12 timotimo reprname is also one of those ops that are implemented by moarvm and mapped by any hll
23:12 timotimo not just nqp
23:14 dalek rakudo/nom: 86ddca2 | lizmat++ | src/core/List.pm:
23:14 dalek rakudo/nom: Fix LTA error on List.push/pop/unshift/shift
23:14 dalek rakudo/nom:
23:14 dalek rakudo/nom: pippo++ for pointing this out
23:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/86ddca2003
23:14 meisl timotimo: ay, sir. but... I don't understand a thing :) seems I need some more prep. but not now, I really have to sleep now. Big thx!
23:15 timotimo rest well!
23:15 pippo lizmat: thank you.
23:15 meisl cu all
23:15 ShimmerFairy m: say Int.push(4, 2)
23:15 camelia rakudo-moar 29cffa: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at /tmp/aNVQxlKV9A:1␤␤»
23:15 lizmat really sleep&
23:16 pippo o/
23:16 ShimmerFairy ^ Any.push claims this would turn into an Array, but it looks like it doesn't anymore
23:16 ShimmerFairy ♞ all of you :) o/
23:18 timotimo flussence: i imagine you could use hyper to do the tests and at the end assign to a list that caches and evaluate the results in-order
23:19 pippo good night ShimmerFairy
23:19 pippo left #perl6
23:24 flussence timotimo: I've tried a few approaches over the last few months, including that one, but I've been unable to produce any meaningful speedup with that code.
23:25 flussence I do have my browser choking on a 3MB profile.html of it right now though :)
23:25 flussence (oww, it does not like that callgraph tab...)
23:27 timotimo the last few months, eh?
23:27 flussence on and off, whenever I get bored and decide to fiddle with it :)
23:27 timotimo right now is a good time to try again, as that instability with regards to multi-threading was fixed today
23:28 dalek doc: 958c399 | skids++ | lib/Type/ (2 files):
23:28 dalek doc: More fixing of links.  Try to get this table pod thing to DWIM.
23:28 dalek doc:
23:28 dalek doc: Also, avoid using the phrase "object of type Capture" in subject matter
23:28 dalek doc: so close to en-passant "type capture"s.
23:28 dalek doc: review: https://github.com/perl6/doc/commit/958c399359
23:28 tokuhiro_ joined #perl6
23:30 telex joined #perl6
23:31 skids .oO(maybe we should ditch "en-passant capture" for something like "type gleaning")
23:42 flussence timotimo: before I go off and do that, it looks like I can rule out the file IO being slow at all - slurp accounts for 780ms of the 70+s these tests take, 97% is in Str.trans...
23:42 timotimo oh wow
23:48 ugexe if you use hyper you wont be able to run the tests in order if its required
23:49 ugexe 01.t creates some-file.csv, 02.t uses some-file.csv. A poorly designed test, but i saw it more often than id like in perl 5
23:51 leont There has been a strong move away from that in p5, there are people who test for it
23:52 leont Test::Harness can be run in parallel & shuffle mode, that will trigger such tests pretty quickly
23:52 flussence oh wow... replacing .trans('A'..'Z' => ['N'..'Z', 'A'..'M']) with .trans('A..Z' => 'N..ZA..M') makes the tests pass in *one second*
23:53 ugexe prove/test::harness also has .prove for working around those problems. zef runs tests in parallel/shuffle if requested as well, but as separate processes
23:54 timotimo flussence: not bad!
23:54 TEttinger joined #perl6
23:55 timotimo ugexe: if you cause the hyper's result to be collected in a list and access it in-order, like with a .map (probably after an .eager?) you'll get results in-order
23:55 timotimo you just have to put the "is" and stuff after the section that gets shuffled
23:55 ugexe timotimo: its not always the results that need to be in order
23:56 ugexe 01.t creates some-file.csv, 02.t uses some-file.csv
23:56 ShimmerFairy flussence: clearly there's something up with the "actual Range" version :P  (and I wouldn't've expected Range syntax in a string to work, honestly)
23:57 ugexe i spent a good 30 hours changing Archive::Zip to *not* use files like that between tests so it could be run with shuffle/parallel
23:57 flussence it's special-cased inside .trans, which makes me wonder what it *is* doing inside there...
23:58 telex joined #perl6
23:59 ugexe some sort of thing like `plan` but to allow the test itself to declare the order if its required would be ideal. but then you have to use map instead of hyper unless you want 2 code paths

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

Perl 6 | Reference Documentation | Rakudo