»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:00 telex joined 00:04 cognominal joined, kurahaupo_ left 00:05 telex left 00:06 telex joined 00:07 leont left, cognominal left, n0tjack joined, kurahaupo_ joined 00:11 telex left 00:12 n0tjack left, telex joined 00:18 telex left, telex joined 00:20 mprelude left 00:21 n0tjack joined 00:24 telex left, telex joined, telex left
zostay m: $_ = "xyz"; .=subst(/(.)(.)/, { "$1$0" }, :g); .say 00:25
camelia rakudo-moar 1bd727: OUTPUT«yxz␤»
00:26 n0tjack left, telex joined
zostay m: $_ = "xyz"; .=subst(/(.)(.)/, { "<$1>$0<>" }, :g); .say 00:27
camelia rakudo-moar 1bd727: OUTPUT«<y>xz␤»
zostay m: $_ = "xyz"; .=subst(/(.)(.)/, { "<a$1>$0<>" }, :g); .say 00:28
camelia rakudo-moar 1bd727: OUTPUT«<ay>xz␤»
zostay m: $_ = "xyz"; .=subst(/(.)(.)/, { "<a$1>$0</a>" }, :g); .say
camelia rakudo-moar 1bd727: OUTPUT«Use of Nil in string context in block at /tmp/K3gDPdltxM:1␤<ay>z␤»
zostay m: $_ = "xyz"; .=subst(/(.)(.)/, { "<a$1>$0<a>" }, :g); .say
camelia rakudo-moar 1bd727: OUTPUT«Use of Nil in string context in block at /tmp/JLfEqqzFFr:1␤<ay>z␤»
zostay what is up with that? i don't get it
ah, i see... i hadn't realized that <> worked with interpolation... need to skim through S02 again 00:31
00:32 telex left, telex joined
ShimmerFairy zostay: yeah, I think jnthn's SPW slides even mentioned that as a common gotcha (though I may be misremembering) 00:33
m: $_ = "xyz"; .=subst(/(.)(.)/, { "<a$1>$0\<a>" }, :g); .say 00:34
camelia rakudo-moar 1bd727: OUTPUT«<ay>x<a>z␤»
00:34 Peter_R left
ShimmerFairy zostay: ^^^ you can escape the opening bracket, to give you a solution directly :) 00:34
00:38 aborazmeh left, telex left 00:39 telex joined 00:44 samb1 joined, telex left 00:45 telex joined 00:49 kurahaupo_ left 00:51 telex left, telex joined 00:53 n0tjack joined 00:57 telex left, telex joined 00:58 n0tjack left 01:01 Sqirrel_ left, notostraca is now known as TEttinger 01:03 telex left, telex joined 01:06 Sqirrel joined 01:09 telex left, telex joined 01:10 lichtkind left, telex left 01:12 telex joined 01:17 aborazmeh joined, aborazmeh left, aborazmeh joined 01:18 telex left, telex joined 01:23 telex left 01:24 telex joined 01:26 n0tjack joined 01:29 telex left 01:30 telex joined, n0tjack left 01:34 telex left 01:35 telex joined 01:37 tokuhiro_ joined 01:39 dalek left 01:40 telex left 01:41 JimmyZ left, telex joined, tokuhiro_ left 01:45 ilbot3 left 01:46 telex left 01:47 ilbot3 joined, telex joined 01:52 telex left 01:53 tokuhiro_ joined, telex joined 01:58 telex left 01:59 n0tjack joined, telex joined, vendethiel joined 02:03 n0tjack left 02:04 telex left 02:05 telex joined 02:10 telex left 02:11 telex joined 02:16 telex left 02:17 telex joined, telex left 02:18 telex joined 02:22 vendethiel left 02:23 telex left 02:24 telex joined 02:30 telex left, telex joined 02:31 n0tjack joined 02:33 tping joined 02:35 telex left 02:36 telex joined 02:37 n0tjack left
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:41 telex left 02:42 telex joined 02:47 telex left 02:48 telex joined 02:53 telex left, noganex_ joined 02:54 telex joined, Ben_Goldberg joined 02:56 colomon left 02:57 noganex left, BenGoldberg left 02:59 telex left 03:00 telex joined 03:02 krunen joined 03:03 kaare_ joined 03:04 n0tjack joined, telex left 03:06 telex joined 03:08 n0tjack left 03:11 telex left 03:12 telex joined 03:17 telex left 03:18 telex joined 03:23 telex left 03:24 telex joined 03:26 khw left 03:27 colomon joined 03:29 telex left, khw joined, telex joined 03:30 telex left 03:32 telex joined 03:36 n0tjack joined 03:38 telex left, telex joined 03:41 n0tjack left 03:43 telex left 03:44 telex joined 03:49 telex left 03:50 telex joined 03:52 khw left 03:55 telex left 03:56 telex joined 04:01 telex left 04:02 telex joined 04:04 Ben_Goldberg left 04:07 telex left 04:08 telex joined 04:09 n0tjack joined 04:12 telex left 04:13 n0tjack left 04:14 telex joined 04:19 telex left 04:20 telex joined 04:25 telex left 04:26 rmgk_ joined, rmgk is now known as Guest39417, Guest39417 left, rmgk_ is now known as rmgk, telex joined 04:31 telex left 04:32 telex joined 04:34 baest_ is now known as baest 04:37 telex left 04:38 telex joined, telex left 04:40 telex joined 04:42 n0tjack joined 04:45 telex left 04:46 n0tjack left, telex joined 04:51 telex left 04:52 telex joined 04:54 lolisa joined 04:55 skids left 04:57 telex left 04:58 telex joined 05:03 telex left 05:04 telex joined 05:06 aborazmeh left 05:09 telex left 05:10 telex joined 05:14 n0tjack joined 05:15 telex left 05:16 telex joined 05:19 n0tjack left, laouji left, laouji joined 05:21 telex left 05:22 telex joined 05:27 telex left 05:28 telex joined 05:33 telex left 05:34 telex joined 05:39 telex left 05:40 telex joined 05:44 quester joined, quester left, quester joined 05:45 telex left 05:46 telex joined, telex left, n0tjack joined 05:48 telex joined 05:51 n0tjack left 05:53 telex left 05:54 telex joined 05:56 [Sno] left 05:59 telex left 06:00 telex joined 06:05 telex left 06:06 telex joined 06:08 quester left, diana_olhovik_ joined, quester joined, quester is now known as Guest84576 06:11 Guest84576 left, telex left 06:12 telex joined 06:13 echo`division joined, echo`division left 06:14 domidumont joined 06:15 rurban joined 06:18 telex left, telex joined, temp-q joined 06:19 temp-q left, temp-q joined, domidumont left, n0tjack joined 06:20 temp-q is now known as quester, domidumont joined 06:23 n0tjack left 06:24 telex left, telex joined 06:30 telex left, telex joined 06:36 telex left, thou left, telex joined 06:41 telex left 06:42 telex joined 06:47 telex left 06:48 telex joined, telex left 06:50 telex joined 06:51 n0tjack joined 06:55 telex left 06:56 telex joined, n0tjack left 07:00 abraxxa joined 07:02 telex left, telex joined 07:03 lizmat joined 07:04 silug joined 07:05 Ven joined, _mg_ joined, z448 joined 07:08 telex left, kjs__ joined, telex joined, z448 left
timotimo japhb: its code has been merged into JSON::Fast 07:10
07:13 telex left 07:14 telex joined
BooK heya #perl6 07:15
I was wondering how to write documentation for my perl6 modules^H 07:16
07:16 aborazmeh joined, aborazmeh left, aborazmeh joined, FROGGS joined
masak morning, #perl6 07:17
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.
BooK: that said, attaching Pod comments to things is quite great. 07:18
07:18 YuviPanda is now known as RagePanda
FROGGS o/ 07:18
yoleaux 13 Sep 2015 23:49Z <japhb> FROGGS: \o/
BooK I'm sure there's a perl6 flavour of pod, right?
FROGGS Pod (instead of POD), yes
masak see S26. 07:19
07:19 telex left
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 github.com/perl6/doc/ for examples?
masak m: say "" 07:20
camelia rakudo-moar 1bd727: OUTPUT«␤»
masak m: #| This comment gets attached to the class␤class C {}; say C.WHY
camelia rakudo-moar 1bd727: OUTPUT«This comment gets attached to the class␤»
masak BooK: ^
07:20 telex joined
BooK masak, cschwenz: thanks, will do 07:20
masak also works for attributes, parameters, variable declarations, etc.
07:20 RagePanda is now known as YuviPanda
BooK it's a really weird feeling to write code without being supported by a whole infrastructure 07:21
what an adventure!
masak :D
cschwenz ;-)
masak if you want to attach to something immediately after its declaration, you use #=
07:24 n0tjack joined 07:25 telex left 07:26 telex joined 07:28 n0tjack left 07:31 telex left 07:32 telex joined 07:37 dalek joined, ChanServ sets mode: +v dalek, psch left, cschwenz left, telex left, xfix joined, xfix left, xfix joined, [Sno] joined 07:38 telex joined 07:40 thou joined 07:43 telex left 07:44 telex joined 07:45 thou left, kjs__ left 07:49 zakharyas joined, telex left 07:50 telex joined 07:51 masak joined 07:55 telex left, telex joined 07:57 n0tjack joined 07:58 psch joined 08:01 telex left, n0tjack left, telex joined 08:03 lizmat left 08:06 quester left, telex left 08:07 telex joined, telex left, leont joined
jnthn morning, #perl6 08:08
08:08 telex joined
nine Good morning, jnthn 08:08
jdv79 mornin 08:09
08:11 Possum left
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:11
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
08:13 darutoko joined 08:14 aborazmeh left
nine jnthn: ok, I've already started that yesterday. I may as well continue :) 08:14
08:14 darutoko- joined
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
jnthn timotimo: OK :)
timotimo about how a surprising amount of very simple infix operators end up getting called rather than inlined 08:16
08:17 darutoko left 08:20 lolisa left 08:21 darutoko joined
jnthn That's 'cus the inliner doesn't know about native refs yet :) 08:23
08:23 darutoko- left
jnthn We often can statically inline those things though 08:23
08:25 araujo joined 08:26 araujo left
timotimo right. but they don't end up inlined by spesh either 08:26
FROGGS but doesnt 'statically inline' point to rakudo's optimizer rather than spesh? 08:27
08:27 araujo joined 08:28 araujo left, brrt joined
timotimo that's right 08:28
neither of the two is able to do it, but i thought spesh at least should be able 08:29
08:29 Possum joined
timotimo maybe it also needs to learn that a lexref, attrref or localref can be passed like a regular native value? 08:29
brrt good * 08:30
yoleaux 12 Sep 2015 12:01Z <masak> brrt: in brrt-to-the-future.blogspot.fr/2015...ng-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" ?
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
timotimo ohai brrt! 08:30
brrt ohai
yes
i will fix it
fixedit 08:32
:-) thanks
08:34 Possum left, cschwenz joined 08:35 n0tjack left 08:41 Possum joined 08:43 dakkar joined 08:47 ab5tract_ joined 08:48 grondilu left 08:49 ab5tract_ left, grondilu joined, telex left 08:50 CQ joined, telex joined 08:52 El_Che joined 08:55 telex left 08:56 telex joined, mprelude joined 09:00 El_Che left 09:01 telex left 09:02 telex joined, araujo joined, FROGGS left, n0tjack joined 09:03 FROGGS joined
timotimo experiments with the static optimizer's trial bind and multi-dispatch analysis stuff 09:04
when fiddling around with it, i may start to understand things
09:05 El_Che joined 09:06 n0tjack left 09:07 telex left 09:08 telex joined 09:09 cschwenz left, kjs__ joined, Ven left, domidumont left 09:10 domidumont joined
masak heh. Angular keeps imitation Perl 5/Perl 6 by extolling the virtues of interoperating across the version boundaries: angularjs.blogspot.se/2015/08/angul...tence.html 09:10
imitating*
brrt sincerest form of flattery 09:11
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
which masak worked on
brrt orly
hmm
ok 09:13
might as well do that, yes
timotimo i imagine escape analysis is much harder or perhaps impossible to do with any effectiveness inside rakudo
09:13 telex left, cognominal joined
brrt hmmm. i'm not sure about that 09:14
09:14 telex joined
brrt that's more or less an artificial effect from the fact that it's the VM that does the 'linking' 09:14
09:15 domidumont left
|Tux| applauds 09:15
test 50000 37.171 37.091
test-t 50000 37.080 37.000
09:16 rindolf joined, domidumont joined
brrt \o/ 09:16
09:16 domidumont left
timotimo oh wow! 09:16
that's quite good indeed
09:17 andreoss joined, domidumont joined 09:19 telex left
masak could someone interpret those numbers for an uninitiated onlooker like me? 09:19
09:19 Alina-malina left
masak brrt: moarvm. 09:20
09:20 telex joined
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
neither, I imagine, has jnthn.
brrt not so much starting as thinking about it
i have real life work to do :-P 09:21
timotimo got a non-ok type in - QAST::Op(call &METAOP_ASSIGN)
- QAST::Var(lexical &infix:<->)
-- parameter - QAST::Var(lexical &infix:<->)
^- 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
jnthn timotimo: Even after I put in the thing to fix it?
(fix the type, I mean) 09:22
masak brrt: we could have a good long chat at some point, maybe on privmsg?
brrt: there are also some papers and PDFs I could dump on you.
brrt yeah, good idea.
dump them pdfs :-)
jnthn tires of admin work and decides it's time to hack :)
FROGGS jnthn: +1
:o)
timotimo jnthn: the thing? did i miss something? :)
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 :)
timotimo: Which let us inline more things
09:25 telex left
timotimo ah, right 09:25
yeah, there's no nqp:: op in there, though :)
i stumbled upon those lines a few minutes ago 09:26
09:26 telex joined
timotimo so they are in effect, i'm sure 09:26
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'
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
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
FROGGS |Tux|: 50k lines, no?
|Tux| 50k fields, 10k lines
09:29 thou joined
FROGGS ahh, I see 09:29
jnthn FROGGS: I guess "skipped: Cannot compile C++ script" is expected on Windows/MSVC at this point? :)
timotimo jnthn: that output only appears after the nqp translation code has had its chance to set $type_ok back to 1
FROGGS jnthn: no, should Just Work™
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 ?
|Tux| yes 09:31
under 38
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,
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 telex left
|Tux| masak, and the fact that it is going the right way: down 09:31
09:32 telex joined
jnthn FROGGS: gist.github.com/jnthn/283979d6120c2278ee0e 09:32
FROGGS: It's not finding/using cl, but rather trying g++, it seems.
cl is certainly available and in the path though
FROGGS jnthn: hmmm, it is using cl first, then g++ if cl failed...
09:33 thou left
psch FROGGS: on hack it's trying clang and failing, fyi 09:33
FROGGS jnthn: ohh, I've got a thinko in my script
it compiles with cl, succeeds, doesnt care, tries g++, fails
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␤»
jnthn m: sub a { return ($^a andthen .Int) }; a(Str).perl.say; a(42).perl.say
camelia rakudo-moar 1bd727: OUTPUT«()␤42␤»
jnthn rejects RT #126050 with a reminder about precedence :)
09:35 n0tjack joined
psch FROGGS: gist.github.com/peschwa/123396eb36802a474005 (in case that's not covered by the same thinko) 09:36
jnthn RT #126047 too :) 09:37
dalek kudo/nom: 63077a5 | FROGGS++ | t/04-nativecall/CompileTestLib.pm:
handle successful case of compiling C++ script
kudo/nom: 00bd81b | FROGGS++ | t/04-nativecall/CompileTestLib.pm:
delete files created during testing
09:37 telex left
brrt .tell TimToady i think that @answers{@slice} = 42 xx * should be @answers[@slice] = 42 xx * 09:38
yoleaux brrt: I'll pass your message to TimToady.
brrt and that it's really cool
09:38 telex joined, telex left 09:39 n0tjack left
andreoss what is the difference between Any and (Any)? 09:39
dalek kudo/nom: 54ce37c | FROGGS++ | t/04-nativecall/CompileTestLib.pm:
handle succeeded C++ compilation even better
09:40
09:40 brrt left, telex joined
FROGGS psch: can you try again on hack? 09:40
jnthn FROGGS: Now they pass on Windows :)
FROGGS \o/ 09:41
jnthn t\04-nativecall\11-cpp.t ............. ok
t\04-nativecall\13-cpp-mangling.t .... ok
:)
FROGGS++
09:41 Alina-malina joined
psch FROGGS: sure, just have to rebuild... 09:41
FROGGS psch: that'd be great :o)
09:46 telex left, telex joined, pmurias joined
psch FROGGS: yup, works 09:47
pmurias hi 09:48
jnthn thinks he has a fix for RT #126033 :) 09:50
jdv79 timotimo: any idea why the qt profiler doesn't load moritz's 93M json file? 09:51
09:51 El_Che left 09:52 telex left, telex joined 09:53 El_Che joined
psch m: my $x; say $x.VAR.WHAT 09:53
camelia rakudo-moar 00bd81: OUTPUT«(Scalar)␤»
dalek p: 989fde6 | jnthn++ | src/QRegex/Cursor.nqp:
Store decont'd $!orig in Cursor.

