travis-ci Rakudo build errored. Elizabeth Mattijsen 'Add "push-all" to sequential-map "normal" 00:10
travis-ci.org/rakudo/rakudo/builds/142087822 github.com/rakudo/rakudo/compare/6...81b2411158
Zoffix i.imgur.com/OqNuyp8.png :) 02:17
The console is just a placeholder, but I'm loving the look :) 02:18
awwaiid [Coke]: feel free to give me rt juice too -- I'd love to be able to assign tickets to myself and close them 03:29
awwaiid unrelatedly tries to remember how to install panda modules into a local rakudo build 03:30
oh I got it, needed a more absolute path to perl6 when bootstraping panda 03:33
hoelzro: did REPL completions work on anything other than top-level names before? As far as I can tell it didn't/doesn't 03:51
and then it is only routines
hoelzro: though there is code in Completions::update-completions that appears to be trying to get some other stuff, but it doesn't look like it gets executed because the context is blank 03:53
hoelzro awwaiid: it should work for top-level classes and routines 04:21
even imported ones
the context is blank? 04:22
hoelzro wonders if that's recent breakage
psch hm, 'make spectest' and 'make $spectest-file' seem broken for r-j 06:24
like, "prove -e'./perl6-j -Ilib' $spectest-file" works
but 'make $spectest-file' somehow seems to mess up the prove invocation 06:25
and 'make spectest' fails tests that prove directly passes..? 06:26
and using t/harness5 also works... 06:27
so probably something wonky in the Makefile..?
oh. Makefile-JVM.in declares J_HARNESS_WITH_FUDGE 06:29
but Configure.pl writes J_HARNESS5_WITH_FUDGE for the filename target
and i seem to have fixed the spectest target too \o/ 06:45
well, without TEST_JOBS at least.. 06:46
nine Improvement nevertheless :)
psch with TEST_JOBS works better too
no more "No TAP output" or however exactly that message goes 06:47
still, quite a few "No subtests run", which is probably mostly the getextype problem
dalek kudo/nom: 74a0799 | peschwa++ | tools/build/Makefile-JVM.in:
Fix Makefile template for JVM.
06:50
[Tux] This is Rakudo version 2016.06-126-g5581b24 built on MoarVM version 2016.06-9-g8fc21d5
test 15.925
test-t 9.441
csv-parser 16.799
psch 13 minutes for a clean Configure.pl --backends=jvm :|
moritz psch: does that include the nqp-j build? 07:32
psch moritz: yeah, it's a clean prefix 07:33
travis-ci Rakudo build passed. Pepe Schwarz 'Fix Makefile template for JVM.' 07:46
travis-ci.org/rakudo/rakudo/builds/142132002 github.com/rakudo/rakudo/compare/5...a079908063
psch huh, curiously some test files don't report 'ok', but 'All $n subtests passed'..? 07:48
RabidGravy is that the same as when there isn't a plan or done-testing? 07:50
psch oh, that might be 07:51
hrm, S17-promise/start.t hangs :| 08:01
lizmat on jvm or more generally ?
fwiw, I just had a flapper on that one
psch on jvm 08:02
it's probably not consistent either 08:03
anyway, afaics there's two significant problems on jvm right now - plus the bandaid for BEGIN time EVAL, which i gladly park for now 08:08
the two are (1) some block that should get a handler for &return don't get it and we panic() in ExceptionHandling, because there's no handler
and (2) there exist cases where the handler exists, but we somehow lose the VMException object, so we can't actually handle it 08:09
which, i think, ties in with the nested labeled loop issue on some level
which probably means all the handler code needs a thorough look, and potentially even redesign or rewrite 08:10
luckily that's spread across half the backend again, starting in QAST::Compiler and going down to mostly runtime.ExceptionHandling... :|
dalek kudo/nom: ffc79b7 | lizmat++ | src/core/List.pm:
Remove some =:= from hot paths
08:39
lizmat moritz: any idea where dalek went ? 10:49
moritz lizmat: down with hack, it seems 11:02
lizmat moritz++ 11:04
dalek kudo/nom: a557a13 | lizmat++ | src/core/Pair.pm:
Make Pair.new about 5% faster

