Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-06-20

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:20 Zoffix Curious, is there a way to kill a hung test without aborting the entire make spectest?
00:26 timotimo yeah, i usually use htop, find it, send it the sigterm
00:26 timotimo it'll then just count as failed/aborted
00:27 Zoffix thanks
00:34 Zoffix By "it" what do you mean? :) I found moar process killed it, and the entire testsuite got aborted
00:38 AlexDaniel joined #perl6-dev
00:38 AlexDaniel bisect: ++.++
00:39 bisectable AlexDaniel: exit code is 1 on both starting points, bisecting by using the output
00:39 bisectable AlexDaniel: (2016-06-09) https://github.com/rakudo/rakudo/commit/b6902e5
00:39 AlexDaniel well, that's not exactly what I wanted :D
00:39 AlexDaniel bisect: bad=HEAD~200 ++.++
00:39 bisectable AlexDaniel: on both starting points the exit code is 1 and the output is identical as well
00:39 AlexDaniel bisect: bad=HEAD~100 ++.++
00:39 bisectable AlexDaniel: on both starting points the exit code is 1 and the output is identical as well
00:40 AlexDaniel bisect: bad=HEAD~50 ++.++
00:40 bisectable AlexDaniel: exit code is 1 on both starting points, bisecting by using the output
00:40 bisectable AlexDaniel: (2016-06-09) https://github.com/rakudo/rakudo/commit/b6902e5
00:40 AlexDaniel oh well
00:41 Zoffix bisect: try EVAL '++.++'; say "Error: $!"
00:41 bisectable Zoffix: exit code is 0 on both starting points, bisecting by using the output
00:41 bisectable Zoffix: (2016-06-09) https://github.com/rakudo/rakudo/commit/b6902e5
00:41 AlexDaniel okay, so the change was before Christmas… I should really build another thousand before
00:41 AlexDaniel gonna take a day though :P
00:49 Zoffix damn supply/syntax hangs when spectesting but not when run individually :( bloody annoying
00:50 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'.
00:50 timotimo oh, maybe
00:51 Zoffix ... I think... (ending syntax moved froward, but ending another one ended the testsuite, but that might've been the last test file)
01:06 Zoffix joined #perl6-dev
01:34 timotimo it could just be ending that process ended the whole thing because it was the only test file remaining
01:37 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:39 Zoffix Yup. No hangs :|
01:41 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
01:46 timotimo but not when run in isolation, for example
01:46 FROGGS joined #perl6-dev
01:46 Zoffix true
01:46 timotimo which is super annoying
01:46 timotimo 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?
01:46 Zoffix nope
01:46 timotimo i think jnthn wrote about that in one of his reports
01:49 ilbot3 joined #perl6-dev
01:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
02:22 Zoffix There's no nqp op to check for just NaN, is there? /me only sees isnanorinf
02:29 Zoffix Ah   var != var :)
03:23 Zoffix m: use nqp; my $n = 2e2; nqp::isnum($n) and say "ye"
03:23 camelia rakudo-moar 1d93ad: ( no output )
03:23 Zoffix :/
03:59 Zoffix PR to get rid of a useless conditional: https://github.com/rakudo/rakudo/pull/795
04:00 Zoffix m: say split /o/, 'fobomobo', NaN
04:00 camelia rakudo-moar 1d93ad: OUTPUT«(f b m b )␤»
04:00 Zoffix m: say split 'o', 'fobomobo', NaN
04:00 camelia rakudo-moar 1d93ad: OUTPUT«This type cannot unbox to a native integer: P6opaque, Num␤  in block <unit> at <tmp> line 1␤␤»
04:00 Zoffix PR to fix both of the above (RT#128034 is part of it): https://github.com/rakudo/rakudo/pull/796
04:00 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128034
04:00 * Zoffix goes to bed
05:47 lizmat joined #perl6-dev
05:51 dalek rakudo/nom: b5136cf | (Zoffix Znet)++ | src/core/Str.pm:
05:51 dalek rakudo/nom: Remove needless check
05:51 dalek rakudo/nom:
05:51 dalek rakudo/nom: $limit is already checked for <= condition at the start of the method
05:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b5136cf3d4
05:51 dalek rakudo/nom: e3a3d26 | lizmat++ | src/core/Str.pm:
05:51 dalek rakudo/nom: Merge pull request #795 from zoffixznet/split-remove-useless-check
05:51 dalek rakudo/nom:
05:51 dalek rakudo/nom: Remove needless check
05:51 dalek rakudo/nom:
05:51 dalek rakudo/nom: Good catch!
05:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e3a3d26c83
07:26 [Tux] This is Rakudo version 2016.06-3-ge3a3d26 built on MoarVM version 2016.06
07:26 [Tux] test            16.265
07:26 [Tux] test-t           9.485
07:26 [Tux] csv-parser      22.278
07:29 [Tux] 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 [Tux] but if you want to look at the vice-versa influence, you should look at test-t
07:30 [Tux] 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:54 lizmat joined #perl6-dev
08:15 brrt joined #perl6-dev
08:16 RabidGravy joined #perl6-dev
08:36 sno joined #perl6-dev
08:41 nine [Tux]: which one does http://tux.nl/Talks/CSV6/speed4.html show?
08:45 |Tux| test-t
09:09 psch humm.  it seems like i'm not actually passing the JAST::Class object from outer to nested cu :/
09:09 psch which is kind of troublesome, because i'm sure the code *should* do that /o\
09:15 psch yeah, looks like it.  the key which points at the classname exists, but the value gets me an NPE
09:16 psch 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:17 psch 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 psch like, i'm gravitating towards "just put all the needed information in the key", but that's terrible /o\
10:42 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:44 Zoffix three places being ones where $limit is normalized into a numeric and the check then becomes just $limit != $limit
10:59 brrt joined #perl6-dev
11:14 dalek star: 6cb0dbe | (Steve Mynott)++ | docs/announce/2016.07.md:
11:14 dalek star: fill out probable R* 2016.07 announce based on last two months R releases
11:14 dalek star: review: https://github.com/rakudo/star/commit/6cb0dbe12a
11:25 bartolin joined #perl6-dev
11:37 stmuk_ joined #perl6-dev
11:51 [Coke] ~
12:12 ZoffixW joined #perl6-dev
12:12 ZoffixW So is this the only thing that I need to send to TPF or are there some other documents? http://www.perlfoundation.org/attachment/legal/cla.pdf
12:15 stmuk_ joined #perl6-dev
12:16 llfourn joined #perl6-dev
12:19 lizmat joined #perl6-dev
12:29 cognominal joined #perl6-dev
12:32 Woodi joined #perl6-dev
12:35 [Coke] ZoffixW: that's it.
12:35 ZoffixW Thanks.
12:36 nine ZoffixW: Just to make sure: you have already changed your will to make TPF your only heir, haven't you?
12:38 * ZoffixW isn't quite sure what that means
12:38 nine ZoffixW: just a joke :)
12:38 ZoffixW Oh, I misparsed '
12:39 ZoffixW Oh, I misparsed 'will' :)
13:03 lizmat joined #perl6-dev
13:04 M-tadzik joined #perl6-dev
13:06 Woodi joined #perl6-dev
13:13 skids joined #perl6-dev
13:26 brrt joined #perl6-dev
14:27 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␤␤»
14:27 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«split NaN PR makes it 4.407615581619% slower␤»
14:27 BrokenRobot not worth it
14:31 BrokenRobot 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
14:32 nine Though it's hard to keep track with those functions being so long
14:32 jnthn Also, return got cheaper recently :)
14:36 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
14:36 BrokenRobot spectest under a minute :P \o/
14:37 BrokenRobot s/one/on/;
14:47 BrokenRobot 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]␤»
15:40 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: https://github.com/rakudo/rakudo/pull/796
15:44 lizmat BrokenRobot: will look at it after Damian's talk  :-)
15:50 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: http://irclog.perlgeek.de/perl6-dev/2016-06-17#i_12687099
15:51 BrokenRobot 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␤␤»
15:51 BrokenRobot (and the above is LTA error if they're supposed to work only on Int)
16:07 dalek rakudo/nom: a223163 | lizmat++ | src/ (5 files):
16:07 dalek rakudo/nom: Implement "is required" with benefits
16:07 dalek rakudo/nom:
16:07 dalek rakudo/nom: - allow for "is required(False)" for not requiring it after all
16:07 dalek rakudo/nom:   So you can actually make it conditional on e.g. a parameterized
16:07 dalek rakudo/nom:   role.
16:07 dalek rakudo/nom: - allow for 'is required("you should")', which customizes the
16:07 dalek rakudo/nom:   message given when an attribute is not specified
16:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a223163b3c
16:38 AlexDaniel joined #perl6-dev
17: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:09 BrokenRobot hehe
17:36 lizmat joined #perl6-dev
17:40 dalek rakudo/nom: b321ab4 | (Zoffix Znet)++ | tools/available-pm-names.pl6:
17:40 dalek rakudo/nom: Do not use now-internal and deprecated from-json.
17:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b321ab44e9
17:40 dalek rakudo/nom: 0e10f4e | lizmat++ | tools/available-pm-names.pl6:
17:40 dalek rakudo/nom: Merge pull request #797 from zoffixznet/from-json-tools-available-pm
17:40 dalek rakudo/nom:
17:40 dalek rakudo/nom: Do not use now-internal and deprecated from-json.
17:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0e10f4e70e
17:50 [Coke] nine: our hacking time is limited, don't let anyone give you any crap about prioritizing or lack of cycles.
17:54 * [Coke] gets a gazillion email alerts from niner.
17:55 * [Coke] sees they are all distinct. /me blames his mail sync frequency
17:57 nine [Coke]: nope, I've sent them in close succession.
17:58 nine I made sure all my suggestions were actually correct before sending them off.
17:59 vendethiel joined #perl6-dev
18:15 sno joined #perl6-dev
18:29 FROGGS joined #perl6-dev
19:00 dalek rakudo/nom: 8ad19e2 | lizmat++ | src/core/Backtrace.pm:
19:00 dalek rakudo/nom: Give Backtrace::Frame its own .new
19:00 dalek rakudo/nom:
19:00 dalek rakudo/nom: It's basically an internal class, and one should not create any of
19:00 dalek rakudo/nom: these by hand anyway.  So we can speed things up by creating a
19:00 dalek rakudo/nom: custom .new that takes 4 positionals rather than any number of nameds.
19:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8ad19e2ec3
19:32 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:55 lizmat not sure how important we think this is
19:55 lizmat but it looks like *all* classes get a BUILDALLPLAN, even if they don't need one:
19:55 lizmat 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)
19:55 camelia rakudo-moar 8ad19e: OUTPUT«((1, A, "a", "\$!a"), (13, A, "\$!a"))␤»
19:57 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:58 lizmat perhaps we need a "no buildplan" pragma ?
19:58 japhb joined #perl6-dev
20:02 timotimo not a bad idea
20:02 timotimo though the buildallplan is per type, not per instance. so at least that part's not so bad
20:02 lizmat yeah, true
20:03 lizmat 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
20:03 timotimo what i do know is it only works in build_least_derived
20:04 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"))␤»
20:05 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
20:05 lizmat oddly enough, without it, a lot of stuff breaks
20:05 [Coke] from src/Perl6/Metamodel/BUILDPLAN.nqp
20:05 lizmat and I guess we use the same buildplan for roles and classes, right ?
20:06 [Coke] I think so.
20:06 timotimo right, vivify
20:06 timotimo that makes sense
20:06 timotimo food time! bbl
20:50 |Tux| japhb, that is not how Chart::Strip works, but I can have a look
21:11 dalek rakudo/nom: ee663c4 | lizmat++ | src/core/Exception.pm:
21:11 dalek rakudo/nom: Don't leak the numeric cases into the message
21:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ee663c40ac
21:16 jnthn lizmat: Note that if it gets subclassed, then the parent's BUILDPLAN becomes relevant.
21:17 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 :)
21:17 jnthn I'm pretty sure I wrote a good explanation of why and what bug it fixed.
21:18 jnthn I think it was something related to meta-objects and mixins
21:18 jnthn (Thus implicating traits)
21:18 jnthn But git's better at remembering stuff than I am. :-)
21:19 jnthn I *think* it was something along the lines of lazy initialization gone bad, though.
21:20 lizmat cea3e99d83e208aaf6849c6b
21:21 jnthn oh man...
21:21 lizmat Avoid lazy allocation optimization on mixins.
21:21 lizmat
21:21 lizmat We may be mixing in to a meta-object, such as a routine, which may be
21:21 lizmat cloned; the delayed allocation then can cause very weird behaviors
21:21 lizmat where simply accessing something make stuff magically work. Now it'll
21:21 lizmat not-so-magically work all the time.
21:21 jnthn yeah, just shoved it into git show
21:21 jnthn I think I spent hours on that one... :)
21:21 lizmat ok, so the lazy int problem still exists
21:21 lizmat *init
21:22 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
21:22 jnthn Yup :)
21:23 jnthn Pretty sure I'd have added tests too :)
21:26 jnthn iirc, the bug disappeared when I put it into a test 'cus certain nestings inside blocks could hide it :)
21:26 jnthn Fun times... :P
21:27 jnthn Time for some rest...'night
21:30 timotimo gnite jnthn
21:31 lizmat gnite jnthn
21:34 * Zoffix mailed the CLA
21:35 Zoffix 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++
21:36 lizmat it had been a long time for me as well  :-)
22:03 sortiz joined #perl6-dev
22:18 AlexDaniel joined #perl6-dev
22:24 skids joined #perl6-dev
23:04 timotimo btyler_: i wonder what the comment about "a preemptive scheduler" someone quoted from yapc is all about
23:10 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)

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary