Zoffix Curious, is there a way to kill a hung test without aborting the entire make spectest? 00:20
timotimo yeah, i usually use htop, find it, send it the sigterm 00:26
it'll then just count as failed/aborted
Zoffix thanks 00:27
By "it" what do you mean? :) I found moar process killed it, and the entire testsuite got aborted 00:34
AlexDaniel bisect: ++.++ 00:38
bisectable AlexDaniel: exit code is 1 on both starting points, bisecting by using the output 00:39
AlexDaniel: (2016-06-09) github.com/rakudo/rakudo/commit/b6902e5
AlexDaniel well, that's not exactly what I wanted :D
bisect: bad=HEAD~200 ++.++
bisectable AlexDaniel: on both starting points the exit code is 1 and the output is identical as well
AlexDaniel bisect: bad=HEAD~100 ++.++
bisectable AlexDaniel: on both starting points the exit code is 1 and the output is identical as well
AlexDaniel bisect: bad=HEAD~50 ++.++ 00:40
bisectable AlexDaniel: exit code is 1 on both starting points, bisecting by using the output
AlexDaniel: (2016-06-09) github.com/rakudo/rakudo/commit/b6902e5
AlexDaniel oh well
Zoffix bisect: try EVAL '++.++'; say "Error: $!" 00:41
bisectable Zoffix: exit code is 0 on both starting points, bisecting by using the output
Zoffix: (2016-06-09) github.com/rakudo/rakudo/commit/b6902e5
AlexDaniel okay, so the change was before Christmasā€¦ I should really build another thousand before
gonna take a day though :P
Zoffix damn supply/syntax hangs when spectesting but not when run individually :( bloody annoying 00:49
timotimo Zoffix: i look at if the file it's executing is a .t file by scrolling all the way to the right 00:50
Zoffix timotimo, I think it actually worked the second time when I chose 'End process' instead of 'Kill process'.
timotimo oh, maybe
Zoffix ... I think... (ending syntax moved froward, but ending another one ended the testsuite, but that might've been the last test file) 00:51
timotimo it could just be ending that process ended the whole thing because it was the only test file remaining 01:34
Zoffix Well, I'm stumped that I can't run the spectest in a VM on my home box. I even installed a brand new Debian and it still hung. Works fine on my Linode server. And it wasn't hanging in the past. Building 2016.05 checkout right now to see if it'll hang too 01:37
Yup. No hangs :| 01:39
timotimo yeah, we've had flappy tests like that for a long time now. and it's been the syntax.t test at least twice in the past 01:41
Zoffix But it hangs constantly
timotimo but not when run in isolation, for example 01:46
Zoffix true
timotimo which is super annoying
did you read/hear about the one where our test suite would hang on windows because the test runner was always only grabbing output from one process at a time, and that caused a deadlock situation?
Zoffix nope
timotimo i think jnthn wrote about that in one of his reports
Zoffix There's no nqp op to check for just NaN, is there? /me only sees isnanorinf 02:22
Ah var != var :) 02:29
m: use nqp; my $n = 2e2; nqp::isnum($n) and say "ye" 03:23
camelia ( no output )
Zoffix :/
PR to get rid of a useless conditional: github.com/rakudo/rakudo/pull/795 03:59
m: say split /o/, 'fobomobo', NaN 04:00
camelia rakudo-moar 1d93ad: OUTPUTĀ«(f b m b )ā¤Ā»
Zoffix m: say split 'o', 'fobomobo', NaN
camelia rakudo-moar 1d93ad: OUTPUTĀ«This type cannot unbox to a native integer: P6opaque, Numā¤ in block <unit> at <tmp> line 1ā¤ā¤Ā»
Zoffix PR to fix both of the above (RT#128034 is part of it): github.com/rakudo/rakudo/pull/796
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128034
Zoffix goes to bed
dalek kudo/nom: b5136cf | (Zoffix Znet)++ | src/core/Str.pm:
Remove needless check

  $limit is already checked for <= condition at the start of the method
05:51
kudo/nom: e3a3d26 | lizmat++ | src/core/Str.pm:
Merge pull request #795 from zoffixznet/split-remove-useless-check

Remove needless check
Good catch!
[Tux] This is Rakudo version 2016.06-3-ge3a3d26 built on MoarVM version 2016.06 07:26
test 16.265
test-t 9.485
csv-parser 22.278
I just realized that if we *only* look at the performance gain in perl6 itself, you should look at the timing of test, not at test-t 07:29
but if you want to look at the vice-versa influence, you should look at test-t
the latter e.g. uses lizmat's split on @needles, which is an addition to the language that can be used to speed performance 07:30
nine [Tux]: which one does tux.nl/Talks/CSV6/speed4.html show? 08:41
|Tux| test-t 08:45
psch humm. it seems like i'm not actually passing the JAST::Class object from outer to nested cu :/ 09:09
which is kind of troublesome, because i'm sure the code *should* do that /o\
yeah, looks like it. the key which points at the classname exists, but the value gets me an NPE 09:15
i mean, it goes via HLL::Compiler.compile, which should be able to deal with that kind of pair in a named argument, no..? 09:16
i'm getting more and more confident that, even if this is the right area to fix, i'm not clever enough to think of a sensible solution :| 09:17
like, i'm gravitating towards "just put all the needed information in the key", but that's terrible /o\
Zoffix lizmat, yeah, I couldn't figure out anything better than quietly. My first version avoided it but had that throw duplicated in 3 places. Maybe for performance reasons that's alright ĀÆ\_(惄)_/ĀÆ 10:42
three places being ones where $limit is normalized into a numeric and the check then becomes just $limit != $limit 10:44
dalek ar: 6cb0dbe | (Steve Mynott)++ | docs/announce/2016.07.md:
fill out probable R* 2016.07 announce based on last two months R releases
11:14
[Coke] ~ 11:51
ZoffixW So is this the only thing that I need to send to TPF or are there some other documents? www.perlfoundation.org/attachment/legal/cla.pdf 12:12
[Coke] ZoffixW: that's it. 12:35
ZoffixW Thanks.
nine ZoffixW: Just to make sure: you have already changed your will to make TPF your only heir, haven't you? 12:36
ZoffixW isn't quite sure what that means 12:38
nine ZoffixW: just a joke :)
ZoffixW Oh, I misparsed '
Oh, I misparsed 'will' :) 12:39
BrokenRobot m: my $before = (43.95952076 + 44.8606261 + 43.8775615) / 3; my $after = (45.2308837 + 46.12545279 + 47.459856) / 3; say "split NaN PR makes it {abs($before - after) / max($before, $after) * 100}% slower" 14:27
camelia rakudo-moar e3a3d2: OUTPUTĀ«===SORRY!=== Error while compiling <tmp>ā¤Undeclared routine:ā¤ after used at line 1ā¤ā¤Ā»
BrokenRobot m: my $before = (43.95952076 + 44.8606261 + 43.8775615) / 3; my $after = (45.2308837 + 46.12545279 + 47.459856) / 3; say "split NaN PR makes it {abs($before - $after) / max($before, $after) * 100}% slower"
camelia rakudo-moar e3a3d2: OUTPUTĀ«split NaN PR makes it 4.407615581619% slowerā¤Ā»
BrokenRobot not worth it
and I didn't remove all the $limit <= 2 checks. Forgot them in other multies 14:31
nine A couple of "return"s could be removed as well
Though it's hard to keep track with those functions being so long 14:32
jnthn Also, return got cheaper recently :)
BrokenRobot 32-core/120GB RAM preemptible instance on GCE that's used just one weekends (14 hours per day) costs $58.92 per month. Not bad at all 14:36
BrokenRobot will try it out tonight
spectest under a minute :P \o/
s/one/on/; 14:37
m: my $before = (46.3185020 + 45.9699845 + 44.6248218) / 3; my $after = (45.08832670 + 46.6894586 + 45.5962366) / 3; say "split NaN PR makes it {abs($before - $after) / max($before, $after) * 100}% slower [$before / $after]" 14:47
camelia rakudo-moar e3a3d2: OUTPUTĀ«split NaN PR makes it 0.33537170538% slower [45.637769433 / 45.791340633]ā¤Ā»
BrokenRobot lizmat: I updated the PR to use a different method. This one seems to slow down by 0.34% vs 4.41% of the old approach: github.com/rakudo/rakudo/pull/796 15:40
lizmat BrokenRobot: will look at it after Damian's talk :-) 15:44
BrokenRobot moritz: the mod/div bug is just a bad example in the ticket. The issue is mod/div only work on Ints, but spec (and TimToady) say it should be numerics: irclog.perlgeek.de/perl6-dev/2016-0...i_12687099 15:50
m: say 2.5 mod 2.5 15:51
camelia rakudo-moar e3a3d2: OUTPUTĀ«Cannot resolve caller infix:<div>(Rat, Rat); none of these signatures match:ā¤ (Int:D \a, Int:D \b)ā¤ (int $a, int $b --> int)ā¤ in block <unit> at <tmp> line 1ā¤ā¤Ā»
BrokenRobot (and the above is LTA error if they're supposed to work only on Int)
dalek kudo/nom: a223163 | lizmat++ | src/ (5 files):
Implement "is required" with benefits

  - allow for "is required(False)" for not requiring it after all
   So you can actually make it conditional on e.g. a parameterized
   role.
  - allow for 'is required("you should")', which customizes the
   message given when an attribute is not specified
16:07
nine Sigh... PR 729 breaks the build in the rare case that one had rakudo installed before, it breaks installed modules and it breaks panda. Yet I'm flamed for not merging it right away... 17:07
BrokenRobot hehe 17:09
dalek kudo/nom: b321ab4 | (Zoffix Znet)++ | tools/available-pm-names.pl6:
Do not use now-internal and deprecated from-json.
17:40
kudo/nom: 0e10f4e | lizmat++ | tools/available-pm-names.pl6:
Merge pull request #797 from zoffixznet/from-json-tools-available-pm

Do not use now-internal and deprecated from-json.
[Coke] nine: our hacking time is limited, don't let anyone give you any crap about prioritizing or lack of cycles. 17:50
[Coke] gets a gazillion email alerts from niner. 17:54
[Coke] sees they are all distinct. /me blames his mail sync frequency 17:55
nine [Coke]: nope, I've sent them in close succession. 17:57
I made sure all my suggestions were actually correct before sending them off. 17:58
dalek kudo/nom: 8ad19e2 | lizmat++ | src/core/Backtrace.pm:
Give Backtrace::Frame its own .new

It's basically an internal class, and one should not create any of these by hand anyway. So we can speed things up by creating a custom .new that takes 4 positionals rather than any number of nameds.
19:00
japhb |Tux|: Can you force the speed4.html graphs to actually be rooted at 0 in the vertical axis? They seem to have some adaptive range, but it's making it difficult to see the actual amount of progress. 19:32
lizmat not sure how important we think this is 19:55
but it looks like *all* classes get a BUILDALLPLAN, even if they don't need one:
m: use nqp; class A { has $.a; method new($a) { nqp::create(self)!SET-SELF($a) }; method !SET-SELF($!a) { self }}; my $a = A.new(42); dd nqp::findmethod($a.HOW,"BUILDALLPLAN")($a.HOW, $a)
camelia rakudo-moar 8ad19e: OUTPUTĀ«((1, A, "a", "\$!a"), (13, A, "\$!a"))ā¤Ā»
lizmat if a class has a .new and no mention of .bless, I think it would be save to not have to have a buildplan made or kept 19:57
perhaps we need a "no buildplan" pragma ? 19:58
timotimo not a bad idea 20:02
though the buildallplan is per type, not per instance. so at least that part's not so bad
lizmat yeah, true
also, what is the function of "opcode 13" in the buildplan?? is it intended to indicate we're done with a particular attribiute ? 20:03
timotimo i'm not actually sure
what i do know is it only works in build_least_derived
lizmat m: use nqp; class A { has $!a; has $!b }; my $a = A.new(); dd nqp::findmethod($a.HOW,"BUILDALLPLAN")($a.HOW, $a) 20:04
camelia rakudo-moar 8ad19e: OUTPUTĀ«((13, A, "\$!b"), (13, A, "\$!a"))ā¤Ā»
lizmat timotimo: and there it just does a gatattr that goes nowhere 20:05
[Coke] # 13 class attr_name = touch/vivify attribute if part of mixin
lizmat oddly enough, without it, a lot of stuff breaks
[Coke] from src/Perl6/Metamodel/BUILDPLAN.nqp
lizmat and I guess we use the same buildplan for roles and classes, right ?
[Coke] I think so. 20:06
timotimo right, vivify
that makes sense
food time! bbl
|Tux| japhb, that is not how Chart::Strip works, but I can have a look 20:50
dalek kudo/nom: ee663c4 | lizmat++ | src/core/Exception.pm:
Don't leak the numeric cases into the message
21:11
jnthn lizmat: Note that if it gets subclassed, then the parent's BUILDPLAN becomes relevant. 21:16
lizmat jnthn: so why is the "touch" needed for BUILD_DERIVED, but not for BUILDALL ? 21:17
jnthn git blame and find the commit that added it :)
I'm pretty sure I wrote a good explanation of why and what bug it fixed.
I think it was something related to meta-objects and mixins 21:18
(Thus implicating traits)
But git's better at remembering stuff than I am. :-)
I *think* it was something along the lines of lazy initialization gone bad, though. 21:19
lizmat cea3e99d83e208aaf6849c6b 21:20
jnthn oh man... 21:21
lizmat Avoid lazy allocation optimization on mixins.
We may be mixing in to a meta-object, such as a routine, which may be
cloned; the delayed allocation then can cause very weird behaviors
where simply accessing something make stuff magically work. Now it'll
not-so-magically work all the time.
jnthn yeah, just shoved it into git show
I think I spent hours on that one... :)
lizmat ok, so the lazy int problem still exists
*init
jnthn I think that commit successfully eliminates doing it in places where it could have bad effects. 21:22
lizmat yeah, confirm: if I remove that getattr, stuff breaks in roast
jnthn Yup :)
Pretty sure I'd have added tests too :) 21:23
iirc, the bug disappeared when I put it into a test 'cus certain nestings inside blocks could hide it :) 21:26
Fun times... :P
Time for some rest...'night 21:27
timotimo gnite jnthn 21:30
lizmat gnite jnthn 21:31
Zoffix mailed the CLA 21:34
Pretty sure this is the first time I mailed a physical letter in my adult life. Had to buy two envelopes because I messed up the first one :P 21:35
lizmat Zoffix++
it had been a long time for me as well :-) 21:36
timotimo btyler_: i wonder what the comment about "a preemptive scheduler" someone quoted from yapc is all about 23:04
Zoffix What can be used to dump some variable? I wanna see the guts of a few vars in Perl6::Pod, but using print() tells me can't stringify and using dd() tells me Cannot invoke this object (REPR: Null; VMNull) 23:10