Otherwise, things like "$a = $a ~~ /./" will end up with trying to substr(.orig, ...) when looking at the Match object, which now is pointing to the Match itself rather than the original string.
09:57
09:58 telex left
dalek kudo/nom: b949144 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for Cursor fix.
09:58
09:58 telex joined
dalek ast: 6043ba0 | jnthn++ | S05-match/capturing-contexts.t:
Test for RT #126033.
09:58
jnthn nine: RT #126032 is another one you could probably hunt down fairly easily :) 10:00
10:01 itz_ joined
itz_ morning * 10:01
jnthn o/ itz_
pmurias \o 10:02
psch m: my int $x is default(42) # doesn't die on jvm
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␤»
psch and it doesn't die because accessing the descriptor works
calling &say on it, however, gives a SOE
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...
(Build time, I mean)
jnthn had MVM_SPESH_DISABLE=1 MVM_CROSS_THREAD_WRITE_LOG=1 set :)
psch i'm thinking that still points somewhere at lazy stuff somehow :/
jnthn psch: That's...very good :S 10:04
psch because i sincerely hope that all those SOE are somehow related
10:04 telex left
jnthn psch: Uh, very *odd* 10:04
psch jnthn: :D
jnthn psch: Maybe the QAST -> JAST isn't getting sink context right enough?
10:04 telex joined
|Tux| for those who speak dutch, this is nice news to read: webwereld.nl/development/88760-disn...-in-lampje 10:04
psch jnthn: that's probably a good hint, i'll try if i can find anything around there 10:05
10:05 ShimmerFairy left
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
and the last 4 loop, with 2 or 3 anons in between
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 10:10 telex left, telex joined 10:12 n0tjack left
timotimo jdv79: perhaps QJson isn't built for such big data files? perhaps there's some streaming design we could use instead? 10:13
aha, the .returns of those Want nodes seems to be NQPMu 10:15
that's not all right
jnthn timotimo: That probably just means "we didn't set it" 10:16
timotimo: And it's hard to set a .returns on a QAST::Want
timotimo: 'cus there's not just one answer 10:17
timotimo should analyze_args_for_ct_call introspect Want nodes?
er
it already does, but it gets stopped because the Want doesn't set an appropriate .returns 10:18
10:19 ShimmerFairy joined
nine jnthn: so I'm not the only one who opens links despite the language being foreign ;) 10:22
FROGGS psch: awesome, thank you 10:23
psch FROGGS: fyi, removing the clone hack also works now 10:25
FROGGS psch: yeah, I was hoping for that :o)
dalek kudo/nom: b3d2f2a | peschwa++ | src/Perl6/Actions.nqp:
Remove jvm-specific workaround.

Thanks to nqp commit 0c26f68d we don't need this workaround anymore.
10:26
psch i want to motion for moving moar generated source files out of src/ 10:27
it's a tad annoying when greping :P
10:28 ShimmerFairy left
FROGGS psch: +1 10:28
move all under gen/<vm> 10:29
psch nqp and moar also do src/gen 10:31
i'm not gonna touch the latter, i don't deal with it that often :) 10:32
timotimo moar does src/gen?
psch timotimo: yeah, looks like it
timotimo: might be the purpose is different, though 10:33
config.h probably is rightfully generated
pmurias weird moarvm realloc failure: paste.debian.net/311618
psch (and i think i misread my grepping wrt nqp...)
timotimo ah
right
[ptc] m: [[[[["a", "b"], "c"], "a"], "d"], "e"].flat
camelia ( no output )
[ptc] m: [[[[["a", "b"], "c"], "a"], "d"], "e"].flat.perl
camelia ( no output )
pmurias if I pass this file to nqp-m I get a realloc error
timotimo [ptc]: try .say
[ptc] m: [[[[["a", "b"], "c"], "a"], "d"], "e"].flat.say 10:34
camelia rakudo-moar b94914: OUTPUT«([[[[a b] c] a] d] e)␤»
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 :)
[ptc] timotimo: heh :-)
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?
FROGGS nine: resistance is futile? 10:36
timotimo m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.flat.say
camelia rakudo-moar b94914: OUTPUT«[[[[[(a) (b)] (c)] (a)] (d)] (e)]␤»
timotimo hahaha, wat :D
[ptc] nine: all ur accents are belong to us?
FROGGS m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.Slip.say
camelia rakudo-moar b94914: OUTPUT«(([[[a b] c] a] d) (e))␤»
timotimo m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.flat.perl.say
camelia rakudo-moar b94914: OUTPUT«[[[[[("a",).Seq, ("b",).Seq], ("c",).Seq], ("a",).Seq], ("d",).Seq], ("e",).Seq]␤»
timotimo m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.flat.list.say
camelia rakudo-moar b94914: OUTPUT«[[[[[(a) (b)] (c)] (a)] (d)] (e)]␤»
timotimo m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.flat.>>.list.perl.say
camelia rakudo-moar b94914: OUTPUT«([[[[("a",).Seq, ("b",).Seq], ("c",).Seq], ("a",).Seq], ("d",).Seq], ("e",))␤»
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,))␤»
gfldex timotimo: you may need a bigger hammer
pmurias error I get: paste.debian.net/311619
timotimo m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.flat.>>.list.>>.flat>>.list>>.List>>.Str.perl.say
camelia rakudo-moar b94914: OUTPUT«($($[[[($("a",),), ($("b",),)], ($("c",),)], ($("a",),)], $($("d",),)), $($("e",),))␤»
timotimo it's getting better and better!
pmurias jnthn: is this error something that rings any bells for you?
[ptc] is wondering how many .flat/.list are needed in the general case :-D 10:38
10:38 Util joined
jnthn pmurias: 'fraid not 10:38
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␤␤»
timotimo m: [[[[["a", "b"], "c"], "a"], "d"], "e"]>>.[].perl.say
camelia rakudo-moar b94914: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block <unit> at /tmp/JXrg04zWwa:1␤␤»
timotimo m: say [[[[["a", "b"], "c"], "a"], "d"], "e"].map: *.[] 10:40
camelia rakudo-moar b94914: OUTPUT«([[[[a b] c] a] d] e)␤»
timotimo m: say [[[[["a", "b"], "c"], "a"], "d"], "e"].map: *.[].flat
camelia rakudo-moar b94914: OUTPUT«(([[[a b] c] a] d) (e))␤»
timotimo >_<
10:40 n0tjack joined 10:41 ShimmerFairy joined 10:44 dayangkun left 10:45 n0tjack left
[ptc] timotimo: hrm, doesn't look that easy... 10:47
10:47 silug left, silug joined
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)␤»
timotimo just doesn't know anything
didn't timtoady show a pretty simple and short piece of code for that yesterday or two days ago?
jnthn m: say gather [[[[["a", "b"], "c"], "a"], "d"], "e"].deepmap(*.take)
camelia rakudo-moar b94914: OUTPUT«(a b c a d e)␤»
[ptc] oh, that looks better 10:49
nine ah, gather/take!
timotimo but that takes continuations and such
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
*won't
my @a = gather ...; # won't take a continuation any more, just keep going 10:50
timotimo oh? neato
jnthn Yeah, that's one of the changes I did while re-working gather/take for GLR
pmurias jnthn: that's bad it also seems to disappear when chaning unrelated parts of the test :(
timotimo <3
jnthn pmurias: Memory errors usually do.
timotimo m: my @result; [[[[["a", "b"], "c"], "a"], "d"], "e"].deepmap({ @result.push $_ }); say @result
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…»
timotimo m: my @result; [[[[["a", "b"], "c"], "a"], "d"], "e"].deepmap({ @result.push: $_ }); say @result
camelia rakudo-moar b94914: OUTPUT«[a b c a d e]␤»
10:52 domidumont left
psch irclog.perlgeek.de/perl6/2015-09-13#i_11210147 10:53
re: flat [[[]]]
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
psch m: say flat ((((1,),),),); say flat [[[[1,],],],] # should both be flattened 10:54
camelia rakudo-moar b3d2f2: OUTPUT«(1)␤([[[1]]])␤»
timotimo ah
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
10:55 laouji left 10:56 laouji joined
timotimo pmurias: how about turning spesh on and off? and you can also try making the nursery much smaller 10:56
like 1/4th of what it is now, or 1/16th
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:58
jnthn: gist.github.com/timo/9c30f942f14a8d468e9f ← looks nice to have 10:59
11:00 laouji left
dalek kudo/nom: 934893b | timotimo++ | src/Perl6/Optimizer.nqp:
compile-time dispatch shall inspect a Want node's WVal.
11:03
11:06 st_iron joined
st_iron hi 11:06
timotimo ohai
11:07 kjs__ left
leont perl6-debug-m is broken for me after upgrade this weekend -_ 11:07
-_-
"Unhandled exception: ctxlexpad needs an MVMContext"
(somewhere deep in the CORE.setting) 11:08
itz_ grrr the repl likes consuming seq values 11:09
11:09 kjs__ joined
leont Anyone got a clue? 11:10
FROGGS leont: not yet, sorry 11:11
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
timotimo not 100% likely 11:13
pmurias nqp-m: say(nqp::findcclass(nqp::const::CCLASS_ANY, "123", 9, 10))
camelia nqp-moarvm: OUTPUT«19␤»
timotimo it can cause very simple operators to be inlined more often
pmurias under the jvm ^^ returns 3
not sure what's the behavior I should standardize towards 11:14
* standardise
leont Will try rebuild, maybe I just build from an unlucky commit or some such
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
jnthn: which way is correct?
11:17 thou joined, n0tjack left 11:21 thou left 11:22 Ven joined
psch pmurias: i think the difference is because moar has NFG 11:24
(that's on a glance, though...)
timotimo um, wha?
"123" should really not be different in NFG vs whatever else 11:25
this is more about the edge case where the start and range parameters are higher than the length of the string, no?
pmurias timotimo: yes 11:26
timotimo: in the moarvm the start+range is returned 11:27
psch ...shows what i can discern on a glance :)
pmurias timotimo: on the jvm the length of the string is returned
timotimo: it could be just a bug
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
timotimo 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 ecs: 6cc6cd1 | (Steve Mynott)++ | S07-lists.pod:
remove surplus 'an'
pmurias ShimmerFairy: the docs were likely written based on reading the code 11:34
11:34 kjs__ left
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))
jnthn pmurias: As in, the regex code-gen emits a < check against eos 11:36
pmurias jnthn: should I change moar or the jvm/js? 11:39
leont Got a short example of the crash at last
perl6-debug-m -e 'if 0 { }'
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 :)
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
timotimo nope, $ is the other direction; it'd prevent flattening 11:43
jnthn m: say (1, |(2, 3), 4).perl
camelia rakudo-moar 934893: OUTPUT«(1, 2, 3, 4)␤»
itz_ ah ok thanks
11:45 n0tjack joined 11:50 n0tjack left
itz_ S07++ 11:50
dalek kudo/nom: 17d7a17 | peschwa++ | / (2 files):
Ignore the gen/ directory directly.
11:55
kudo/nom: 92ef047 | peschwa++ | tools/build/Makefile- (2 files):
Adjust Makefiles for JVM and Moar.

With this Moar and JVM both place generated source files in gen/moar and gen/jvm respectively.
p: 1f46367 | jnthn++ | tools/build/MOAR_REVISION:
Bump to a MOAR_REVISION with various fixes.
psch ...i really hope it's platform agnostic enough, what i did with the Makefiles 11:56
although i guess it worked on jvm before
also one more build dep: creating gen/{moar,jvm}, which we previously didn't have because only jvm put stuff there
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 ;-)
dalek kudo/nom: f21f00b | peschwa++ | src/gen/README:
Remove placeholder README.

We're not putting anything generated there anymore, so we don't need the placeholder.
11:58
kudo/nom: 48e0037 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION to get updated MoarVM.

This brings in fixes to a nasty data race in MoarVM. While it had been there for a while, recent code-gen improvements made it more likely to show up. This should address the recent increase in crashes seen in multi-threaded programs.
11:59
psch hm, maybe i should've checked some git best-practices re: keeping gen folders around
jnthn psch: I normally shove a .gitignore inside of them
psch jnthn: right, that's what we had with gen/jvm - i opted to create them via the Makefile 12:00
jnthn: i'll defer to your judgement though, cause i'm pretty sure you have more git experience than me :)
FROGGS psch: on cu_load I've got again/still a BUILDALL infiniloop/SOE... how do you debug these things? gist.github.com/FROGGS/1fddec0c8c3ad5a86f29 12:05
(besides banging the head against walls and such)
dalek kudo/nom: 002dfca | peschwa++ | / (2 files):
Revert "Ignore the gen/ directory directly."

This reverts commit 17d7a17f83a86639fcc7590094854a56c16429f0.
kudo/nom: 3655638 | peschwa++ | / (3 files):
We're not ignoring gen/{moar,jvm}, so we don't need to create them.
jnthn psch: I'm OK with creating them in the Makefile too
psch jnthn: too late!
jnthn :)
jnthn ain't fussy
jnthn is hungry though
lunch & 12:06
psch FROGGS: oh, mostly banging, tbh
leont How can I install a package when not having panda around?
FROGGS psch: k
leont: copy it into site/lib
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
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>
camelia rakudo-moar 934893: OUTPUT«/home/camelia/rakudo-inst-2/share/perl6/site␤»
psch FROGGS: but in the end that didn't really help, iirc...
FROGGS psch: the problem vanished IIRC
psch FROGGS: yeah, but i think that's because a different bug had a proper stacktrace and fixed the SOE as fallout 12:08
FROGGS: i don't really remember exactly, though... :)
FROGGS: the fact that we still get a few of those SOEs speak for that 12:09
FROGGS: iirc it was the Attribute bug that you had that i fixed with the "don't compare SC" patch... 12:10
FROGGS yeah...
psch which i think you found only because you worked around the flat hllize bug...
timotimo what are some noteworthy things that have been done since the SPW? 12:11
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
timotimo: and the C++ merge 12:13
timotimo the c++ merge is already noted down, thanks :)
FROGGS timotimo: first serious improvements due to/after GLR
timotimo noted already
though i don't have very good examples 12:14
FROGGS well, Text::CSV
.lines and .words and such
timotimo that's now as fast as it was a couple of months before the GLR or what? :)
FROGGS faster
jnthn posted microbenchmarks that showed that 12:15
leont Doing that well is rather platform dependent, but really helpful for end users
timotimo oh
right, today's change hasn't made it into that gist yet
12:15 rindolf left
timotimo i meant T::CSV by "that", btw 12:15
12:15 [Coke] joined
FROGGS aye, 37s for the first time 12:16
12:16 kjs__ joined
timotimo and htmlify got quicker, too, right? 12:16
12:18 n0tjack joined
FROGGS I think so, yes 12:18
timotimo i only see the "before" value in the irclog 12:19
FROGGS Sep 13 21:48:36 <moritz>real13m11.531s 12:22
Sep 13 21:48:42 <moritz>used to be 21min. Wow.
timotimo: ^^
timotimo ah, there it is!
12:22 n0tjack left
timotimo no "htmlify" nearby, that's why it was so hard for me to find :) 12:22
itz_ if I have a var "our $foo" is there anyway of calling a ^method or similar to get the scope? 12:28
leont I'm trying to debug the debugger, this is confusing􏿽x85 12:30
12:30 larion joined 12:31 cschwenz joined
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
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)␤»
itz_ m: my $x = 42; say GLOBAL::<$x> 12:35
camelia rakudo-moar 365563: OUTPUT«(Any)␤»
andreoss why is it not Array[Z]?
itz_ m: our $x = 42; say GLOBAL::<$x>
camelia rakudo-moar 365563: OUTPUT«42␤»
12:37 El_Che left
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]␤»
leont I have an NQP match object, how can I debug anything about it? 12:38
FROGGS leont: can you .DUMP it?
ohh, dump probably
leont Cannot find method 'dump' 12:39
Same for DUMP
FROGGS NQPMatch has a dump method though... 12:40
leont Well, it's also complaining it doesn't have a from method, so I guess it's getting something else passed 12:41
12:42 st_iron left
FROGGS you can print is $obj.HOW.name($obj) 12:43
12:43 n0tjack joined
FROGGS its* 12:43
leont Ah! 12:44
timotimo visit_2d_indices_cross 57633/s 5370/s
1.0x 10.7x
something got slower!
leont It's getting an NQPArray instead of an NQPMatch
timotimo did anybody else experience a drastic improvement in performance just by switching to GLR?
leont It seems 1c76b58e5 is the cause of my issue 12:46
itz_ japh has a benchmark suite I think
timotimo i've run it; that's where that output came from
leont The debugger hasn't been updated to deal with it
12:47 Ven left
leont I think I can fix this 12:48
timotimo that's good news!
jnthn om nom nom
leont Will PR if tests succeed 12:49
timotimo bon appetit, jnthnom
jonathnom worthingnom
has the GMR already been included in nom?
12:50 hernanGOA joined
jnthn timotimo: I had a good appetite, but now I eated a plate of aloo dum and am quite full :) 12:50
timotimo: GMR hasn't yet, no
12:50 Psyche^ joined, itz_ left
jnthn timotimo: If you're doing the weekly you could mention the nasty data race I fixed and code-gen improvements :) 12:51
timotimo: What's the code of the benchmark that got slower?
[Coke] We have two months of Changelog going on. Please review and update. 12:53
12:53 TEttinger left
[Coke] Don't know if we need to be explicit on deprecations or just say "all". 12:53
12:55 Psyche^_ left, Ven joined
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.
timotimo jnthn: github.com/japhb/perl6-bench/blob/...ks.pl#L442
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.
timotimo let's use :=> for the "put the RHS into a scalar" thing; it looks a tiny bit like how we make object hashes
... and so it's exactly the wrong way around 13:00
dalek kudo/nom: e7b27c4 | leont++ | src/perl6-debug.nqp:
Handle new if statement definition

This updates the debugger to deal with the syntax tree as it is created after 1c76b58e5.
Without this commit, the debugger will die if your code contains any if statements.
kudo/nom: bdcccf0 | jnthn++ | src/perl6-debug.nqp:
Merge pull request #530 from Leont/debugger

Handle new if statement definition
timotimo pff, what kind of code contains if statements?
13:00 brrt joined
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.
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:00 rurban left
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!
nine jnthn: thanks for the review :)
jnthn timotimo: Gee, that range X range benchmark really is slow 13:04
13:05 thou joined 13:09 thou left 13:10 colomon left 13:12 colomon joined, brrt left 13:14 brrt joined 13:15 pat_js left 13:16 El_Che joined
[Coke] RT: 1,030 tickets, 10 testneeded, 9 [GLR] 13:17
13:17 brrt left
dalek pan style="color: #395be5">perl6-examples: 76af694 | paultcochrane++ | t/000-check-dependencies.t:
Summarise which dependencies are missing in check deps test
13:23
perl6-examples: cb245d9 | paultcochrane++ | t/categories/99-problems.t:
perl6-examples: [99probs] sort scripts to test
13:23 dalek left 13:24 dalek joined, ChanServ sets mode: +v dalek, telex left 13:26 khw joined, telex joined
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 :)
nine timotimo: is already a third faster than the version used in the benchmark
pmurias can I get a MoarVM commit bit or should I make a pull request on github? 13:27
jnthn pmurias: PR
m: say 1.84 / 2.17
camelia rakudo-moar bdcccf: OUTPUT«0.847926␤»
jnthn Well, found an easy 15% off it 13:28
Along with a semantic inconsistency
Need to spectest this first
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
pmurias jnthn: I made the PR 13:36
13:36 aborazmeh joined, aborazmeh left, aborazmeh joined
Ven twitter.com/mistydemeo/status/6418...5243102208 <- I really, really, really like we're actually using higher-order functions in Perl. 13:37
dalek kudo/nom: 831b7cb | jnthn++ | src/core/List.pm:
Make flat(...) consistent with .flat.

It now also returns a Seq, which means we don't end up storing any intermediate values - both a memory and speed improvement.
13:40
kudo/nom: aaa4363 | jnthn++ | src/core/List.pm:
Fix permutations.

This was the one victim in the spectests of the flat/.flat consistency fix.
13:40 brrt joined, rurban left
jnthn timotimo: found ^^ while looking into the benchmark you pointed out 13:40
13:41 rurban joined 13:42 hernanGOA left 13:44 hernanGOA joined, El_Che left
Ven didn't realize there was a difference between | and `flat` 13:47
well, no, that's wrong. I guess | is Slip, rather
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 *
TimToady brrt: yes, that was a booboo
timotimo will be afk for ~4h
13:51 laouji left, Ven left 13:52 brrt left, El_Che joined, Ven joined, laouji joined 13:53 aborazmeh left
jnthn infix:<X> is...interesting :) 13:57
nine And hasn't gotten much love since the initial GLR fixes
jnthn Yeah 13:58
jnthn is loving it now
Well, or trying :)
Ven TimToady: slurpy style for the one-arg rule?
nine Ven: the flatten a single iterable argument into the slurpy, except if it's itemized 13:59
pmurias how do I make nqp write moar bytecode? 14:00
nine pmurias: nqp --target=mast I believe 14:01
jnthn nqp --target=mbc --output=foo.moarvm
pmurias --target=mbc does it 14:02
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
jnthn timotimo: Do we want that?
oops
TimToady: ^^ 14:04
I'd thought the current *@foo semantics were the right ones, fwiw
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
*_ doesn't work though, if there's no sigil 14:05
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
jnthn yay, my patch survives spectest
m: say 0.83 / 1.84 14:08
camelia rakudo-moar bdcccf: OUTPUT«0.451087␤»
14:08 itz joined
jnthn m: say 0.83 / 2.17 14:08
camelia rakudo-moar bdcccf: OUTPUT«0.382488␤»
awwaiid cool
TimToady is that for X?
jnthn The first number is improvement of X
The second is improvement of X and flat 14:09
14:09 tokuhiro_ left
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
jnthn That's still slower than I want it to be, but it's a good start :)
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)
TimToady x is tooked 14:11
FROGGS ups
geekosaur (Y and W, then you can distinguish between flat/not flat and mammals/birds >.> )
TimToady well, zip used to be Y 14:12
dalek kudo/nom: e5c1df1 | jnthn++ | src/core/List.pm:
Various improvements to infix:<X>.

Remove various superstitious bits of code that worked around the way things were pre-GLR. Then make sure we .list the things we are going to work over. It turns out that if a Range were one of the arguments to infix:<X> then indexing it would be rather more expensive than if we had done .list on it in the first place.
14:13
14:14 Skarsnik joined, Sqirrel left, Sqirrel joined 14:15 pat_js joined 14:16 aindilis left 14:17 aindilis joined 14:18 thou joined 14:20 Ven left
pmurias is there a way to skip entires tests file on the moar backend? 14:22
FROGGS print "1..0\nReason"; exit 0; 14:23
or so
pmurias the test file doesn't compile
14:23 hernanGOA left, Sqirrel left
FROGGS eww 14:23
pmurias: then put it in a vm specific test directory
14:23 Sqirrel joined
FROGGS like t/js 14:23
pmurias t/not-moar ?
FROGGS O.o 14:24
pmurias: what is the test about?
pmurias FROGGS: it's an expanded version of test 84-loop-labels
14:24 Ven joined
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
FROGGS: yes
14:25 brrt joined
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:25
TimToady pmurias: maybe #?rakudo.js emit BEGIN exit 14:26
or some such
pmurias TimToady: it's in nqp
TimToady ah
14:27 hernanGOA joined 14:28 brrt left
grondilu m: say (1, 2) X+ (1 X* [1, 2]) 14:28
camelia rakudo-moar aaa436: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: Uninstantiable)␤»
nine jnthn: using list unpack in the benchmark instead of flat() will still shave off another 30 %. Runs in 0.688s here 14:29
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:30 pat_js left
jnthn nine: Interesting; I'd never considered unpacking too speedy :) 14:34
TimToady m: say (1, 2) X+ flat(1 X* [1,2])
camelia rakudo-moar aaa436: OUTPUT«(2 3 3 4)␤»
jnthn is looking into an optimizer "missed opportunity" that can get some wins across the board, but it's...non-trivial.
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
jnthn nine: Actually the next hotspot on the list seems to be multi-arg map...
14:35 skids joined
nine BooK: perl6 --target=ast 14:36
14:36 cschwenz joined
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
jnthn Juerd: no 14:37
BooK nine: that's more like B::Concise, yes
TimToady a deparser would be...interesting...
Juerd jnthn: Is something like that planned, or will this not happen any time soon?
BooK just make perl6 --target=perl6 work :-)
ugexe Juerd: cant you do that in the constructor?
timotimo sounds like something that just requires doing?
BooK alias perl6tidy='perl6 --target=perl6' 14:38
jnthn Juerd: Not planned; that's not how the scoping of where blocks in general works
Juerd ugexe: No, I have a constantly modifying tree, and I have to avoid that it becomes cyclic :)
jnthn: Too bad. Thanks for the info!
Might use a setter :(
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
pmurias I created issue #260 in MoarVM for that memory bug
jnthn nine: no, for @a -> $a, $b { } is
Juerd jnthn: It'd still be a setter in disguise :)
TimToady m: class A { has $.foo where { .say } }; A.new(:foo<bar>) 14:40
camelia rakudo-moar aaa436: OUTPUT«bar␤»
TimToady Juerd: how I undersood your question ^^
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 :)
timotimo he wants the instance of the class that owns the attribute 14:41
14:41 _mg_ left
diakopter m: class A { has $.foo where { .say } }; A.new(:foo<0>) 14:41
camelia rakudo-moar aaa436: OUTPUT«0␤»
FROGGS hey diakopter
Juerd TimToady: I know it can access the newly assigned value. But I want to check that against existing attributes.
TimToady: class Foo { has Foo $.child where { not-cyclic(self, $_) } } 14:42
14:42 aindilis left
Juerd Easily solved with a setter, so I should probably just use that :) 14:43
14:43 aindilis joined
timotimo hmmm 14:43
diakopter m: class A { has $.foo where { .say } }; A.new(:foo<<>>)
camelia rakudo-moar aaa436: OUTPUT«()␤»
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.
(It's valid syntax, though. Is that a bug?)
timotimo and then check against that?
Juerd s/It's valid syntax/It compiles/
timotimo it might blow up upon the first type check
dalek c: 9fe36fd | skids++ | lib/Language/subscripts.pod:
Complete the post-glr slice truncation section
Ven m: say "to".chars>>.succ.join 14:45
camelia rakudo-moar aaa436: OUTPUT«3␤»
Juerd timotimo: What does 'parameterize the type with the instance' mean?
ugexe role foo { has $.a is <some requirements>; } class bar { foo $.x } probably 14:47
timotimo nah 14:48
jnthn Ven: .comb, not .chars
timotimo role Uniquity[%values] { ... }
Ven jnthn: whoops. cargo-culting..
m: say "to".comb>>.succ.join
camelia rakudo-moar aaa436: OUTPUT«up␤»
14:48 n0tjack left
timotimo now do it with HAL 14:49
jnthn, thanks for taking a look 14:52
does this also entail changing the test itself to align with glr semantics like nine suggested?
14:52 kjs__ left
timotimo annoyingly i cannot kick off a new run from my phone alone... 14:53
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
timotimo does it work properly before glr?
14:55 kjs__ joined
jnthn Think unpacking one? Believe so 14:55
timotimo i have wondered if we could get some benchmarks reporting onto the same graph
Ven starts debugging post-GLR breakages in his little scripts... 14:56
timotimo anyway, that can be done
i will be AFP for two hours in a few minutes
14:57 cognominal left
timotimo jnthn, did you also see the qast dump where only the innermost operation got inlined? 14:57
1é26 my local time 14:58
14:58 laouji left
timotimo 3 hours ago 14:58
jnthn timotimo: Didn't get to looking at that yet
timotimo 1326
jnthn So...many...things...
timotimo hehe
sorry
afp
Ven obviously, `(1, 2 X 3, 4).map: { $^x + $^y }` broke post-glr...
14:59 laouji joined
zostay the P6SGI discussion is getting lively.... we must remember that Perl6 is not Perl5 :) 15:00
rurban SGI?
zostay standard gateway interface
Ven m: say ((1, 2, 3) (-) 1).perl
camelia rakudo-moar e5c1df: OUTPUT«set(3,2)␤» 15:01
zostay like CGI, but 30 years better
Ven m: say (((1, 2), (3, 4), (5, 6)) (-) (1,2)).perl
camelia rakudo-moar e5c1df: OUTPUT«set(5,4,3,6)␤»
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?
zostay yes, but not really
BooK Ven: what does (-) do ?
Ven BooK: set intersection
zostay PSGI is synchronouish, but P6SGI is async 15:03
TimToady set difference
Ven er, yes. difference. uhm.
intersection would be (|), I guess
15:03 laouji left
eiro BooK++ 15:04
oops... wrong chan. hello everyone
BooK ∆ is probably more readable, if not either to type :-) 15:05
also, wrong operator 15:06
itz odd I'm getting intermittent failures with prove -e perl6
awwaiid zostay: I thought it was async in the streaming case, but pretty identical for the normal case (or at least indistinguishable)?
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?
rurban blogs.perl.org/users/sterling_hanen...ation.html probably
awwaiid cool
hoelzro o/ #perl6 15:08
Ven \o hoelzro
TimToady m: say (((1, 2), (3, 4), (5, 6)) ∖ (1,2)).perl
camelia rakudo-moar e5c1df: OUTPUT«set(5,4,3,6)␤» 15:09
15:09 tokuhiro_ joined 15:10 Ven left
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
BooK realizes that the things arount the set operators are lists, and they are turned into sets for doing the set operation 15:12
operator-rich languages for the win :-)
also ∖ is not \ # naughty 15:13
15:14 tokuhiro_ left
hoelzro o/ Ven 15:14
15:14 Ven joined, larion left
TimToady fortunately there's no infix:<\> to confuse it with 15:15
leont Surely that could be used as a namespace operator! ;-)
TimToady PHPHPHPTHTHT! 15:16
jnthn Yeah...Windows users will love it! :P
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
flussence only the ascii one
(I wonder if there's some compose-key thing for the unicode one though, I can already type ≠ easily enough...) 15:19
15:21 pat_js joined
[Coke] RT #126049 is new. tagged it [GLR] 15:22
leont flussence: you can add your own compose-key thingies, I think 15:23
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
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
BooK also, copy-paste! 15:27
15:27 dayangkun joined
BooK I've seen people copy-paste accented letters when they had an ascii-only keyboard/keymap 15:27
although, most give up pretty quick
15:27 dayangkun left
flussence oh, I typed `man compose` absent-mindedly and it gave me exactly what I wanted... 15:29
15:29 dayangkun joined 15:30 diana_olhovik_ left
TimToady eeks, got run-mailcap instead 15:30
flussence `man 5 compose` to be precise :)
15:30 dayangkun left, dayangkun joined 15:31 dayangkun left
TimToady last time I tried, that stuff fought with my Japanese input method 15:31
dalek c: b628b18 | skids++ | lib/Type/Parameter.pod:
Attempt to fix some links based on what a working link did.
15:32
15:32 dayangkun joined
15:32 abaugher left, dayangkun left
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
15:33 dayangkun joined
jnthn m: say 0.72 / 0.83 15:33
camelia rakudo-moar e5c1df: OUTPUT«0.867470␤»
15:34 dayangkun left, dayangkun joined, abaugher joined 15:35 dayangkun left, dayangkun joined
jnthn crosses fingers, runs spectest 15:36
15:36 dayangkun left, dayangkun joined
Ven
.oO( is that jnthn++'s secret to good code? Crossed fingers to code? )
15:37
15:37 zakharyas left, dayangkun left
Ven .o( I guess if you're nordic, and used to coding with mittens, crossed fingers are an actual improvement... *g* ) 15:37
leont I think I'm running afoul with the longest token matcher :-s 15:38
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:39
It doesn't seem to try other "alternations" 15:40
jnthn The LTM-er should just decide an ordering to try the feasible ones
BooK does panda honor http_proxy and https_proxy environment variables?
dalek Heuristic branch merge: pushed 17 commits to rakudo/nom by FROGGS 15:41
skids leont: RT#125374 maybe?
jnthn wonders what FROGGS++ just merged :)
dalek line-Perl5/glr: 2a11020 | FROGGS++ | lib/Inline/Perl5.pm6:
register module loader using CompUnitRepo

This change will be needed *after* the `cu_load` branch has been merged. Do not merge before this point.
line-Perl5/glr: e0901ba | FROGGS++ | lib/Inline/Perl5.pm6:
Merge pull request #42 from FROGGS/patch-2

register module loader using CompUnitRepo
FROGGS jnthn: the cu_load branch
jnthn FROGGS: One-sentence summary of what it does? :)
dalek ast: 621b348 | (Stefan Seifert)++ | S32-list/classify.t:
Test that .classify evaluates &test only once for each item

RT #126032
15:42
kudo/nom: b4a9f56 | (Stefan Seifert)++ | src/core/ (2 files):
Fix .classify assuming side effects

We now make sure to only evaluate &test once for each element of the input list. Fixes RT #126032
This new implementation takes an Iterable instead of a List giving a speedup of 15 % for (1..500000).classify(* % 5)
15:42 xinming joined
FROGGS jnthn: when we load a module in user space it does that via CompUnit.load
nine jnthn: the first catch of the day :)
jnthn nine++
FROGGS++
FROGGS jnthn: no Perl6::ModuleLoader involved anymore... well, except for merge_globals which jvm did not like
nine I love bug fixes that give speedups as a bonus :)
leont skids: that looks useful, will try 15:43
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
FROGGS grrr
nine: thanks for telling me :o)
nine FROGGS: no g_l_r ;)
FROGGS doing it right now
jnthn m: say 4061 / 4163 15:45
camelia rakudo-moar e5c1df: OUTPUT«0.975498␤»
jnthn Another 2.5% off Test::CSV
dalek line-Perl5: 88513e7 | FROGGS++ | lib/Inline/Perl5.pm6:
register module loader using CompUnitRepo

This change will be needed *after* the `cu_load` branch has been merged. Do not merge before this point.
FROGGS there we go
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:46
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
yoleaux FROGGS: I'll pass your message to lizmat.
dalek kudo/nom: 7e265b6 | jnthn++ | src/Perl6/Optimizer.nqp:
Perform the immediate block inlining more often.