Having a nqp::p6bindattrinvres2 (that could bind 2 attributes in one call) would most likely speed this up quite a bit more again (and in many other places in the core).
11:14
lizmat jnthn: ^^^ hint hint :-) 11:15
jnthn uh...no. 11:49
Why not just nest 2 of them?
There's be no speedup for having a composite op over nesting
They'd generate precisely the same code.
lizmat hmmm.... 11:51
jnthn Since the invocant is returned you can use it as the first argument of the next bindattrinvres
lizmat yeah, I just realized that 11:52
nine Looks like something an optimizer may do somewhere in the future?
jnthn nine: Once we have lexical => local lowering, then spesh will be in a good place to kill off any unrequired sets (it already has logic for that) 11:55
So using bindattrinvres rather than having the temporary will become "free" also I'd expect
lizmat FWIW, using a nested p6bindattrinvres does not seem to have any positive performance effects 11:59
also. Pair.new still doesn't get jitted
timotimo lizmat: potentially due to the ops it uses to grab its arguments? 12:05
jnthn It's possible that it's too polymorphic and so exceeds the number of specializations allowed during startup since we create various pairs then. 12:11
And yeah, I'd not expect a big difference tbh. 12:12
I mean, if you measured CPU cycles you'd probably find a decrease but...lexical access just ain't all that costly 12:13
lizmat jnthn: ack 12:34
awwaiid hoelzro: I went back to 2016.03 and saw the same behavior. If you can check out the current and see if it is broken and point out a version that works then I'll fix it 15:52
hoelzro: I don't think anything I did should have changed the behavior, but I was about to make potentially behvior-changing modifications and was surprised by it already not getting the context 15:53
tbrowder can I do a string match on a token in nqp, or do I have to go the full grammar route? I'm not getting it to work (probably missing something): my $s := 'blah blah'; token foo { 'blah' }; say("true") if $s ~~ / $<foo> /; 16:42
timotimo token is equivalent to a regex with the right flags set, so you could use that instead 16:44
tbrowder ah, okay, thanks, timotimo! 16:45
i hate to be a pest, but can you make this work: my $s := 'blah blah'; regex foo { blah }; say("true") if $s ~~ / $<foo> /; 16:59
what flag does it need?
timotimo token has at least :r 17:01
but i meant literal regex instead of refering to an existing one
i haven't a clue if that works in nqp or not
hoelzro awwaiid: it seems there was a regression - I'm bisecting to find it now
timotimo nqp: my $foo = rx/ :r blah /; say("true") if "blah blah" ~~ $foo 17:02
camelia nqp-moarvm: OUTPUTĀ«Assignment ("=") not supported in NQP, use ":=" instead at line 2, near " rx/ :r bl"ā¤ at gen/moar/stage2/NQPHLL.nqp:706 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:panic)ā¤ from <unknown>:1 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/nqp.moaā€¦Ā» 17:04
..nqp-jvm: OUTPUTĀ«(signal ABRT)#ā¤# There is insufficient memory for the Java Runtime Environment to continue.ā¤# pthread_getattr_npā¤# An error report file with more information is saved as:ā¤# /tmp/jvm-26808/hs_error.logā¤Ā»
..nqp-parrot: OUTPUTĀ«Can't exec "./rakudo-inst/bin/nqp-p": No such file or directory at lib/EvalbotExecuter.pm line 206.ā¤exec (./rakudo-inst/bin/nqp-p <tmp>) failed: No such file or directoryā¤Server error occurred! Closing Link: ns1.niner.name (Quit: camelia)ā¤Lost connection to ā€¦Ā»
tbrowder nqp: my $foo := rx/ :r blah /; say("true") if "blah blah" ~~ $foo;
timotimo should use nqp-m 17:07
nqp-m: my $foo := rx/ :r blah /; say("true") if "blah blah" ~~ $foo
we may not have postfix-if in nqp?
camelia ..nqp-jvm: OUTPUTĀ«(signal ABRT)#ā¤# There is insufficient memory for the Java Runtime Environment to continue.ā¤# pthread_getattr_npā¤# An error report file with more information is saved as:ā¤# /tmp/jvm-26816/hs_error.logā¤Ā»
..nqp-moarvm: OUTPUTĀ«Confused at line 2, near "my $foo :="ā¤ at gen/moar/stage2/NQPHLL.nqp:706 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:panic)ā¤ from gen/moar/stage2/NQP.nqp:927 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/nqp.moarvm:comp_unit)ā¤ from gen/moarā€¦Ā»
nqp-moarvm: OUTPUTĀ«Confused at line 2, near "my $foo :="ā¤ at gen/moar/stage2/NQPHLL.nqp:706 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:panic)ā¤ from gen/moar/stage2/NQP.nqp:927 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/nqp.moarvm:comp_unit)ā¤ from gen/moarā€¦Ā»
timotimo *shrug* 17:08
psch changed the nqp: cmd in camelia just now
'cause this keeps happening, and it really shouldn't
timotimo ah
very good, thanks
psch well, idk how camelia syncs vOv 17:09
BrokenRobot nqp-m: my $foo := rx/ :r blah /; say("true") if "blah blah" ~~ $foo
camelia nqp-moarvm: OUTPUTĀ«Confused at line 2, near "my $foo :="ā¤ at gen/moar/stage2/NQPHLL.nqp:706 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:panic)ā¤ from gen/moar/stage2/NQP.nqp:927 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/nqp.moarvm:comp_unit)ā¤ from gen/moarā€¦Ā»
BrokenRobot nqp-m: my $foo := rx/ :r blah /; say("true") for "blah blah" ~~ $foo
camelia nqp-moarvm: OUTPUTĀ«Confused at line 2, near "my $foo :="ā¤ at gen/moar/stage2/NQPHLL.nqp:706 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:panic)ā¤ from gen/moar/stage2/NQP.nqp:927 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/nqp.moarvm:comp_unit)ā¤ from gen/moarā€¦Ā»
psch i think nqp doesn't do rx// as regex quote lang
BrokenRobot Ah
psch nqp-m: rx/1/
camelia nqp-moarvm: OUTPUTĀ«Missing required term after infix at line 2, near "/1/"ā¤ at gen/moar/stage2/NQPHLL.nqp:706 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:panic)ā¤ from gen/moar/stage2/NQPHLL.nqp:872 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:EXPā€¦Ā»
BrokenRobot nqp-m: say("true") if 1
camelia nqp-moarvm: OUTPUTĀ«trueā¤Ā»
BrokenRobot camelia: bot control pull 17:13
It was something like that
camelia: admin bot control pull
camelia: evalbot control pull 17:14
camelia BrokenRobot: (success)
BrokenRobot camelia: evalbot control restart 17:15
psch nqp: say("hi")
BrokenRobot (it'll take a bit for her to load up)
psch yes, i've experienced this :)
camelia nqp-moarvm: OUTPUTĀ«hiā¤Ā» 17:16
psch i also tossed nqp-p and nqp-j, 'cause afaict they never worked
i mean, as standalone commands 17:17
(actually probably "afair", and i might just now have been around when nqp-p was used, but well...)
*not 17:21
geekosaur nqp-p worked once upon a time 17:33
tbrowder i need an nqp programmer to please tell me if I can use a token directly in nqp or do i have to wrap in a grammar and all its trappings? if one can use it directly on a string, can you please show me a short working example for use in a script. thanks 17:36
dalek kudo/custom_repos: 5b3a099 | niner++ | / (6 files):
Add a Staging repository
17:41
kudo/custom_repos: ac19874 | niner++ | / (8 files):
Allow for custom repo implementations including precompilation

Use this new capability to move the Staging repo out of the setting and make it a supplemental module.
psch nqp: say("foo" ~~ /foo/) 17:44
camelia nqp-moarvm: OUTPUTĀ«fooā¤Ā»
psch tbrowder: does that help?
nqp: my $rx := /foo/; say("foo" ~~ $rx) 17:45
camelia nqp-moarvm: OUTPUTĀ«fooā¤Ā»
psch tbrowder: or that?
tbrowder: afaik the declarator "token" only exists inside of a Grammar in nqp, but lexical regex still work, as above 17:46
tbrowder: you just gotta bind the literal to a lexical
tbrowder psch: thanks, i'll try again 17:53
DrForr Speaking of grammars, I've just noticed a problem with the NQPMatch.dump method - I don't think the hash iterator returns all keys. 18:15
s/returns/iterates over all/ 18:16
gist.github.com/drforr/97b7d9c0ea6...9e360e0eb6 18:18
psch that doesn't help that much without the code that builds $parsed 18:19
DrForr It's the Perl6 grammar :)
psch which you probably invoke in some way 18:20
like, maybe --target=parse or somehow else
DrForr I can show how it's derived, putting that up in a moment.
psch right, that's what i'm asking for :)
dalek kudo/nom: 5b3a099 | niner++ | / (6 files):
Add a Staging repository
kudo/nom: ac19874 | niner++ | / (8 files):
Allow for custom repo implementations including precompilation

Use this new capability to move the Staging repo out of the setting and make it a supplemental module.
DrForr Updated. 18:22
psch DrForr: github.com/perl6/nqp/blob/master/s...r.nqp#L889 18:23
in 'my $a', typename has no value, hence .dump doesn't dump it
DrForr At least I think that'll do the trick. The declarator is buried rather deeply in the structure, you'll have to chain $parsed.hash.<statement>.....
Aha.
I would have expected a (Any) or something like that, it's a bit unexpected to have everything else displayed, but at least I have a reason. 18:25
psch m: grammar G { token TOP { <a> <.ws> <b> <.ws> <c> }; token a { "my" }; token b { 'Int'? }; token c { '$' \w+ } }; G.parse('my $a')<a b c>>>.Str.say # kinda like that
camelia rakudo-moar a557a1: OUTPUTĀ«(my $a)ā¤Ā»
psch well, Match.perl obviously overflows camelias output, but i guess you get the gist 18:26
DrForr So to speak :)
psch .dump is kind of for "what did we match" - or, well, i use it like that
DrForr Yah, the grammar wasn't my concern, it was the data structure.
psch so if you didn't match anything but are allowed to not match anything it isn't useful to know that you didn't match anything... 18:27
but that's somewhat of a post-rationalization, soo...
DrForr It makes sense from a dev standpoint; it just confused me for a few minutes. 18:28
No worries.
psch i'm just saying i didn't write it, so i don't really know the reason for the implemented behavior... :) 18:31
DrForr I understand, no problem. 18:37
tbrowder psch: It doesn't look like rx is recognized in nqp
psch tbrowder: right, but why do you need it? as in, why isn't a // literal enough? 18:38
tbrowder I'm trying to fix table parsing in Pod.npq. I would like to use certain regexes multiple times and would like some way to do that without multiple /ugly and possibly wrong regexes here/ uses scattered throughout the code. I guess I can try to use a // inside a sub but I'm trying to find as high a level way as possible without the full blown grammar. 18:41
s/npq/nqp/g 18:42
i.e., i'm trying to write easy to read and maintainable code 18:43
BrokenRobot nqp: my $rx := /foo/; say("foobarfoo" ~~ /<$rx>\w\**3<$rx>/) 18:45
camelia nqp-moarvm: OUTPUTĀ«Substring length (-12) cannot be negativeā¤ at gen/moar/stage2/QRegex.nqp:1837 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/QRegex.moarvm:Str)ā¤ from gen/moar/stage2/NQPCORE.setting:714 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/NQPCORE.setting.moarvm:joinā€¦Ā»
BrokenRobot nqp: my $rx := /foo/; say("foobarfoo" ~~ /<$rx>\w**3<$rx>/)
camelia nqp-moarvm: OUTPUTĀ«foobarfooā¤Ā»
BrokenRobot tbrowder: ^
psch tbrowder: as BrokenRobot (and me earlier as well) showed, you can assign // literals to lexicals 18:46
tbrowder: that might not solve your scoping issue, but if you need these regex in so many unrelated places they might need to be a grammar (maybe even in a different file) anyway 18:47
tbrowder it should, now that we are using the correct syntax, thanks, all! 18:50
BrokenRobot PR to undo "No" chars in Str.Int handling as per irclog.perlgeek.de/perl6/2016-07-04#i_12782986 18:59
github.com/rakudo/rakudo/pull/808
Spectest run in 81 wallclock secs is a thing of beauty :) 19:00
If parse stage gets down to under 10 seconds, hacking on rakudo will be actually fun
psch i like that 19:07
i mean, having it in some cases but not others - and *also* actually having &unival - just makes it weird
i'll wait for appveyor and travis though, just for formality reasons 19:08
dalek ast: 9d3a8f6 | (Zoffix Znet)++ | S12-enums/basic.t:
Check .enums returns a Map (RT#128138)
19:11
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128138
BrokenRobot How do I do the fudge stuff with roast? I see ./fudge and ./fudgeall and it looked like running ./fudgeall moar test-file.t worked for one test, but now it's failing 19:31
i.e. doesn't seem to be fudging properly 19:32
dalek kudo/nom: e28305c | (Zoffix Znet)++ | src/core/Str.pm:
Revert handling of 'No' chars in Str.Int

The feature was added as a fix for RT#127866, however, Str.Numeric and especially val() remained unable to handle 'No' characters.
After conversation with TimToady
  (irclog.perlgeek.de/perl6/2016-07-04#i_12782986), it was ruled
that handling of 'No' characters should be explicitly requested by the programmer with unival() and so this commit undoes such handling in Str.Int case to maintain consistency.
19:33
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127866
rakudo/nom: 1ed3de3 | lizmat++ | src/core/Str.pm:
BrokenRobot Specifically, I ran ./fudgeall rakudo.moar ./S32-str/substr.t and I see FUDGED in the output, but the test run still fails: gist.github.com/zoffixznet/000b627...a8a081cde1
timotimo you intended to fudge that particular test? 19:35
ah
the # in the output confuses the tap harness
BrokenRobot Ah
K
timotimo please remove the rt ticket number from the todo message and into a comment, or name the test that or whatever :)
we have some files called rt-12345.t i think 19:36
BrokenRobot I removed it but it still fails: gist.github.com/zoffixznet/7a93d17...e14ab89e0f 19:37
fugit... It wasn't my change that made it fail. I guess I'm not fudging correctly 19:40
dalek ast: b4254c2 | (Zoffix Znet)++ | S32-str/substr.t:
Check out-of-range .substr has correct ranges in error message

RT#128039
19:41
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128039
BrokenRobot Yup. spectest runs clean when make spectesting 19:48
dalek kudo/nom: 234aa4f | lizmat++ | src/core/Pair.pm:
Make Pair.new 10% faster for Cool:D => Mu

By adding a candidate for Cool:D => Mu. This candidate *does* get JITted, whereas the the Mu => Mu candidate isn't. Otherwise these two candidates are the same. Felt like a simple change that has a lot of benefits, since mostly we're putting using Cool things as a key in Pairs anyway.
20:26
nine lizmat: Cool idea :) 20:32
timotimo wow, that's an unexpected win to me 20:33
lizmat the inspiration was jnthn remark about "It's possible that it's too polymorphic and so exceeds the number of specializations allowed during startup since we create various pairs then." earlier today 20:40
nine psch: you may not have found a solution for the EVAL issue, but your workaround just helped big time debuggin RT #128457 :) 20:41
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128457
nine Zoffix: ^^^
Zoffix: seems very much like there's still a bit of corruption possible with compile time EVALs 20:42
timotimo lizmat: did you see my multi-page coverage report prototype?
lizmat timotimo: no, link ? 20:43
timotimo it's reporting the filenames wrong (off by one, afaict), but other than that it's much better than the single html page that'd blow up your 'puter when you try to look at it
hack.p6c.org/~timo/coverage/
nine BrokenRobot: up there ^^^
timotimo i got MasterDuke to look at it; he'll hopefully be able to get the off-by-one fixed, and we could surely also get better HTML going so that the results are easier to see at a glimpse
lizmat timotimo: what does covered/uncovered/ignored/total mean in this context? 20:44
timotimo "has this line ever been run during the whole spec test run?" is covered
"ignored" means "moar --dump Foo.moarvm didn't output an annotation for this line, so it can't ever get a hit" 20:45
uncovered are lines that do show up in moar --dump, but have not emitted a HIT in the report
nine BrokenRobot: not only is GLOBALish an NQPMu, ::?PACKAGE is a CompUnit::PrecompilationDependency::File which really does not make any sense at all
timotimo there are some results that make very littel sense; like consecutive lines where only the first one is green; i suspect it may be thigns being thrown out by spesh or something? 20:46
so if you want to find a specific file, you currently have to look at the filename in the very last line and open that file from the list instead
lizmat: in its current state it's not useful for "are our tests complete yet?", but i think when looked at more carefully we can actually spot things like multi sub candidates that aren't being tested at all 20:51
like, could it be we're not testing []:!delete?
lizmat pretty sure we do, actually 20:52
but maybe not :-)
timotimo well, in that case the coverage report is bogus in that part :D
the report for Slip.pm has all the positional access operators in it 20:53
psch nine: oh, geez 20:56
nine: that all sounds kind of terrible, to be honest
nine: i mean, i'm somewhat glad (in a vindictive way) it's also not completely fixed on moar, but...
i really wish i had complete enough insight into the whole architecture there, and also formal training :P 20:57
i mean, obviously i'm not happy stuff's broken 21:08
and that it proves itself this fscking hard to fix is also really grating on me
but at least it's honest-to-god, really not easy
nine psch: took me some 6 weeks to get it working as well as it does on moar
psch nine: yeah, i recognize that, and i really just don't want to sound ungrateful or unappreciative or anything 21:09
nine psch: you aren't
psch thanks :)
nine Ah, this debug output actually makes sense! 21:14
The EVAL in question _is_ in CompUnit::PrecompilationDependency::File. That's why ::?PACKAGE is pointing there.
Zoffix nine, sweet \o/ 21:39
Well, I guess sweet in a sense there's progress with the bug :) 21:40
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2016/07/04/...er-starts/ 21:58
Zoffix lizmat++ good weekyly 22:02
tbrowder ++lizmat ditto (and thanks) 22:15
lizmat good night, #perl6-dev! 22:19
Zoffix night 22:20
dalek ast: 2f8f0a4 | (Zoffix Znet)++ | S32-list/combinations.t:
Group related tests
22:25
ast: 0ff33b3 | (Zoffix Znet)++ | S32-list/combinations.t:
Test non-Int values in combinations()

RT #127779
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127779
Zoffix I don't know about adding tests for rt.perl.org/Ticket/Display.html?id=126976 It's '/'.IO.mkdir ... seems stepping out of boundaries 22:44
And on a related note, I'm getting inconsistent results with '/'.IO.mkdir on Windows: rt.perl.org/Ticket/Display.html?id=128537 22:47
dalek ast: 7a5ad3c | (Zoffix Znet)++ | S02-lists/indexing.t:
Array out-of-range from-end slicing has "Effective Index" in error

RT#126503
23:01
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=126503
dalek ast: 935dae2 | (Zoffix Znet)++ | S16-filehandles/misc.t:
$*IN.words.unique with no new line at the end must NOT hang

RT#126487
23:34
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=126487
tbrowder please review PR: github.com/perl6/specs/pull/112 23:41