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 |