Previously, dynamic compilation meant we didn't do it as we might mess up closures taking at BEGIN time. However, that was overly pessimistic. We can in fact perform the optimization provided no possible closures exist to have been taken at BEGIN time. Improves quality of code in CORE.setting a good bit, knocking 4 GC runs and 2.5% of the runtime off Text::CSV, for example.
15:48
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?
FROGGS well, you specified the runtime percentage wise at least :o)
Skarsnik: using Inline::Perl6, yes
nine Skarsnik: metacpan.org/pod/Inline::Perl6 15:50
15:50 domidumont left, pat_js left
nine Oh my .classify speedup is even 21 %. I accidentally included the .perl in my measurements 15:51
15:52 mprelude left
FROGGS .oO( Ohh, my academic paper isn't 500 pages... I accidently included my cat... ) 15:53
Skarsnik Ok, thanks you x)
jnthn FROGGS: The number of GC runs less was absolute, though :) 15:55
m: say 48 / 52
camelia rakudo-moar e5c1df: OUTPUT«0.923077␤»
jnthn 8% less or so :) 15:56
FROGGS *g*
[Coke] ponders tagging RTs that we know are post 6.0 instead of / in addition to those that are definitely < 6.0
[Coke] imagines it's probably a lot of churn for little benefit. 15:57
15:57 Ven left
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: rt.perl.org/Ticket/Display.html?id=71544 look closable to you?
CQ: right now the pre-6.0 list is: 15:58
rt.perl.org/Ticket/Display.html?id=123766
FROGGS [Coke]: 71544 looks good, yes
jnthn [Coke]: Believe so. 16:00
16:00 FROGGS left, FROGGS[mobile] joined
[Coke] closing... 16:00
16:00 CQ left
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.
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:02
[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?
[Coke] skids - need email address you use on RT. 16:05
dalek pan style="color: #395be5">perl6-examples: 18afa95 | (Steve Mynott)++ | / (4 files):
fix for GLR 4 tests more tests from 99probs
16:07
16:11 tokuhiro_ joined 16:15 tokuhiro_ left
ugexe FROGGS[mobile]: note the two `elsif $file {` github.com/rakudo/rakudo/blob/nom/...pm#L77-L83 16:19
FROGGS[mobile] ugexe: ohh ups... probably happened when merging branches 16:21
16:21 rindolf joined
FROGGS[mobile] I think the first elsif needs to go 16:21
ugexe or elsif $file.IO.e 16:22
dalek pan style="color: #395be5">perl6-examples: f337686 | (Steve Mynott)++ | t/000-check-dependencies.t:
order deps alphabetically
pan style="color: #395be5">perl6-examples: af42e9b | (Steve Mynott)++ | / (3 files):
add new deps
16:23 xfix left
FROGGS[mobile] no, I think .candidates will handle that 16:23
I mean CURLF would 16:24
or, hmmmm
maybe you are right 16:25
dalek pan style="color: #395be5">perl6-examples: 7f8834e | (Steve Mynott)++ | / (4 files):
correct dep name to Web
pan style="color: #395be5">perl6-examples: 72ceb8d | (Steve Mynott)++ | htmlify.pl:
revert debugging commit :/
16:26
16:27 dha joined, dha left, dha joined, andreoss left
jnthn m: say 0.58 / 0.72 16:30
camelia rakudo-moar 7e265b: OUTPUT«0.805556␤»
jnthn m: say 0.58 / 2.17 16:31
camelia rakudo-moar 7e265b: OUTPUT«0.267281␤»
16:31 larion joined, alpha- joined
alpha- hello 16:31
jnthn Yay, got that bad benchmark timotimo++ reported down to about a quarter of what it was. :) 16:32
hello, alpha-
alpha- are there any plans for perl6 browser integration? eg. <script type='text/perl6'>...</script>
jnthn I've not heard about anyone working on that; closest I'm aware of is ongoing work on Perl 6 -> JavaScript compilation 16:34
alpha- I see, thanks 16:35
pink_mist what does that entail? perl6 --target=js or something?
16:36 xfix joined
[Coke] pink_mist: doesn't exist yet. 16:37
16:37 cognominal joined, kjs__ left
[Coke] work is being done on nqp to target node.js 16:37
once that's in place, then work can be done to get a perl6-js compiler.
(much like today there is a perl6-j and a perl6-m)
dalek kudo/nom: 57a7f6a | jnthn++ | src/core/Iterable.pm:
Optimize .flat somewhat.

