Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2016-12-21

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:05 pyrimidine joined #moarvm
00:22 pyrimidine joined #moarvm
00:41 pyrimidine joined #moarvm
00:51 pyrimidine joined #moarvm
01:01 pyrimidine joined #moarvm
02:48 ilbot3 joined #moarvm
02:48 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
02:52 pyrimidine joined #moarvm
03:01 pyrimidine joined #moarvm
03:11 colomon_ joined #moarvm
03:11 pyrimidine joined #moarvm
03:19 stmuk_ joined #moarvm
03:20 pyrimidine joined #moarvm
03:29 pyrimidine joined #moarvm
03:39 pyrimidine joined #moarvm
03:49 pyrimidine joined #moarvm
03:58 pyrimidine joined #moarvm
04:07 pyrimidine joined #moarvm
04:25 leego joined #moarvm
04:26 pyrimidine joined #moarvm
04:35 pyrimidine joined #moarvm
04:53 pyrimidine joined #moarvm
05:01 pyrimidine joined #moarvm
05:03 pyrimidi_ joined #moarvm
05:21 pyrimidine joined #moarvm
05:31 pyrimidine joined #moarvm
05:40 pyrimidine joined #moarvm
05:58 pyrimidine joined #moarvm
06:16 pyrimidine joined #moarvm
06:26 pyrimidine joined #moarvm
06:35 pyrimidine joined #moarvm
06:45 pyrimidine joined #moarvm
06:54 pyrimidine joined #moarvm
07:03 pyrimidine joined #moarvm
07:22 pyrimidine joined #moarvm
07:32 pyrimidine joined #moarvm
07:45 Dunearhp joined #moarvm
07:50 pyrimidine joined #moarvm
08:00 domidumont joined #moarvm
08:07 domidumont joined #moarvm
08:11 sivoais_ joined #moarvm
08:42 dalek MoarVM/even-moar-jit: 52ef878 | brrt++ | / (5 files):
08:42 dalek MoarVM/even-moar-jit: Write register specification from tile definitions
08:42 dalek MoarVM/even-moar-jit:
08:42 dalek MoarVM/even-moar-jit: This is intended to replace the use of the template pointer and the
08:42 dalek MoarVM/even-moar-jit: 'vtype' to determine which values should live in registers.
08:42 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/52ef878477
09:34 pyrimidi_ joined #moarvm
10:08 brrt joined #moarvm
10:08 brrt \o
10:08 nwc10 o/
10:10 pyrimidine joined #moarvm
10:10 brrt i'm decently happy about the register specification logic, but I need to figure some bits out yet
10:14 jnthn moarning o/
10:20 brrt moarning jnthn
10:20 brrt perl6 day today?
10:20 jnthn Aye
10:21 jnthn Also last working day for me before Christmas break. :)
10:23 jnthn This turns out to be one of the years where out of the 4 national holidays that .cz has around this season, 3 of them fall on weekends.
10:34 brrt :last-workday<nice>, :holiday-on-weekends<better luck next year>
10:34 jnthn Indeed :)
10:35 jnthn Ah well, I'd got plenty of spare vacation days :)
10:35 brrt @$work, most people are having the last workday as well
10:35 brrt i have just about enough
10:36 brrt will be glad to be taking a holiday
10:36 jnthn Yeah, I need some good rest :)
10:37 brrt hehe, it will be the first time i get some *real* time for MoarVM soon
10:38 brrt so i hope to make some progress. but then again, christmas
10:38 jnthn Yes, remember to relax some too :)
10:38 jnthn Well, I did what I immediately could on the OO::Monitors issue...
10:38 * jnthn ponders what to look at next
10:39 brrt ehm, could you fix the expr jit register allocator, if you have nothing better to do? ;-)
10:39 jnthn :P
10:39 jnthn I think you're in a better place to do that :-)
10:40 brrt oh, can i bug you about the extract-spesh-allocator thingy by any chance
10:40 brrt do you think it's a good idea, or doesn't it matter sufficiently?
10:40 domidumont joined #moarvm
10:40 jnthn Oh, right, I can look at that now :)
10:41 jnthn I even saw the PR yesterday when looking at another one and thought "ah, I should review that" :)
10:42 dogbert17_ joined #moarvm
10:43 jnthn Yeah, I like it
10:44 jnthn But why was Travis sad...
10:44 jnthn huh wat https://travis-ci.org/MoarVM/MoarVM/jobs/168582210
10:45 jnthn Yeah, they look bogus fails where the Travis build agent fell offline or something
10:45 dalek MoarVM: aba07a2 | brrt++ | / (7 files):
10:45 dalek MoarVM: Extract spesh allocation from spesh
10:45 dalek MoarVM:
10:45 dalek MoarVM: The `spesh` allocator uses a strategy known as memory-region
10:45 dalek MoarVM: allocation and is suitable for more contexts than just `spesh`.
10:45 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/aba07a263d
10:45 dalek MoarVM: a645d7e | jnthn++ | / (7 files):
10:45 dalek MoarVM: Merge pull request #432 from MoarVM/extract-spesh-alloc
10:45 dalek MoarVM:
10:45 dalek MoarVM: Extract spesh allocation from spesh
10:45 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/a645d7edce
10:46 brrt cool, thanks :-)
10:46 dogbert17_ o/ so what will you hack on today?
10:47 jnthn Good question :)
10:48 jnthn https://rt.perl.org/Ticket/Display.html?id=130379 looks ungood
10:48 dogbert17_ :-) don't you have any longstanding issues you'd like to fix?
10:50 jnthn Well, hyper/race is pretty near the top of the list. Re-writing the scheduler also. Making await non-blocking for three. :-)
10:50 dogbert17_ perhaps something that is easy to reproduce?
10:50 jnthn I'm seeing if I can reproduce the one I linked
10:50 dogbert17_ cool
10:50 jnthn But I also wonder a little bit if it was another case of the thing I fixed yesterday, or in the alternate something else we've fixed recently.
10:51 dogbert17_ could be
10:51 jnthn We've had a couple of reports where the symptom was a crash in gc_mark of an MVMCallCapture
10:51 dogbert17_ m: class Foo { has $.a = Metamodel::ClassHOW.new_type(name => "Bar"); method comp { $!a.^compose } }; my $obj = Foo.new; $obj.comp; say $obj; #RT 128516
10:51 camelia rakudo-moar b8df3a: OUTPUT«(signal SEGV)»
10:51 jnthn o.O
10:56 dogbert17_ at lest it is easy to reproduce :-)
10:56 * dogbert17_ sips coffee
10:56 jnthn Aye
10:56 jnthn RT #130379 didn't explode with a normal build of HEAD
10:56 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130379
10:56 jnthn Trying it with GC stress now
10:57 nwc10 ASAN still chokes on t/spec/S32-str/encode.rakudo.moar
10:57 jnthn Alas, no such luck
11:00 dogbert17_ maybe you've already fixed it
11:01 jnthn That is very possible too
11:01 * jnthn comments on the tikcet
11:01 jnthn *ticket
11:06 * dogbert17_ sneaks away for a short lunch
11:06 jnthn :)
11:06 * jnthn has RT #128516 reproduced locally
11:35 Dunearhp joined #moarvm
11:47 jnthn Fixed the SEGV, and also a bug that was then exposed in Rakudo
11:47 yoleaux2 11:08Z <lizmat> jnthn: I've put it in a gist: https://gist.github.com/lizmat/afb86eeb90576ed32cb3f2b361fa2870
11:47 yoleaux2 11:20Z <lizmat> jnthn: the minimum case is: "my $a = 0.5e0; for ^100000 { $a.floor }" where floor takes between 60 and 194 msecs with rest remaining the same
11:48 jnthn spectesting now :)
11:55 dalek MoarVM: e2ffc35 | jnthn++ | src/6model/reprs/P6opaque.c:
11:55 dalek MoarVM: Don't allow re-compose of a P6opaque.
11:55 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/e2ffc3584b
12:03 jnthn lunch for me now also :)
12:07 jnthn .tell lizmat How are you determining that? :) When I run it under `time` then I get fairly little variance in the overall runtime.
12:07 yoleaux2 jnthn: I'll pass your message to lizmat.
12:09 jnthn .tell lizmat and in the profile it came out as spending 20%, 22%, 22%, 21% of time in there over 4 runs also
12:09 yoleaux2 jnthn: I'll pass your message to lizmat.
12:10 jnthn Really lunch :)
12:13 lizmat .
12:13 yoleaux2 12:07Z <jnthn> lizmat: How are you determining that? :) When I run it under `time` then I get fairly little variance in the overall runtime.
12:13 yoleaux2 12:09Z <jnthn> lizmat: and in the profile it came out as spending 20%, 22%, 22%, 21% of time in there over 4 runs also
12:13 nwc10 ilmari: ^^
12:13 lizmat jnthn: well, maybe it is a macOS specific thing than
12:13 lizmat *then
12:15 lizmat 260,266,487,261,440,277,290,255,279,395,276
12:16 lizmat hmmm... maybe it's an artefact of profiling: if the OS needs to pre-empt for something else, that time will show up in the place where execution takes place the most ?
12:16 lizmat in any case, I'm used to seeing maybe 20% variance in timing, not like a factor 0f 3.5 or so
12:17 lizmat anyways, afk for the rest of the day
12:41 jnthn Curious. Maybe that or maybe your CPU does some kind of performance scaling thing?
12:42 jnthn To control power/heat etc.
12:52 dogbert17_ what's on the fix list now?
12:52 jnthn That ASAN barf that nwc10 mentioned I think :)
12:52 dogbert17_ sounds interesting
12:53 jnthn Oh no, this is going to be about utf8-c8
12:54 jnthn RT #128184
12:54 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128184
12:57 dogbert17_ uh oh, no tasty SEGV in other words
13:00 jnthn Well, I've put off fixing it for a good while, so I should really do it
13:07 dogbert17_ I can always throw a juicy SEGV your way later if you're interested
13:17 jnthn I suspect redesigning this decoder will take a bit :)
13:18 jnthn I'm tired of patching it up.
13:18 timotimo yeah, utf8-c8 </3
13:24 brrt that is an interesting smiley :-o
13:26 notviki looks like a severed nutsack
13:27 notviki but I suspect it's 💔
13:31 jnthn o.O
13:32 notviki :}
13:32 dalek MoarVM/needless_mvmroot: 0a170ab | (Jimmy Zhuo)++ | src/spesh/deopt.c:
13:32 dalek MoarVM/needless_mvmroot: remove another unused MVMROOT
13:32 dalek MoarVM/needless_mvmroot: review: https://github.com/MoarVM/MoarVM/commit/0a170abe4c
13:32 jnthn Well done, you just made working on utf8-c8 feel comparatively painless :P
13:32 notviki \o/
13:38 brrt yeah, i had understood it to be a broken heart. it's just funny because it looks like HTML close tags?
13:39 jnthn Only if you've spent too long looking at HTML :P
13:39 brrt well, how long is too long, really
13:39 brrt it's HTML, so not very long
13:41 jnthn :)
14:02 * brrt wonders if he should start a clang-stfu branch
14:05 moritz call it silent-clang, just for the giggles :-)
14:05 brrt hehehe
14:10 timotimo i get a tremendous amount of output from libatomic_ops, btw
14:10 timotimo every single file it complains loudly about the piece of code that's meant to prevent loud complaining about some option
14:10 timotimo 3rdparty/libatomic_ops/src/atomic_ops/sysdeps/gcc/../standard_ao_double_t.h:36:37: warning: ‘-pedantic’ is not an option that controls warnings [-Wpragmas]
14:10 timotimo #     pragma GCC diagnostic ignored "-pedantic"
14:11 brrt oh, that's on GCC right
14:11 timotimo it is an gcc
14:11 brrt hmmm
14:11 brrt gcc has decided to become clangy...
14:32 pyrimidi_ joined #moarvm
14:40 dalek MoarVM/utf8-c8-rewrite: ef10f18 | jnthn++ | src/strings/utf8_c8.c:
14:40 dalek MoarVM/utf8-c8-rewrite: Update comments describing UTF8-C8.
14:40 dalek MoarVM/utf8-c8-rewrite:
14:40 dalek MoarVM/utf8-c8-rewrite: To match what it *should* be doing.
14:40 dalek MoarVM/utf8-c8-rewrite: review: https://github.com/MoarVM/MoarVM/commit/ef10f18785
14:40 dalek MoarVM/utf8-c8-rewrite: a17449b | jnthn++ | src/strings/utf8_c8.c:
14:40 dalek MoarVM/utf8-c8-rewrite: Start re-doing UTF8-C8 non-streaming decode.
14:40 dalek MoarVM/utf8-c8-rewrite:
14:40 dalek MoarVM/utf8-c8-rewrite: We don't try and trick a UTF-8 decoder with its own state model into
14:40 dalek MoarVM/utf8-c8-rewrite: playing along with your scheme; that proved fragile. Instead, just
14:40 dalek MoarVM/utf8-c8-rewrite: have our own decode loop where that need was thought out from the
14:40 dalek MoarVM/utf8-c8-rewrite: very start. Interestingly, this partial re-work that totally ignores
14:40 dalek MoarVM/utf8-c8-rewrite: normalization passes the majority of the tests and passes a number
14:40 dalek MoarVM/utf8-c8-rewrite: of todo'd tests also.
14:41 zakharyas joined #moarvm
15:32 dalek MoarVM/even-moar-jit: 4b8b2be | brrt++ | src/jit/ (4 files):
15:32 dalek MoarVM/even-moar-jit: Use register spec rather than template ptr
15:32 dalek MoarVM/even-moar-jit:
15:32 dalek MoarVM/even-moar-jit: Because live-range calculation overlaps with tree-node extraction, this
15:32 dalek MoarVM/even-moar-jit: use can't be removed as easily, and will have to wait for the move of
15:32 dalek MoarVM/even-moar-jit: node extraction to the tiler.
15:32 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/4b8b2be114
15:37 dalek MoarVM/even-moar-jit: 68d37f8 | brrt++ | src/jit/tile.c:
15:37 dalek MoarVM/even-moar-jit: Cosmetic change - call TileTree TreeTiler
15:37 dalek MoarVM/even-moar-jit:
15:37 dalek MoarVM/even-moar-jit: It's the state object of the tiling process, not really a tree, so I
15:37 dalek MoarVM/even-moar-jit: think the new name makes more sense than the old one did.
15:37 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/68d37f8dab
15:39 brrt once i've moved the tree node reading code to the tiler, i'll be ready to remove the template pointer
15:40 brrt interestingly; the node number stays, as it is equivalent to the 'virtual register index' of the tile
15:40 brrt and then we're just a bit more ready to finish and swap the linear scan allocator in
15:42 brrt (moving the tree extraction code to the tiler is an almost-but-not-quite mechanical transformation because it affects how the register allocator finds out the references)
15:46 jnthn Sounds like nice progress :)
15:46 * jnthn is fixing utf8-c8 to deal with normalization breaking its round-tripping
15:46 jnthn As well as the buffer overrun
15:47 domidumont joined #moarvm
16:19 dalek MoarVM/utf8-c8-rewrite: 22f1324 | jnthn++ | src/strings/utf8_c8.c:
16:19 dalek MoarVM/utf8-c8-rewrite: Properly handle normalization in utf8-c8.
16:19 dalek MoarVM/utf8-c8-rewrite:
16:19 dalek MoarVM/utf8-c8-rewrite: We can emit NFG synthetics into the result string, but only when the
16:19 dalek MoarVM/utf8-c8-rewrite: result of encoding them back to utf8-c8 later will not result in the
16:19 dalek MoarVM/utf8-c8-rewrite: byte sequence produced changing. Also, any normalization that changes
16:19 dalek MoarVM/utf8-c8-rewrite: the codepoints in any way will result in synthetics being inserted to
16:19 dalek MoarVM/utf8-c8-rewrite: ensure the round-trip.
16:19 dalek MoarVM/utf8-c8-rewrite:
16:19 dalek MoarVM/utf8-c8-rewrite: This passes the utf8-c8 tests that we passed before. It also passes
16:19 dalek MoarVM/utf8-c8-rewrite: encode.t without upsetting valgrind, and makes todo'd tests for
16:19 dalek MoarVM/utf8-c8-rewrite: utf8-c8 pass also, which will fix an RT.
16:19 jnthn Phew. :)
16:19 timotimo fantastic
16:19 jnthn The bad news is that the streaming version still needs re-doing
16:20 jnthn But I ain't doing that today :)
16:20 nwc10 so bottled utf8-c8 works, but the draft is off?
16:20 timotimo right. i'll be busy for rest of day with the insane idea of going christmas shopping in town
16:20 jnthn Something like
16:20 jnthn Also...seems it's not entirely happy
16:29 JimmyZ jnthn: looks like missing a 'break' after the second mismatch = 1?
16:30 jnthn It doesn't much matter for correctness
16:30 jnthn But yeah, we can for a tad extra speed
16:30 jnthn (The one about *is* needed for correctness)
16:30 nwc10 s/about/above/ # naughty fingers?
16:31 dalek MoarVM/utf8-c8-rewrite: 5b10c3d | jnthn++ | src/strings/utf8_c8.c:
16:31 dalek MoarVM/utf8-c8-rewrite: Fix the empty buffer case for utf8-c8.
16:31 dalek MoarVM/utf8-c8-rewrite: review: https://github.com/MoarVM/MoarVM/commit/5b10c3d187
16:31 jnthn uh, yes
16:32 dalek MoarVM/utf8-c8-rewrite: c087b98 | jnthn++ | src/strings/utf8_c8.c:
16:32 dalek MoarVM/utf8-c8-rewrite: Another early break, for speed.
16:32 dalek MoarVM/utf8-c8-rewrite:
16:32 dalek MoarVM/utf8-c8-rewrite: Spotted by JimmyZ++.
16:32 dalek MoarVM/utf8-c8-rewrite: review: https://github.com/MoarVM/MoarVM/commit/c087b98547
16:33 jnthn I'm off for a bit, but will give it a spectest run while I'm gone
16:34 japhb jnthn: saw your comment about oo-monitors; perhaps I did something wrong last time, I'll rebuild the world with your new version and check again.
16:37 jnthn japhb: OK, sounds good. I bumped the version in META6.json also.
16:39 jnthn OK, away for a bit :)
16:53 japhb jnthn: I get the following during oo-monitors testing:
16:53 japhb Useless use of constant value not-empty in sink context (lines 15, 20)
16:53 japhb Useless use of constant value not-full in sink context (lines 12, 22)
16:53 japhb I doubt that makes much of a difference, but figured you should know.
16:57 japhb Also, the current oo-monitors version does not work for me, same old 'Cannot invoke this object (REPR: Null; VMNull)' when I try to use it from Terminal-Print.
16:58 japhb So let's see if I understand: You've ruled out everything you can do on the oo-monitors side, now I get to refocus on nine for the precomp stuff?  :-)
17:21 geekosaur joined #moarvm
17:31 pyrimidine joined #moarvm
17:41 pyrimidine joined #moarvm
18:31 nwc10 jnthn: on your branch, ASAN is friends with that spectest
18:34 stmuk joined #moarvm
18:43 domidumont joined #moarvm
18:50 pyrimidine joined #moarvm
19:15 jnthn japhb: Well, at least, if it's OO::Monitors related then I could do with a golf (or - even better - a failing test case in t/precomp.t)
19:22 SmokeMachine I received a response of my bug report #130379 but Im trying to reply... but looks that not working...
19:22 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130379
19:23 SmokeMachine is the actual moar version 2016.12-18-ga645d7e?
19:24 japhb jnthn: Fair enough.
19:27 SmokeMachine synopsebot6: thanks!
19:30 SmokeMachine but this is what happens when I clink on the response link, I get this: https://ibin.co/36Afzkjv3dvV.png
19:33 SmokeMachine ok, I got... it's a bot... :(
19:34 jnthn japhb: I guess I coulda added some precomp tests for cond-var-using code too, thinking about it.
19:35 jnthn The warnings are also a macro issue
19:35 jnthn (And related to using cond-vars)
19:35 jnthn But don't break functionality
19:39 * timotimo brought home some gyoza
19:41 jnthn mmm
19:42 * jnthn just cooked/ate kofta
19:42 * notviki giggles
19:42 notviki You're not supposed to eat it!
19:49 timotimo is kofta a swear word where you're from? :)
19:52 notviki timotimo: no, it means "sweater"
20:13 dalek MoarVM/even-moar-jit: 7223dea | brrt++ | / (8 files):
20:13 dalek MoarVM/even-moar-jit: Move tree node extraction to tiling step
20:13 dalek MoarVM/even-moar-jit:
20:13 dalek MoarVM/even-moar-jit: As a result, can remove the template pointer from the tile. The
20:13 dalek MoarVM/even-moar-jit: unfortunate side-effect is that debug logging has become somewhat
20:13 dalek MoarVM/even-moar-jit: harder.
20:13 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/7223deabf3
20:13 [Coke] everything's a swear if you're mad enough.
20:14 pyrimidine joined #moarvm
20:15 * brrt has just tried out a new espresso machine. it was.... interesting
20:16 timotimo haha
20:17 brrt alright, i'm going to remove the MVMJitValue silliness
20:20 pyrimidine joined #moarvm
20:21 brrt hmm. I recently argued at work that polymorphism and encapsulation had side-effect of reducing the set of interesting things you can do to a set of objects
20:21 brrt because it reduces the set of useful assertions that can be made of objects
20:21 brrt now I want to generalise that a bit
20:21 brrt i hate 'polymorphic value objects'
20:22 brrt MVMJitValue is like that
20:22 brrt stack location, registers address, moar virtual register address, all rolled in one
20:22 brrt that's a mistake
20:22 brrt different things ought to be treated differently
20:23 brrt in fact
20:23 brrt we can interpret an object only by it's location
20:23 brrt so it's location is as good a way to discriminate as any
20:25 brrt i'm not sure if i'm making a ton of sense there
20:34 pyrimidine joined #moarvm
21:17 pyrimidine joined #moarvm
21:56 pyrimidine joined #moarvm
22:57 jnthn japhb: At the end of the day, though, the more general pre-comp closure bug will need addressing. It looks non-trivial to solve alas, but maybe once I've had my winter rest it'll seem be less so. :)
23:00 jnthn (And even if it still looks non-trivial, at least I'll have had a rest. :))
23:05 japhb jnthn: True enough.  :-)
23:23 jnthn sleep &

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary