seatek timotimo: HTTP::UserAgent is the one I settled on after poking around for a while 00:00
timotimo good
MasterDuke TimToady: thanks. i know i've wanted to interpolate into char classes before, but i don't know why it isn't allowed?
timotimo you can just interpolate an array instead, if that array is an array of characters
(it'll be slow.) 00:01
MasterDuke cool, that'll work if what i want to interpolate comes from outside the regex 00:02
timotimo that's usually what interpolating is for :) 00:03
MasterDuke well yeah, but while TimToady's solution works because i'm only capturing a single character, it wouldn't if i was capturing more, but wanted what i captured to be contents of a char class 00:05
i don't anticipate wanting to do that every other day or anything, just wondering about the reasoning 00:06
dalek ast: 5cfffd4 | usev6++ | / (2 files):
Fudge failing test for rakudo-j
06:52
ast: d2b9d23 | usev6++ | S09-typed-arrays/native-int.t:
Unfudge test for antipairs + native arrays on JVM
kudo/nom: 37d0e46 | lizmat++ | src/core/Slip.pm:
Make slip(@a) quite a bit faster.

But generally, you are better off using .Slip anyway, because it avoids the overhead of the expensive argument parsing with a +args signature.
07:20
nine Damn.... camelia fails to build rakudo-j again: java.lang.RuntimeException: Missing or wrong version of dependency 'gen/jvm/stage2/QRegex.nqp' 09:50
MasterDuke m: grammar G { regex TOP {^^ "#" \s* "line" \s+ $<line>=(\d+) \s* [ \s (<['"]>?) $<filename>=(<-['"]>+) $0 ]? \s* $$} }; say G.parse("#line 2 foo.bar") 12:17
camelia rakudo-moar 37d0e4: OUTPUTĀ«ļ½¢#line 2 foo.barļ½£ā¤ line => ļ½¢2ļ½£ā¤ 0 => ļ½¢ļ½£ā¤ filename => ļ½¢foo.barļ½£ā¤Ā»
MasterDuke the above is a direct translation of the Perl 5 regex to parse line directives show in the docs: /^\# \s* line \s+ (\d+) \s* (?:\s("?)([^"]+)\g2)? \s* $/x 12:18
however, when i stick that in NQP's src/HLL/Grammar (minus the TOP obviously), the line directives in m-CORE.setting don't get parsed 12:19
timotimo could be it doesn't even get considered from rakudo's grammar? 12:20
i.e. overwritten by other stuff
MasterDuke no, if i use something a little less flexible it works
timotimo hm, ok 12:21
could be newline-related trouble
MasterDuke this is what i've been testing with: ^^ '#' \s* 'line' \s+ $<line>=(\d+) [ \s+ $<filename>=(\S+) ]? $$
timotimo that's the one that works?
MasterDuke yep
as a token, not regex 12:22
timotimo well, there's your problem
rakudo has a more complicated rule ws, i think
wait, is token sigspace?
no, only rule is sigspace. never mind, then 12:23
well, what if you change the more complicated one to regex instead of token? maybe you're relying on backtracing without knowing it?
MasterDuke m: grammar G { token TOP {^^ "#" \s* "line" \s+ $<line>=(\d+) \s* [ \s (<['"]>?) $<filename>=(<-['"]>+) $0 ]? \s* $$} }; say G.parse("#line 2 foo.bar") 12:24
camelia rakudo-moar 37d0e4: OUTPUTĀ«Nilā¤Ā»
MasterDuke i did, after seeing it didn't work as a token ^^^
timotimo um 12:25
is that $0 correct? because i don't think it is.
m: grammar G { token TOP {^^ "#" \s* "line" \s+ $<line>=(\d+) \s* [ \s (<['"]>?) $<filename>=(<-['"]>+) $1 ]? \s* $$} }; say G.parse("#line 2 foo.bar") 12:26
camelia rakudo-moar 37d0e4: OUTPUTĀ«Nilā¤Ā»
MasterDuke it is. the first capture is named, so itn't also $0
timotimo it is also $0, because you have () instead of [] on the RHS of the =
MasterDuke m: grammar G { regex TOP {^^ "#" \s* "line" \s+ $<line>=(\d+) \s* [ \s (<['"]>?) $<filename>=(<-['"]>+) $0 ]? \s* $$} }; say G.parse("#line 2 'foo.bar'")
camelia rakudo-moar 37d0e4: OUTPUTĀ«ļ½¢#line 2 'foo.bar'ļ½£ā¤ line => ļ½¢2ļ½£ā¤ 0 => ļ½¢'ļ½£ā¤ filename => ļ½¢foo.barļ½£ā¤Ā»
timotimo m: say ("heyo" ~~ / $<lol>=(.) /).perl;
camelia rakudo-moar 37d0e4: OUTPUTĀ«Match.new(ast => Any, list => (), hash => Map.new((:lol(Match.new(ast => Any, list => (), hash => Map.new(()), orig => "heyo", to => 1, from => 0)))), orig => "heyo", to => 1, from => 0)ā¤Ā»
timotimo ok, i'm wrong, carry on. 12:27
MasterDuke ha no worries. i've now been testing so many variations of the code it's all running together, so it's good for fresh eyes to check some assumptions 12:28
timotimo have you tried running it through perl6-debug-m yet?
MasterDuke huh, that gives me Nil for the regex example that works with perl6-m 12:31
it matched up through the 'foo.bar', but then backs off back to the space and gives Nil 12:32
assuming i'm reading it correctly, i've never used it before
timotimo i'm not sure what exact code you're currently trying it with 12:34
MasterDuke m: grammar G { regex TOP {^^ "#" \s* "line" \s+ $<line>=(\d+) \s* [ \s (<['"]>?) $<filename>=(<-['"]>+) $0 ]? \s* $$} }; say G.parse("#line 2 'foo.bar'")
camelia rakudo-moar 37d0e4: OUTPUTĀ«ļ½¢#line 2 'foo.bar'ļ½£ā¤ line => ļ½¢2ļ½£ā¤ 0 => ļ½¢'ļ½£ā¤ filename => ļ½¢foo.barļ½£ā¤Ā»
MasterDuke ^^^ that
timotimo m: say "bab" ~~ / (X?).$0 / 12:35
camelia rakudo-moar 37d0e4: OUTPUTĀ«ļ½¢bļ½£ā¤ 0 => ļ½¢ļ½£ā¤Ā»
timotimo m: say "bab" ~~ / (.?).$0 /
camelia rakudo-moar 37d0e4: OUTPUTĀ«ļ½¢babļ½£ā¤ 0 => ļ½¢bļ½£ā¤Ā»
timotimo well, that's supposed to work at least
MasterDuke RT #130083 for different behavior between perl6-m and perl6-debug-m 13:10
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130083
MasterDuke there are still other things to work on in my code, so i'll back off to the less flexible token to keep making progress 13:11
dalek kudo/nom: 13f6b63 | usev6++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
Check for concreteness in p6scalarfromdesc on JVM

That method looks whether the decontainerized value of desc is a type object. It handles the 'null' case as well.
Fixes RT #128341 and newly failing tests in S09-multidim/assign.t.
13:18
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128341
rakudo/nom: cdca973 | (Zoffix Znet)++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
rakudo/nom: Merge pull request #918 from usev6/rt128341
rakudo/nom:
rakudo/nom: Check for concreteness in p6scalarfromdesc on JVM
ast: 1f31490 | usev6++ | S09- (2 files):
Unfudge tests for RT #128341 (rakudo-j)

Fixed with Rakudo commit 13f6b63455.
13:23
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128341
dalek kudo/nom: 59bb1b1 | lizmat++ | src/core/ (2 files):
Make IterationEnd.perl/gist/Str show "IterationEnd"

Mostly for making debugging of iterators easier.
15:38
lizmat T-Dose shutting down& 16:01
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Make IterationEnd.perl/gist/Str show "IterationEnd" 16:23
travis-ci.org/rakudo/rakudo/builds/175494050 github.com/rakudo/rakudo/compare/c...bb1b14713b
buggable [travis build above] ā˜  Did not recognize some failures. Check results manually.
TimToady waves briefly... 18:12
will backlog offline
MasterDuke timotimo: i know you've worked on the profiler some. what do you think about adding sqlite as an output format? e.g., --profile-filename=example.sqlite outputs it as a sqlite database? that might make working with large profiles possible 19:30
timotimo MasterDuke: it's possible. you could probably have a piece of code in rakudo that does it (because no nativecall sugar in nqp) and install it in the compiler and call it from there 19:46
or something like that, anyway
MasterDuke timotimo: hmm, doesn't sound quite as simple as i'd hoped, but maybe i'll look into it if no one else has after i finish up this line directive stuff 19:58
dalek p: 17d9bbf | (Pawel Murias)++ | src/QAST/Node.nqp:
Avoid printing out <> when we have dump ast nodes with no flags.
20:12
p: 070392c | (Pawel Murias)++ | src/vm/js/Compiler.nqp:
[js] Insert 'use strict'.
p: 0062c15 | (Pawel Murias)++ | src/vm/js/ (2 files):
[js] Instead of looking up the sc handle/idx on every QAST::WVal use, store the value in a js variable.
p: 8229f78 | (Pawel Murias)++ | src/vm/js/ (3 files):
[js] Optimize boolification.
ast: 8f856a7 | (Aleks-Daniel Jakimenko-Aleksejev)++ | S (2 files):
gcd operator with zeros
20:30
MasterDuke what runs during stage mast of the rakudo build? 21:18
arnsholt NQP code mostly, I think. Outputting the Moar bytecodes 21:21
lizmat m: my @a[2;2] = ((0,1),(2,3),()); # should this fail or not ? 21:27
camelia ( no output )
lizmat jnthn: ^^^ one could argue the data has the wrong number of dimensions, although it actually doesn't specify any value in the out-of-bound dimension 21:28
afk& 21:30
MasterDuke arnsholt: thanks 21:57
it's interesting. m-CORE.setting is parsed twice. once during the parse stage, and again during the mast stage
timotimo "parsed"? 22:00
MasterDuke read at least and HLL::Compiler.lineof called on each line 22:01
what's the nqp equiv of caller[1]?
timotimo something like with nqp::callframe? 22:02
or look at the source of callframe or something
it helps when you change code to make it faster to also -Ilib 22:06
MasterDuke timotimo: ^^^ was that to me? 22:08
timotimo no, to myself 22:11
i'm looking at JSON::Fast again
it's allocating far too many BOOTCode >:(
pmurias MasterDuke: look in the nqp repo at src/vm/moar/QAST/QASTCompilerMAST.nqp:1405 22:14
MasterDuke pmurias: yeah, i didn't realize at first that compile_all_the_stmts() was called multiple times 22:17
timotimo i wish someone could swoop in and make JSON::Fast's parse-string twice as fast or something ... 22:26
or make nom-ws not allocate BOOTCode :| 22:30