This cuts a further 20% off "for 1..100 X 1..100 { }".
jnthn oops 16:38
Of "for flat 1..100 X 1..100 -> $i, $j { }" is what I shoulda said...
Still plenty more to squeeze out of it, but I think that's a nice bunch of improvements for now :) 16:40
16:42 kjs__ joined 16:43 kjs__ left, itz left 16:44 perl6_newbee joined
dha Ok, wrote up some docs for C<state>. Thoughts? gist.github.com/dha/8009c28d7bf2d1ca8875 16:46
16:47 abraxxa left
dha Also, I note that code blocks are being rendered oddly by perl6 --doc. First line is outdented by one character. 16:47
16:47 yqt joined 16:48 pmurias left, yqt left
flussence m: say " " ~ ('foo', 'bar') 16:50
camelia rakudo-moar 7e265b: OUTPUT« foo bar␤»
flussence probably that space. 16:51
(leaking in at Pod::To::Text line 40)
16:51 larion left
dha Ok. Well *I'm* not going to try to fix that. :-) 16:51
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
masak just want to check: has anyone else with a Perl blog received an email from guru99? 17:05
tadzik nope
arnsholt Doesn't look like it, no
masak ok, just want to make sure how widely they're targeting. thanks. 17:06
17:07 perl6_newbee left, telex left 17:08 telex joined 17:10 dakkar left 17:12 kjs__ joined 17:14 diana_olhovik_ joined 17:15 larion joined
|Tux| masak, DPW (NLPW) has 17:18
and he got quite a negative reaction for the shit his website contained
of course we denied his request 17:19
nine Now I'm becoming curious...
|Tux| 👏 👏 👏 👏 17:21
test 50000 36.525 36.446
test-t 50000 36.905 36.826
|Tux| off to badminton 17:22
[Coke] dha++ state docs. 17:26
dha Do they look ok?
[Coke] masak: yes, I've gotten guru99 emails.
hence the upvote, yes.
ship it. :) 17:27
dha Heh. Ok.
[Coke] oh! no, I just have linkedin mails that include guru99
linkedin--
leont Got it the same way |Tux| did, my review of his content had little mercy􏿽x85 17:29
hernanGOA o/ 17:30
[Coke] Their inconsistent use of PERL vs. Perl is grating right off the bat.
leont Their lack of use strict isn't any better 17:31
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.
I'm not reading any more of this. My blood pressure's probably high enough. 17:33
jercos funny, I see the exact same phrase on a fair number of sites... 17:34
with the same outline 17:35
I wonder who's copying and pasting from whom?
tony-o is there a gist or a link somewhere?
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?
ab5tract jercos: including the broken grammar?
tony-o .tell japhb because the META.json was broken 17:36
yoleaux tony-o: I'll pass your message to japhb.
leont Not Panda-visible? I thought Panda was using JSON::Faster 17:37
ab5tract dha: I like the `state` docs very much 17:38
dha thanks!
ab5tract leont: JSON::Fast, apparently 17:39
dalek ast: eaaec7a | (Stefan Seifert)++ | S16-filehandles/io.t:
Test if .lines() really is lazy (RT #112716)
dha Ok, I'm committing
jercos ab5tract: indeed.
ab5tract dha: I feel a bit like there could be a bit of discussion about `perl6 -ne`
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. :-)
ab5tract s/you state/you mention/; # unintended pun
dha Ha! ;-) 17:41
ab5tract dha: Yeah, not a blocker for immediate pushing, that's for sure.
dha ok. I'll toss it in, and we can add later if necessary.
ab5tract I finally learned why one would choose to use $ vs $_
:)
17:42 domidumont joined
leont Just made the mistake of looking at the php section of the same site -_- 17:42
17:44 diana_olhovik_ left, muraiki joined
dalek c: 87b2b50 | (David H. Adler)++ | lib/Language/variables.pod:
Added doc for C<state> to lib/Language/variables.pod
17:45
dha Ta. And also, da.
17:50 rurban left 17:52 spider-mario joined
masak |Tux|, [Coke]: thanks. that's what I suspected. 17:52
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
camelia rakudo-moar 57a7f6: OUTPUT«Method 'pull-one' not found for invocant of class 'List'␤ in block <unit> at /tmp/gGFH4ZNHOt:1␤␤»
nine oooops
m: 1 X 1 X 1 17:54
camelia ( no output )
nine Is it possible that we don't have any spec test for n-dimentional X with n > 3? 17:55
jnthn Apparently :)
.u �
yoleaux U+FFFD REPLACEMENT CHARACTER [So] (�)
flussence m: say 1 ZXZZX 1
camelia rakudo-moar 57a7f6: OUTPUT«((((((1 1))))))␤»
ab5tract :O
nine what the? 17:56
flussence b: say 1 ZXZZX 1 # wonder if this still works...
guess not :)
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)
grondilu was a bit concerned about the verbosity of adding flat everywhere after GLR
17:57 domidumont left
grondilu m: .say for 1, 2, |map &cos, ^10; 17:59
camelia rakudo-moar 57a7f6: OUTPUT«1␤2␤1␤0.54030230586814␤-0.416146836547142␤-0.989992496600445␤-0.653643620863612␤0.283662185463226␤0.960170286650366␤0.753902254343305␤-0.145500033808614␤-0.911130261884677␤»
grondilu that looks cool
17:59 domidumont joined 18:00 ssqq joined
grondilu however the example in S07 suggest to put | inside the closure given to map. Not sure if it matters that much. 18:00
TimToady that's only if map is returning more than one thing at a time 18:01
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)␤»
jnthn m: .say for 1, 2, |map { |($++, $_) }, <a b c d>
camelia rakudo-moar 57a7f6: OUTPUT«1␤2␤0␤a␤1␤b␤2␤c␤3␤d␤»
jnthn Vive la difference
Or however French works
vendethiel différence :)
TimToady
.oO(those French, they always have to be different...)
jnthn That's acute correction... :P 18:03
18:03 ssqq left
TimToady mark his words 18:03
vendethiel *g*
dalek ecs: 3373e72 | (Lucien Grondin)++ | S07-lists.pod:
fix typo
18:04
18:05 kjs__ left
nine Why do I always get suspicious when my first attempt at fixing seems to work? 18:05
18:06 kjs__ joined
dha I'm now glad I put all those TODOs into the docs. we seem to have cleared 5 of them. 18:06
18:07 patrickz joined
nine RT #114918 contains a benchmark that apparently took 146 seconds in 2012. It now completes in 8 seconds on my machine. 18:08
jnthn Much wow :) 18:11
m: say 8/146
camelia rakudo-moar 57a7f6: OUTPUT«0.054795␤»
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
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
18:15 pippo joined
pippo o/ #perl6 18:15
grondilu skids: tell me about it : www.perlmonks.org/index.pl/?node_id=1004081 18:16
pippo m: say grep-index(<a b c d>, /a/);
camelia rakudo-moar 57a7f6: OUTPUT«(0)␤»
pippo m: say grep-index(<a b c d>, /b/);
camelia rakudo-moar 57a7f6: OUTPUT«(0)␤»
pippo m: say grep-index(<a b c d>, /c/);
camelia rakudo-moar 57a7f6: OUTPUT«(0)␤»
pippo m: say grep-index(<a b c d>, 'c');
camelia rakudo-moar 57a7f6: OUTPUT«(0)␤»
18:16 tokuhiro_ left
pippo m: say grep-index(<a b c d>, 'c')[^10]; 18:17
camelia rakudo-moar 57a7f6: OUTPUT«(0)␤»
pippo my @a = <a b c d>; say grep-index(@a, /c/); 18:18
m: my @a = <a b c d>; say grep-index(@a, /c/);
camelia rakudo-moar 57a7f6: OUTPUT«()␤»
cognominal mock the French but fruity american "think different ™ "
pippo m: my @a = <a b c d>; say grep-index(|@a, /c/);
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␤()␤»
skids pippo: GLR has not gotten around to figuring out what sub forms flatten yet.
m: say <a b c d>.grep-index(/c/) 18:19
camelia rakudo-moar 57a7f6: OUTPUT«(2)␤»
pippo skids: Thank you very much!
18:19 lizmat joined, yqt joined 18:21 FROGGS joined 18:22 kjs__ left
TimToady m: say grep-index(/a/, <a b c d>) 18:22
camelia rakudo-moar 57a7f6: OUTPUT«(0)␤»
TimToady m: say grep-index(/b/, <a b c d>)
camelia rakudo-moar 57a7f6: OUTPUT«(1)␤»
TimToady helps to have the args in the right order too 18:23
but yeah, we need to audit all the * slurpies to see which ones still make sense
18:23 tokuhiro_ joined
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␤␤»
TimToady related to that problem too 18:25
skids IIRC grep-index got changed but none of its relatives did, for some reason.
TimToady I changed a bunch of them to **, and things blew up real fast
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 gist.github.com/skids/4f6ff2e1c1e3b6855773 # old gist that got me most of the way there on things other than map()
dalek ast: 6bda03d | (Stefan Seifert)++ | S03-metaops/cross.t:
Test X with more than 3 dimensions and with lazy secondaries
kudo/nom: 57340b4 | (Stefan Seifert)++ | src/core/List.pm:
Fix X with more than 3 dimensions
kudo/nom: 56634c5 | (Stefan Seifert)++ | src/core/List.pm:
Fix X with lazy second argument
TimToady after thinking about that all weekend off and on, I've been leaning toward using *|args for one-arg binding
18:28 tokuhiro_ left
pippo TimToady: Yes it helps. TY. 18:29
skids Would there also be a "one-arg-plus-array-slurpy"? Or just stick with two candidates? 18:31
TimToady don't understand the question... 18:32
timotimo o/ 18:33
jnthn: you got the "10x as long as before glr" to "1/4th of 10x as long"? so basically "2.5x as long"?
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?
TimToady *|args would replece **@args 18:34
*place
skids Ah. Ok. It didn't look arrayish is all.
TimToady that's the non-caching form, we'd also maybe allow *|@args to cache it 18:35
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␤»
nine TimToady: is this correct? ^^^
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
lizmat FROGGS: will do
skids TimToady: that makes sense. 18:39
dha hi lizmat 18:40
[Coke] TimToady: are you proposing that go in the september release?
lizmat TimToady++ # *|args to automatically make 1 arg rule part of the language
dha o/ 18:41
moritz m: constant @t = [\+] (0..5); say @t Z^.. @t[1..*]).perl;
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;␤»
moritz m: constant @t = [\+] (0..5); say (@t Z^.. @t[1..*]).perl;
camelia rakudo-moar 57a7f6: OUTPUT«(0^..1, 1^..3, 3^..6, 6^..10, 10^..15).Seq␤»
moritz nine: both look correct to me 18:42
nine moritz: ok, then that's another ticket we can close :)
18:43 aindilis left, aindilis joined
dha Oh, I should take C<state> out of WANTED 18:44
lizmat left a comment with gist.github.com/dha/8009c28d7bf2d1ca8875
moritz broke twitter
dha ah.
TimToady [Coke]: yes, but won't break anything
18:45 smls joined
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>;
camelia rakudo-moar 57a7f6: OUTPUT«「Copy」␤[「files」 「folders」]␤()␤»
smls ^^ weird issue with X
TimToady skids: I mean, you'd use *| in the same spot you'd use **, not that it replaces it in the language
smls used to work pre-GLR
skids (Perl6... where you have reasons other than a language barrier to feel stupid about not understanding discreet mathemeticians.)
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.
smls m: say 4 X [5, 6]
camelia rakudo-moar 57a7f6: OUTPUT«((4 5) (4 6))␤»
dalek c: a0163f7 | (David H. Adler)++ | WANTED:
removed C<state> from WANTED
18:47
TimToady dha: more like it's an implict 'my' in the outer lexical scope
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
that's a bug, right?
timotimo is currently building a newer rakudo for the benchmark run 18:49
smls s/empty list/empty Seq/
dha TimToady - I will happily let people make that clear if they think it's necessary. :-)
dalek kudo/nom: a9407ef | FROGGS++ | src/core/CompUnitRepo.pm:
fix handling of filename in require/use, ugexe++
18:50
kudo/nom: 694cebf | FROGGS++ | src/core/CompUnitRepo.pm:
include @*INC in error message of failed use/require
18:51 khw left
nine What do I do with a ticket like this? 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
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.
smls yeah, I see that now 18:53
It's just that $<verb> looks very much like an item
and pre-GLR, X treated it that way
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?
timotimo oh?
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
masak (and so did |Tux| and [Coke], it seems) 18:56
18:57 telex left 18:58 telex joined
[Coke] masak: turns out that was linked in spam that contained guru99 links. 18:58
18:58 kjs__ joined
masak [Coke]: what was linked in spam that contained guru99 links? 18:59
moritz nine: close it
nine moritz: done 19:00
cdc m: say ++$ for ^2 19:01
camelia rakudo-moar 56634c: OUTPUT«1␤2␤»
cdc m: say ++$; say ++$
camelia rakudo-moar 56634c: OUTPUT«1␤1␤»
moritz nine++ # ten now :-)
masak moritz: here's his email and my reply. gist.github.com/masak/d967a1749a44f85e6d29
I tried to stay polite, but still get the point across that his course is very, very bad.
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?
[Coke] sees +is 1/128, (1/128).perl.EVAL, '(1/128).perl.EVAL round trips with sufficient accuracy'; 19:03
and wonders, isn't there an is-idemp-mumble function?
cdc: state variables need a sub.
bare $ is implicitly a state var.
19:03 telex left
[Coke] m: my $a; say ++$a; say ++$a; 19:04
camelia rakudo-moar 56634c: OUTPUT«1␤2␤»
masak I don't think state variables need a sub.
19:04 telex joined
masak m: say ++$ for ^5 19:04
camelia rakudo-moar 56634c: OUTPUT«1␤2␤3␤4␤5␤»
TimToady anonymous variables are always considered unique
19:04 telex left
masak m: say ++(state $) for ^5 19:04
camelia rakudo-moar 56634c: OUTPUT«1␤2␤3␤4␤5␤» 19:05
masak look ma, no sub
[Coke] masak, TimToady: I stand corrected.
cdc m: { say ++$; say ++$ } for ^5
camelia rakudo-moar 56634c: OUTPUT«1␤1␤2␤2␤3␤3␤4␤4␤5␤5␤»
19:05 darutoko left
masak m: say ++$ andthen say ++$ for ^5 19:05
camelia rakudo-moar 56634c: OUTPUT«1␤1␤2␤2␤3␤3␤4␤4␤5␤5␤»
lizmat cdc: that creates 2 unnamed state variables
cdc ohh 19:06
TimToady cdc: that's just like saying ++(state $foo), ++(state $bar)
[Coke] wonders where his brain damage there came from. huh.
19:06 telex joined
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␤»
[Coke] blames $dayjob, a convenient scapegoat.
cdc ok, thanks! :)
lizmat [Coke]: scapegoat accepted :-)
masak I find there are often a lot of confusion around the term "anonymous".
19:07 khw left
masak for example, people tend to interchangeably use "lambda", "closure", and "anonymous function". 19:07
skids masak: there's probably a name for that. :-) 19:08
timotimo lomsure
cdc dha: maybe this point irclog.perlgeek.de/perl6/2015-09-14#i_11216761 should be added to your gist.
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?
timotimo masak: more like a non-ymous sub?
masak it's funny that we are so attached to the idea that functions must have a name, at least by default.
moritz and they don't even need to be closures, in the stricter sense
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
have fun with that! :)
dha Hm.
moritz just imagine you growing up, and your parents didn't even bother to give you a name
masak timotimo: you mean like Rakudo in 2008? :P
cdc .oO( where the streets have no name )
moritz we should care more for our subs.
timotimo visit_2d_indices_cross 57633/s 26543/s 5370/s 19:10
1.0x 2.2x 10.7x
19:10 FROGGS[mobile] left
timotimo ugh, so unreadable 19:10
dalek kudo/nom: 65d33be | lizmat++ | src/core/IO/Path.pm:
Make "foo".IO.lines/words($limit) work
masak just some anonymous statistics :P
dha Actually, I think the last example I give does use C<$> outside a sub. So I could certainly mention that. Thanks.
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
raiph dha: commented on your state var gist
pink_mist timotimo: so it's middle-endian sorted? :P 19:12
timotimo you may like this one:
raiph dha: ah, looks like you're covering the same ground here on #perl6
timotimo while_push_join 81485/s 447675/s 435981/s
5.5x 1.0x 1.0x
pink_mist: indeed!
19:12 khw joined
jnthn timotimo: ooh, 5.5x faster than pre-GLR, iiuc? 19:13
19:13 telex left
timotimo no 19:13
oh
yes, you are right
i'd have written "used to take 5.5x longer"
on the other hand, almost all "for_" microbenchmarks are between 2.5x and 8.5x slower now compared to before GLR 19:14
19:14 telex joined
timotimo most probably it's not doing the for-to-loop optimization correctly 19:14
jnthn If they use ranges, then yeah, probably that 19:15
timotimo uh
the ast for that looks really weird
extremely different compared to what it used to be in any case 19:16
creates a for-list_* local var and binds to that
github.com/japhb/perl6-bench/blob/...ks.pl#L143 - this one has slowed down by a factor of 2.2 19:17
19:17 colomon left
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
ah
19:18 larion left, dwarring joined
timotimo nine: now all i've got to do is teach the optimizer about this new layout again :P 19:18
jnthn rt.perl.org/Ticket/Display.html?id=125978 seems stable locally
Perhaps thanks to my invocation race fixes
nine timotimo: github.com/rakudo/rakudo/commit/7aee0acfd 19:19
jnthn cdc: Maybe you could test ^^ on latest
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)
jnthn lizmat: nice :)
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 kjs__ left, khw left
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
19:20 telex left
dha raiph - yes, some of your concerns are being discussed. :-) 19:20
19:21 telex joined
jnthn timotimo: Yes :D 19:21
cdc jnthn: OK, I'll give it a try. Thanks!
masak jnthn: you fixed the closure thing? good going! 19:22
jnthn++
19:24 domidumont left
jnthn 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
19:25 tokuhiro_ joined 19:26 braintwist joined
lizmat looking at IO::Handle.lines, and "nqp::p6box_s(nqp::readlinefh($!PIO)).chomp" 19:27
this is what pull-one returns. I wonder whether the boxing is necessary...
19:28 khw joined
timotimo to call .chomp on it, surely it'd be necessary? 19:28
FROGGS to call a method, yes, I think so
lizmat ah, ok
braintwist hi
timotimo nine: do you have a better idea, ooc?
FROGGS hi braintwist
lizmat but the case without chomp also does a box
braintwist I was wondering about where I can read about variables built-in in perl6
FROGGS lizmat: and that boxed thing will be returned?
braintwist such as $*DISTRO and $*USER 19:29
jnthn lizmat: If you don't put it in then the . will force it anyway
lizmat yeah, by pull-one
braintwist to see what options they have
nine This is a curious one:
lizmat now, if it is not cached, it doesn't need to be boxed, I would think
nine m: [("a", "b"), ("a", "b")] >>,<< |<a a>;
braintwist like $*DISTRO.name
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 telex left
nine Is this really a bug? ^^^ 19:29
19:29 telex joined 19:30 tokuhiro_ left
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
in that case we may want to give a more helpful error message 19:31
i.e. point out that we're recursively into the hyper
rather than at the outermost level
perhaps it'd even be enough to say "non-dwimmy recursive hyperop"?
though mentioning its recursiveness like that seems to point out there's non-recursive hyperops, too 19:32
which isn't false
FROGGS braintwist: design.perl6.org/S28.html#SPECIAL_V...E_IN_DEPTH
braintwist FROGGS: thanks I will look at that :D 19:33
19:33 smls left
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
jnthn lizmat: True. :) 19:35
timotimo braintwist: you can grab methods via .^methods
lizmat especially in a situation with for ....lines -> $line { .... }
jnthn Though note it's .chomp that forces the boxing here
braintwist timotimo: I am a little new :D
timotimo don't worry
jnthn lizmat: I've been podering adding an nqp op that gives you back something already chump
timotimo m: say "hello".^methods
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 …»
lizmat jnthn: that's just because we don't have an nqp::chomp :-( 19:36
jnthn lizmat: Nor should we
lizmat because ?
19:36 telex left
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:36
19:36 rindolf left 19:37 telex joined
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
19:37 ][Sno][ joined
lizmat afaik, yes... 19:37
jnthn But if we get that bit right then we can nqp::readlinechompfh($!PIO) 19:38
And we done
lizmat yup 19:39
19:39 [Sno] left
dha Ok, have updated the C<state> docs to address the issues noted. Anything else? gist.github.com/dha/8009c28d7bf2d1ca8875 19:39
jdv79 zostay: IO::Socket::INET seems a bit too specific 19:40
.tell zostay IO::Socket::INET seems a bit too specific
yoleaux jdv79: I'll pass your message to zostay.
ab5tract dha: it might be more fun to do ++$ and $++
19:41 rindolf joined
ab5tract but these are things I can also push changes to 19:41
dha Yes, yes it might. :-)
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
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)␤»
FROGGS braintwist: ^^
[Coke] t/spec/S32-io/pipe.t - Failed tests: 11-13
ab5tract dha: do it!
FROGGS [Coke]: yes, known
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`
timotimo haha
does it give you dynamic variables, too?
[Coke] FROGGS: then we should fudge them and open a ticket, non?
timotimo i don't know if there's a way to introspect dynamic variables
FROGGS [Coke]: I dunno how to fix it yet, and what the result is that we want
flussence timotimo: looks like it doesn't :( 19:43
FROGGS [Coke]: I'd prefer a fix tbh
dalek c: 5ef883b | (David H. Adler)++ | lib/Language/variables.pod:
Revised C<state> docs to reflect #perl6 comments
raiph dha: it seems you've only addressed 1 of the 3 points I made in my earlier comment to your gist
lizmat commute to room&
dha That is possible. :-/
19:43 lizmat left
[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.
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:45 telex left 19:46 telex joined
nine timotimo: do not assume that I knew what I did there. 19:46
timotimo :D
can you fix it and see if it breaks things?
dalek kudo/nom: 99ee82c | (Stefan Seifert)++ | src/core/ (2 files):
Point out HYPER's recursive behavior in NonDWIM message if relevant
FROGGS nine: you can't use that excuse any longer :o)
dha "I go where I will and I do what I can" :-)
masak dha++ # documenting
dha I need to see that movie again.
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:47
19:48 lizmat joined
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
dha: hmm, but maybe it is, hmm
dha Right. I'm trying to remember where I got that from.
timotimo you mean in (1, 2, $, 5)?
m: say (1, 2, $, 5)[2]
camelia rakudo-moar 694ceb: OUTPUT«(Any)␤»
dha timotimo - I think that's what we're talking about.
timotimo m: say (1, 2, $, 5)[2].VAR.name
camelia rakudo-moar 694ceb: OUTPUT«$␤»
timotimo seems to be a state variable there 19:50
but it may make a difference if the list is used for assignment
dha so, should I just remove the "dummy variable" comment?
timotimo i believe you can use a * instead of a $ for such a case
19:51 ][Sno][ left
dha I think it's just confusing in any case. I'll remove. 19:51
dalek c: d72d26c | (David H. Adler)++ | lib/Language/variables.pod:
Tweaks to C<state> docs
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.
braintwist I have a question .^methods is nice, but what does the ^ mean ? 19:53
timotimo braintwist: "call on the meta-object" 19:54
the ^ elevates your method onto the meta-level, so to speak
your method call*
braintwist timotimo: thanks.
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:
m: say Int.HOW.^name 19:55
[Coke] search is broken on docs.perl6.org
camelia rakudo-moar 65d33b: OUTPUT«Perl6::Metamodel::ClassHOW␤»
braintwist it seems logical, not that I had thought about it
19:55 rindolf left
dha [Coke] - it's always broken. :-| 19:55
[Coke] looks like source is an array of objects that is NOT comma separated.
dha: it's SUPER broken relative to previous broken.
[Coke] sees if he has commit bits on this. 19:56
dha YAY!
you should. I think *I* do.
19:57 Peter_R joined
FROGGS braintwist: we try to get the semantics in a shape where you dont have to think about it all the time 19:57
that's why the look of operators and such matter so much
[Coke] oh, right, this is slow.
braintwist FROGGS: yes consistency is a good thing,
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
timotimo and any_equals has become 2.5x slower
19:59 telex left
braintwist ^^ although I dont know about perl6 but in other languages. 19:59
FROGGS braintwist: we use ** here
timotimo in perl6 it's actually **
19:59 telex joined, rindolf joined
FROGGS braintwist: though you can construct ranges by doing: ^10 20:00
20:00 kaare_ left
TimToady m: say 42 ^ "red" 20:00
camelia rakudo-moar 65d33b: OUTPUT«one(42, red)␤»
20:00 telex left
FROGGS m: say ^10 20:00
camelia rakudo-moar 65d33b: OUTPUT«0..^10␤»
FROGGS m: say (^10).list
camelia rakudo-moar 65d33b: OUTPUT«(0 1 2 3 4 5 6 7 8 9)␤»
FROGGS which means 'up to'
(but not including)
timotimo hm
^ kind of looks like a fork where either the left or right path can be chosen
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
timotimo FROGGS: all methods that come lexicographically before "bar"
FROGGS hehe
braintwist FROGGS: python uses ** as well I think
TimToady even Fortran uses **
20:02 _mg_ joined
braintwist I think their mnemonic is that it is as multiply twice... 20:02
kind of makes sense.
20:02 telex joined
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
but last I heard, they had precedence troubles.
FROGGS masak: I guess that are the consequences when your grammar isnt very strict
masak m: my $x = 2; say -$x ** 2
camelia rakudo-moar 65d33b: OUTPUT«-4␤»
masak that one is always a bit problematic, no matter how you slice it. 20:04
FROGGS true
same with ^10
and methods calls
[Coke] installs a version of perl6 post-glr and sees if htmlify gets magically faster.
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
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
timotimo ah
masak for example, I really like how -$n.abs works
timotimo but it's so easy!
for example:
20:06 kjs__ joined
timotimo ^10.pick 20:06
it's obvious that you want to call the pick method on an array-y thing
^10.rand
it's obvious that you want to call the rand method on a number-y thing
TimToady m: ^10.pick
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)␤»
dalek kudo/nom: 87a74dc | (Stefan Seifert)++ | src/core/metaops.pm:
Get rid of HYPER runtime cost for recursion hint

Suggested by timotimo++
masak timotimo: yes, good example.
timotimo nine: cool, thanks!
20:07 dha left 20:09 brrt joined 20:10 AlexDaniel joined
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
and then we'll see how good that works
20:13 espadrine joined 20:14 PerlJam joined
timotimo nine: as ven comments, perhaps the use of callframe is problematic there; have you tried timing both implementations? 20:18
20:19 rurban joined 20:20 Humbedooh joined
[Coke] zzzzzzzzzzzzzz 20:20
20:20 Humbedooh left, Humbedooh joined
timotimo gnite coke :) 20:21
[Coke] was waiting for htmlify to come back.
timotimo did it?
and did it do it faster than it used to?
[Coke] would anyone mind if I updated the URLS so it didn't require being in docroot to run?
timotimo: no clue. it's unusably slow atm.
20:22 bronco_creek joined 20:23 telex left, pmurias joined
[Coke] I won't bother testing it pre GLR, will just make it faster. 20:23
nine timotimo: I have no idea about the callframe thing. I'm out of my depths there. 20:24
20:24 telex joined
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.
timotimo at least the optimizer part that does block inlining probably says "callframe? nope nope nope nope!"
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?
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.
[Coke] opens github.com/perl6/doc/issues/125 20:26
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␤»
FROGGS bronco_creek: it perhaps makes more sense to build latest rakudo with panda via rakudobrew
bronco_creek: and then install Task::Star 20:29
20:29 xfix left 20:31 colomon joined
bronco_creek FROGGS: thx, I'll try that. Do you know whether Task::Star will get me XML? 20:31
20:33 rindolf left
FROGGS bronco_creek: look: github.com/tadzik/Task-Star/blob/m...TA.info#L8 20:33
nine timotimo: the callframe version seems fix the ~ 5 % regression of the previous version
timotimo oh? 20:34
20:34 larion joined
nine So either callframe is not actually a problem, or our optimizer is not smart enough anyway to optimize HYPER as it is 20:34
20:36 _mg_ left 20:37 espadrine left
[Coke] do we have the equivalent of "python -m SimpleHTTPServer" ? 20:38
timotimo hehehe
[Coke]: you mean "serve stuff from the local directory"?
i don't think we do
jnthn 'night, #perl6
timotimo gnite jnthn!
colomon o/ 20:39
20:40 patrickz left
brrt good night jnthn :-) 20:42
psch the light are all wrong! /o\ 20:44
and pushing more buttons isn't helping
[Coke] who is running the scripts to generate docs.perl6.org? 20:45
(trying to figure out what version of perl6 is being used)
brrt moritz perhaps? 20:46
[Coke] pretty sure a glr change broke htmlify. testing a fix.. 20:47
(it's faster to run the moarvm spectests!) 20:48
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?
nine I certainly fixes Inline::Python's tests yesterday for htmlify on GLR 20:50
20:51 larion left
timotimo baumkuchenspitzen <3 20:51
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…»
timotimo ah, interestengi
because Rational takes two type parameters
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
timotimo oh
FROGGS :S
timotimo just last night someone visited who was porting rakudobrew to windows
github.com/patzim/rakudobrew 20:54
20:54 larion joined
[Coke] nine: it could be faster. it's still really slow. 20:54
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.
FROGGS [Coke]: we'll be here to help
20:55 skids left
bronco_creek I'll have to find another approach untill we have a 6.0 msi. New Year's eve? 20:55
20:56 raiph left
timotimo whoa, a release? 20:56
bronco_creek FROGGS: Oops, missed your last post.
timotimo was september meant to be the beta release?
[Coke] timotimo: just the normal september release 20:57
TimToady can call it whatever he wants. :)
FROGGS [Coke] / timotimo: the release TimToady is talking about is roast, mind 20:58
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.
FROGGS aye 21:00
jdv79 does perl6 have any locale support?
21:01 larion left
braintwist wow those built-in variables can access a lot of information, that is nice. 21:02
FROGGS gnight #perl6 21:03
21:03 FROGGS left
[Coke] jdv79: for users to generate locale-specific data, or for the compiler to complain to the programmer in locale-specific ways? 21:03
(I think no both ways) 21:04
21:05 colomon left
jdv79 thanks 21:07
[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
dalek kudo/nom: 2475abf | lizmat++ | src/core/Str.pm:
Introduce internal CHOPCRLF sub

Takes anything (presumably a native str) so we can chomp without a container. Temporary until we have nqp::readlinefhchomp().
kudo/nom: 1391588 | lizmat++ | src/core/IO/Handle.pm:
Make IO::Handle.lines push unboxed strings
21:09 meisl joined
psch r: say BagHash.new(<a>) (&) <a b> 21:10
camelia rakudo-{moar,jvm} 87a74d: OUTPUT«bag(a)␤»
psch r: say BagHash.new(<a c>) (&) <a b> 21:11
camelia rakudo-{moar,jvm} 87a74d: OUTPUT«bag(a)␤»
21:11 meisl left
psch r: my $kb = BagHash.new(<blood green>); say $kb ∩ <blue blood> 21:11
camelia rakudo-jvm 87a74d: OUTPUT«java.util.ConcurrentModificationException␤ in block <unit> at /tmp/tmpfile:1␤␤» 21:12
..rakudo-moar 87a74d: OUTPUT«bag(blood)␤»
psch r: my $kb = BagHash.new(<blood green>); say $kb (&) <blue blood>
camelia rakudo-moar 87a74d: OUTPUT«bag(blood)␤»
..rakudo-jvm 87a74d: OUTPUT«java.util.ConcurrentModificationException␤ in block <unit> at /tmp/tmpfile:1␤␤»
psch ...that just makes it worse!
why is the lengths of the items in the LHS bag relevant...
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␤␤»
..rakudo-moar 87a74d: OUTPUT«bag(blood)␤»
psch r: say BagHash.new(<bloo green>) (&) <blue blood>
camelia rakudo-moar 87a74d: OUTPUT«bag()␤»
..rakudo-jvm 87a74d: OUTPUT«java.util.ConcurrentModificationException␤ in block <unit> at /tmp/tmpfile:1␤␤»
nine Good night, #perl6!
psch r: say BagHash.new(<bloo g>) (&) <blue bloo>
camelia rakudo-jvm 87a74d: OUTPUT«java.util.ConcurrentModificationException␤ in block <unit> at /tmp/tmpfile:1␤␤» 21:14
..rakudo-moar 87a74d: OUTPUT«bag(bloo)␤»
psch g'night nine o/
jdv79 lizmat: does CHOPCRLF differ from a chomp?
lizmat nope 21:15
but it is a sub and it takes an unboxed str
21:15 pippo left 21:19 larion joined
psch night #perl6 21:22
lizmat gnight psch
21:23 muraiki left 21:24 colomon joined
dalek kudo/nom: 29cffa2 | lizmat++ | src/core/ (2 files):
Revert previous 2 commits: no speed gain after all

Not sure why, but probably the extra sub call in .chomp did it.
21:24
21:26 tokuhiro_ joined 21:29 [Sno] joined
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:31 tokuhiro_ left
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:36 kjs__ left 21:37 kjs__ joined, kjs__ left 21:41 brrt left
[Coke] stares at some convoluted code in htmlify 21:41
[Coke] gives up for now.
21:43 patrickz joined
patrickz .seen tadzik 21:44
yoleaux I saw tadzik 17:05Z in #perl6: <tadzik> nope
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
timotimo create_and_copy_2d_grid_cross_unpack -- 12241/s 3417/s
FAIL 1.0x 3.6x
visit_2d_indices_cross_unpack -- 30576/s 7392/s
FAIL 1.0x 4.1x
^- this is the work of le jnthn + the suggestion of le nine
colomon is the last column the results of their work/suggestion? 21:46
timotimo no, it's - confusingly enough! - the one in the middle
but the x is a "lower is better" figure 21:47
and the column that says FAIL is just because before GLR, ^100 X ^100 -> ($i, $j) doesn't work
here's the columns for the respective non-unpack benchmarks:
1.0x 2.0x 8.4x 21:48
1.0x 2.2x 10.9x
tadzik patrickz: sup:) 21:52
21:52 meisl joined
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 :-)
26 Jul 2015 19:29Z <brrt> meisl: i have a (p5) initial implementation of aho-style tiling
26 Jul 2015 19:32Z <brrt> meisl: check out github.com/MoarVM/MoarVM/blob/even...nerator.pl if you wish
patrickz Hey!
tadzik Hey hey 21:53
meisl oh-wow...
never had such a nice welcome - and such an immediate one 21:54
patrickz tadzik: github.com/tadzik/rakudobrew/blob/...obrew#L407 <- any reason for not using run('make install')?
*currently removing bugs from rakudobrew on windows... 21:55
tadzik patrickz: possibly historical reasons
patrickz ok, I'll replace it then.
tadzik I wouldn't be surprised if rakudobrew predated run() :P
Thanks!
patrickz So what do you think about keeping / removing commands? 21:56
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
masak 'night, #perl6
patrickz Would you prefer removing them?
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
'night masak
21:59 bronco_creek left
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.
Which is A Good Thing.
tadzik I now wonder if it's not too problematic to be named rakudo*brew* but be compatible with pl*env* 22:01
Oh perlbrew too?
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?
patrickz It's basically reduced redundancy vs familiarity for perlbrew/plenv users.
tadzik Which I'm all for
patrickz The old ones match perlbrew 22:02
ab5tract meisl: use `.tell $nick`
patrickz The new ones plenv
tadzik Ah
Well, it uses plenv model, not perlbrew
ab5tract meisl: use `.tell <nick> <msg>`
patrickz True.
tadzik So just the name remains problematic, kinda
meisl ab5tract: thx, that's really a nice feature
22:03 hernanGOA left
ab5tract .tell meisl I completely agree :) 22:03
yoleaux ab5tract: I'll pass your message to meisl.
ab5tract 'night #perl6 !
timotimo gnite ab5tract
meisl .tell ab5tract thx again: g'nite 22:04
yoleaux 22:03Z <ab5tract> meisl: I completely agree :)
meisl: I'll pass your message to ab5tract.
patrickz *env is kinda nice because it's also present in other languages rbenv, pyenv...
tadzik Right
patrickz Nonetheless renaming the thing is painful.
ab5tract p6env is shorter :) 22:05
yoleaux 22:04Z <meisl> ab5tract: thx again: g'nite
meisl .tell brrt oh-wow...
yoleaux meisl: I'll pass your message to brrt.
tadzik Yeah. And rakudobrew is a really good brand now :P
meisl .tell brrt never had such a nice welcome - and such an immediate one!
yoleaux meisl: I'll pass your message to brrt.
timotimo pyenv? i think you mean "virtualenv"
tadzik Bbs, detram &
patrickz pl6env would be my preference. bikeshedding ftw!
ab5tract tadzik: that's quite true. the trusted source!
timotimo which is a very python-centric naming, isn't it?
meisl .tell brrt I *am* interested in Aho-style tiling, will have a look. 22:06
ab5tract ok, really o/
yoleaux meisl: I'll pass your message to brrt.
patrickz didn't know about virtualenv...
22:06 Peter_R left
timotimo comes from a slight python background 22:06
patrickz With some added complexity we could have both.
meisl anyone: I've got a "QAST-ion", re Op stringify... 22:07
timotimo shoot 22:08
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"
timotimo right 22:10
meisl ...only if it's under a CompUnit with :hll<nqp>...
timotimo ah
let's see
meisl so this op seems different from others - why? 22:11
timotimo i've got a link for you in a second
github.com/perl6/nqp/blob/master/s...ps.nqp#L95 22:12
extremely similar to the implementation for the jvm: github.com/perl6/nqp/blob/master/s...s.nqp#L100
github.com/perl6/nqp/blob/master/s...ps.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
timotimo github.com/perl6/nqp/blob/master/s....nqp#L2394 - this goes directly to the MoarVM operation 22:14
github.com/MoarVM/MoarVM/blob/mast...plist#L389 - this is where its argument structure is defined 22:15
github.com/MoarVM/MoarVM/blob/mast...rp.c#L2631 - and here's how moarvm implements it internally
the QASTOperationsMAST entry knows what the bytecode for isstr is and can emit that properly, and it also knows what arguments it gets 22:16
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:18
timotimo well, sure 22:20
it all depends on whether or not it's been defined "for you"
22:20 rurban left
timotimo both the nqp and rakudo "Operations" file will register all of moarvm's (for example) operations for you, because wh ynot 22:20
22:21 pippo joined
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?
I guess they're basically equivalent
and changing the api at this stage may be easier than changing the name
timotimo excuse me for being so low-level-focused; spent too much time in moarvm :)
patrickz perlbrew has no local/shell
tadzik aqh
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;␤»
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;␤»
pippo m: my @a = (1..10).list; say @a.WHAT;
camelia rakudo-moar 29cffa: OUTPUT«(Array)␤»
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
pippo @a.WHAT = list, no more?
timotimo meisl: btw, you can also generate a QAST tree inside the implementation of your custom op 22:25
let me find an example for you
ah
it's just above stringify, "postdec" which implements post-decrement
all you have to know is you can return the return value of $qastcomp.as_mast($your_shiny_qast_tree)
pippo m: my $a = (1..10).list; say $a.WHAT; 22:27
camelia rakudo-moar 29cffa: OUTPUT«(List)␤»
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...
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?
meisl yes.
timotimo let's see why that could be
patrickz - provide both a rakudobrew and a pl6env
either with separate subcommand sets or that combined one
22:29 telex left
timotimo um, i have no idea why that would turn out differently :| 22:29
22:29 telex joined
patrickz (separate sets is a little dangerous, rakudobrew would invisibly behave differently if a local or shell version is set) 22:30
22:30 skids joined
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␤␤»
pippo m: my $a = (1); say $a.WHAT;
camelia rakudo-moar 29cffa: OUTPUT«(Int)␤»
meisl from github.com/perl6/nqp/blob/master/d...t.markdown I concluded (guessed) that the :hll on CompUnit is rather cosmetic - it seems it's not...
pippo m: my $a = (1,2); say $a.WHAT;
camelia rakudo-moar 29cffa: OUTPUT«(List)␤»
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␤␤»
timotimo oh
you are right, that wants to be a more drastic explanation
every compunit remembers the hll and when values move between compunits, they'll often get "hllized" 22:32
m: use nqp; nqp::hllizefor('nqp', (1, 2, 3, 4)).WHAT.say
camelia rakudo-moar 29cffa: OUTPUT«This type cannot unbox to a native string␤ in block <unit> at /tmp/hrI9XUHh7k:1␤␤»
timotimo m: use nqp; nqp::hllizefor((1, 2, 3, 4), 'nqp').WHAT.say
camelia rakudo-moar 29cffa: OUTPUT«(List)␤»
timotimo um
m: use nqp; nqp::hllizefor("hello" ~~ /../, 'nqp').WHAT.say 22:33
camelia rakudo-moar 29cffa: OUTPUT«(Match)␤»
meisl it shouldn't say that?
timotimo i was expecting something nqp-ish
22:33 leont left
meisl let's try the stringify, like ~5 22:33
(it's on you, I don't know npq::hllizefor :) 22:34
timotimo hah
hllizefor is only about transforming common kinds of things between HLLs
there's a NQPMatch class for use inside NQP that ought to turn into a Match when hllized for perl6, for example
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?
timotimo nope, wrong, Match and NQPMatch don't get registered for the hll config
there's types for different kinds of boxing 22:36
int, num, str, a null value (Mu vs NQPMu)
it could very well be that transforming from perl6 to nqp doesn't work, but the other way around it would
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
the QAST-generating stuff and all is only NQP
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
timotimo if dyncall gives you problems, you can try libffi instead ... but i don't know about that problem 22:39
i *think* we've only made the errors stricter for moarvm itself, not for sub-projects
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?
timotimo meisl: i expect the hll set in a compunit influences what set of ops will be looked at 22:40
but humans lie, code doesn't :)
and now i'll be afk for ~30 minutes
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)
patrickz ok, then we have to decide :-)
timotimo you're welcome :)
looking forward to seeing what your language looks like
leont It seems rakudo doesn't detect infinite recursion 22:42
meisl hehe, rather simple. L = Lambda; g'night :)
leont (guess how I just swapped my computer to death) 22:44
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:45
22:45 pmurias left
dalek kudo/nom: e11a341 | lizmat++ | src/core/IO/Handle.pm:
Implement push-all for IO::Handle.lines

  "words".IO.lines.elems.say 20% faster
  "words".IO.lines(:!chomp).elems.say 35% faster
my @a = "words".IO.lines; say +@a 18% faster
This for a file with 235886 lines.
22:49
lizmat my first optimization work in the new GLR world
and with this I say good night to #perl6! 22:51
22:51 meisl left
cognominal lizmat++ 22:51
pippo Why I cannot push one element to a list? 22:52
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␤␤»
pippo ??
cognominal m: my $a = []; $a.push: 1 22:54
camelia ( no output )
pippo cognominal: but that is an array.
cognominal A list is read-only.
pippo Ah. cause of GLR? 22:55
cognominal I think so
pippo Sadly. 22:56
cognominal: thank you.
cognominal pippo: GLR breaks things, but it seems more coherent than the world pre-GLR. 22:57
pippo github.com/perl6/specs/blob/master...-draft.pod
lizmat m: my $a = (,); $a.push(42)
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)␤»
lizmat hmmm... 22:58
pippo ^^ In here seems that lists are mutable and have a push method.
lizmat well, that's wrong then :-)
Lists are immutable, but may contain mutable items 22:59
S07:1
22:59 thou left
pippo lizmat: OK. Thank you lizmat. 22:59
flussence .botsnack 23:01
yoleaux :D
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
21:32Z <ab5tract> flussence: but building a pipeline for doing concurrent processing would be very interesting as well
pippo lizmat: BTW. The error messages are a little misleading. No? 23:02
23:06 meisl joined
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.
ShimmerFairy pippo: The last error message you gave has nothing to do with .push, just with the fact that you tried to use (,)
m: my $a = (,);
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);␤»
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␤␤»
pippo ^^ and this one?
ShimmerFairy My guess is that it inherited a push method from Any, and hasn't overridden it 23:08
23:09 spider-mario left
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:09 patrickz left
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 telex left
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'
Cannot call 'push' on an immutable 'List'
23:12 telex joined
lizmat pippo ^^^ better ? 23:12
timotimo meisl: i told you, home boy! you can't op this!
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)
timotimo er, i mean ...
cognominal you need a concreto object
timotimo reprname is also one of those ops that are implemented by moarvm and mapped by any hll
not just nqp
dalek kudo/nom: 86ddca2 | lizmat++ | src/core/List.pm:
Fix LTA error on List.push/pop/unshift/shift

  pippo++ for pointing this out
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!
timotimo rest well! 23:15
pippo lizmat: thank you.
meisl cu all
ShimmerFairy m: say Int.push(4, 2)
camelia rakudo-moar 29cffa: OUTPUT«Cannot modify an immutable Int␤ in block <unit> at /tmp/aNVQxlKV9A:1␤␤»
23:15 meisl left
lizmat really sleep& 23:15
pippo o/ 23:16
ShimmerFairy ^ Any.push claims this would turn into an Array, but it looks like it doesn't anymore
♞ all of you :) o/
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:18
pippo good night ShimmerFairy 23:19
23:19 pippo left
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:24
I do have my browser choking on a 3MB profile.html of it right now though :) 23:25
(oww, it does not like that callgraph tab...)
timotimo the last few months, eh? 23:27
flussence on and off, whenever I get bored and decide to fiddle with it :)
timotimo right now is a good time to try again, as that instability with regards to multi-threading was fixed today
dalek c: 958c399 | skids++ | lib/Type/ (2 files):
More fixing of links. Try to get this table pod thing to DWIM.

Also, avoid using the phrase "object of type Capture" in subject matter so close to en-passant "type capture"s.
23:28
23:28 tokuhiro_ joined 23:29 telex left 23:30 telex joined
skids
.oO(maybe we should ditch "en-passant capture" for something like "type gleaning")
23:31
23:32 tokuhiro_ left 23:36 [Sno] left 23:39 larion left 23:41 Skarsnik left
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
ugexe if you use hyper you wont be able to run the tests in order if its required 23:48
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:49
leont There has been a strong move away from that in p5, there are people who test for it 23:51
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*
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:53
timotimo flussence: not bad! 23:54
23:54 TEttinger joined
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
you just have to put the "is" and stuff after the section that gets shuffled
ugexe timotimo: its not always the results that need to be in order
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)
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:57 telex left 23:58 telex joined
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 23:59