Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-01-20

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

All times shown according to UTC.

Time Nick Message
00:02 Ven joined #moarvm
00:35 Ven joined #moarvm
00:55 Ven joined #moarvm
01:15 Ven joined #moarvm
01:23 timotimo i wonder if we should ever try ubsan on moarvm
01:35 Ven joined #moarvm
02:19 Ven joined #moarvm
02:49 Ven joined #moarvm
03:18 Ven joined #moarvm
03:34 Ven joined #moarvm
03:52 Ven joined #moarvm
04:13 Ven joined #moarvm
04:23 Ven joined #moarvm
04:37 Ven joined #moarvm
04:53 Ven joined #moarvm
06:04 Ven joined #moarvm
06:24 Ven joined #moarvm
06:34 Ven joined #moarvm
07:10 domidumont joined #moarvm
07:15 domidumont joined #moarvm
07:47 avar joined #moarvm
07:47 avar joined #moarvm
07:51 jnthn_ joined #moarvm
08:32 BinGOs joined #moarvm
08:36 zakharyas joined #moarvm
10:02 Geth MoarVM/even-moar-jit: f94803bca2 | (Bart Wiegmans)++ | 2 files
10:02 Geth MoarVM/even-moar-jit: linear_scan depends on arch.h
10:02 Geth MoarVM/even-moar-jit:
10:02 Geth MoarVM/even-moar-jit: linear_scan.c needs a recompile whenever arch.h is changed because it
10:02 Geth MoarVM/even-moar-jit: defines a static array based on its contents.
10:02 Geth MoarVM/even-moar-jit:
10:02 Geth MoarVM/even-moar-jit: The jit-comparify tool skipped 'add' opcodes because they can be
10:02 Geth MoarVM/even-moar-jit: interpreted as hexadecimal. Made that check more strict, now it doesn't.
10:02 Geth MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/f94803bca2
10:05 timotimo haha, "add"
10:05 timotimo very good
10:59 geekosaur joined #moarvm
13:17 Geth MoarVM/master: 4 commits pushed by jnthn++
13:17 Geth MoarVM/master: 60a25a5a5c | Fix missing cleanup of managed DecodeStream.…
13:17 Geth MoarVM/master: 93b8e1de47 | Have DecodeStrem clean leftover char buffers.…
13:17 Geth MoarVM/master: e8b31690d8 | Fix a typo in decode stream destroy function.…
13:17 Geth MoarVM/master: c68b326367 | Merge pull request #507 from MoarVM/decode-stream-leaks…
13:17 Geth MoarVM/master: review: https://github.com/MoarVM/MoarVM/compare/870eeecf42...c68b326367
13:18 timotimo yay
13:18 * jnthn wonders why the … after each one :)
13:19 timotimo good Q
13:20 timotimo Geth: source
13:20 Geth timotimo, Source at https://github.com/perl6/geth To add repo, add an 'application/json' webhook on GitHub pointing it to http://geth.perl6.party/?chan=#perl6 and choose 'Send me everything' for events to send | use `ver URL to commit` to fetch version bump changes
13:20 timotimo sub make-short-commit-message ($c, $e) {
13:20 timotimo "$c.sha.substr(0, 10) | &Δ(:style<bold>, $c.title)…"
13:20 timotimo it just puts that in there
13:21 timotimo the delta there is just irc-style-text
13:21 timotimo nothing special there
13:29 brokenchicken To show there may be more text :)
13:30 brokenchicken I guess it can go...
13:45 lizmat joined #moarvm
13:48 * jnthn starts release prep for MoarVM 2017.01
13:48 lizmat_ joined #moarvm
13:49 brokenchicken \o/
13:54 timotimo it can definitely stay if it shows that there is actually more text
13:54 timotimo would it be able to, without firing more API requests off?
13:59 brokenchicken yeah
14:04 Ven joined #moarvm
14:09 Geth MoarVM: 0b81cf6d8e | (Jonathan Worthington)++ | docs/ChangeLog
14:09 Geth MoarVM: Changelog for 2017.01.
14:09 Geth MoarVM: review: https://github.com/MoarVM/MoarVM/commit/0b81cf6d8e
14:09 jnthn Really nice work this month
14:10 Geth MoarVM: 0c8b770f5a | (Jonathan Worthington)++ | VERSION
14:10 Geth MoarVM: Bump VERSION.
14:10 Geth MoarVM: review: https://github.com/MoarVM/MoarVM/commit/0c8b770f5a
14:11 jnthn Will do release in an hour or so; hopefully I did no mistakes in ChangeLog, but feel free to check :)
14:17 timotimo +  a file in UTF-8 file
14:17 timotimo :)
14:18 timotimo only one i spotted
14:19 Geth MoarVM: c4b45d71e4 | (Timo Paulssen)++ | docs/ChangeLog
14:19 Geth MoarVM: fix a changelog line
14:19 Geth MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c4b45d71e4
14:23 jnthn timotimo++
14:24 timotimo wait a minute
14:24 timotimo MVMROOT was needed to generational violations?
14:24 timotimo wouldn't that be MVM_ASSIGN?
14:24 jnthn oh..
14:24 timotimo ASSIGN_REF
14:24 jnthn Yeah
14:25 jnthn It's to avoid outdated pointres :)
14:25 jnthn You tweaking or shall I?
14:26 timotimo please do
14:32 Geth MoarVM: 8c45c9d893 | (Jonathan Worthington)++ | docs/ChangeLog
14:32 Geth MoarVM: Fix a change description; timotimo++.
14:32 Geth MoarVM: review: https://github.com/MoarVM/MoarVM/commit/8c45c9d893
14:33 jnthn Wow, didn't realize make of NQP was 92188maxresident
14:34 jnthn Always assuemd it needed over 100MB
14:34 jnthn Or even 200
14:34 timotimo :D
14:34 timotimo nqp is surprisingly good
14:34 timotimo compared to rakudo, that is
14:35 jnthn Maybe that was another win from the ->work lifetime
14:45 jnthn Spectest clean on MoarVM HEAD, so looking good
14:56 diakopter clang gives some warnings
14:57 timotimo my gcc gives me a firehose of warnings (but it's always the same warning)
15:01 jnthn There's a PR to fix some warnings; will merge post-relesae
16:05 domidumont joined #moarvm
16:14 brrt joined #moarvm
16:14 brrt good * #moarvm
16:14 timotimo good
16:14 brrt so
16:15 brrt i've noticed both errors in three-to-two-operand conversion, *and* spill/load inversions
16:15 brrt 😂
16:16 brrt so, in other words
16:16 brrt the fact that the expr JIT gave the correct results so far was down to pure dumb luck
16:17 brrt and compiling really small fragments
16:17 timotimo oh?
16:17 timotimo wow.
16:17 Geth MoarVM: d7e286b3e6 | TimToady++ | src/6model/reprs/NFA.c
16:17 Geth MoarVM: Revert "Allow for fate offsets when unique fates in use"
16:17 Geth MoarVM:
16:17 Geth MoarVM: This reverts commit e167934e83ddebdd6a685193cd9758f56f73f809.
16:17 Geth MoarVM: Gonna use a different approach eventually, which needs to be
16:17 Geth MoarVM: figured out in a branch.
16:17 Geth MoarVM: review: https://github.com/MoarVM/MoarVM/commit/d7e286b3e6
16:17 brrt :-)
16:18 brrt i'm going to see if i can fix the inversions first
16:21 donaldh joined #moarvm
16:21 jnthn TimToady: Heh, just sneaked that revert in in time for me to include it in the release :)
16:23 timotimo brrt: "both errors" sounds like there's only two errors all in all :P
16:26 brrt well, i expected two different kinds of errors, and was kind of worried that i wouldn't be able to figure out which was which
16:26 brrt but the disassembly made it sufficiently clear
16:26 Geth MoarVM: 5971948a13 | (Jonathan Worthington)++ | docs/ChangeLog
16:26 Geth MoarVM: Remove removed commit from ChangeLog.
16:26 Geth MoarVM: review: https://github.com/MoarVM/MoarVM/commit/5971948a13
16:33 Geth MoarVM/even-moar-jit: e6fdb10f14 | (Bart Wiegmans)++ | src/jit/linear_scan.c
16:33 Geth MoarVM/even-moar-jit: Fix spill/load inversion failure
16:33 Geth MoarVM/even-moar-jit:
16:33 Geth MoarVM/even-moar-jit: In case we spill a value just before we load it, then (aside from the
16:33 Geth MoarVM/even-moar-jit: fact that the load is redundant) we should take some care not to swap
16:33 Geth MoarVM/even-moar-jit: that order, lest we overwrite our value with nonsense. There is a
16:33 Geth MoarVM/even-moar-jit: mechanism for that and now I've activated it.
16:33 Geth MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/e6fdb10f14
16:34 brrt nb, we're still seeing three-op failures
16:37 brrt might as well try to resolve these now
16:40 jnthn Release tagged and uploaded: http://www.moarvm.org/releases/MoarVM-2017.01.tar.gz
16:58 brokenchicken \o/
16:58 brokenchicken jnthn++
17:05 travis-ci joined #moarvm
17:05 travis-ci MoarVM build failed. Jonathan Worthington 'Fix a change description; timotimo++.'
17:05 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/193755617 https://github.com/MoarVM/MoarVM/compare/c4b45d71e44f...8c45c9d89382
17:05 travis-ci left #moarvm
17:23 brokenchicken that one is "Found /tmp/moar/bin/moar version 2016.12-137-g8c45c9d, which is too old."
18:21 ggoebel joined #moarvm
18:25 FROGGS joined #moarvm
18:59 zakharyas joined #moarvm
19:04 geekosaur joined #moarvm
19:12 brrt joined #moarvm
19:36 dalek moarvm.org: 31070b5 | jnthn++ | / (3 files):
19:36 dalek moarvm.org: Update for MoarVM 2017.01 release.
19:36 dalek moarvm.org: review: https://github.com/MoarVM/moarvm.org/commit/31070b57ac
19:37 brrt joined #moarvm
19:37 jnthn http://www.moarvm.org/ updated \o/
19:37 brrt \o/
19:37 brrt jnthn++
19:37 jnthn Nice release \o/
19:37 * brrt believes he has introduced a memory leak
19:37 brrt or an infinite loop or something like that
19:44 jnthn Congrats :P
19:47 brrt hmm yeah
19:47 brrt usually the jit bisector can find the problem it, but that may be a bit harder now
19:47 brrt is there a unix program that runs a command with a timeout
19:48 brrt i mean, simple enough to write, just a matter of signal handling
19:49 Geth MoarVM/even-moar-jit: 349b3605d1 | (Bart Wiegmans)++ | 3 files
19:49 Geth MoarVM/even-moar-jit: Try to resolve two-operand code
19:49 Geth MoarVM/even-moar-jit:
19:49 Geth MoarVM/even-moar-jit: A reserved register (rax) is used as scratch space for transforming
19:49 Geth MoarVM/even-moar-jit: three-operand code to two-operand code as required by x86.
19:49 Geth MoarVM/even-moar-jit:
19:49 Geth MoarVM/even-moar-jit: This or some earlier commit seem to introduce a memory leak + infinite
19:50 Geth MoarVM/even-moar-jit: loop in the rakudo build process.
19:50 Geth MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/349b3605d1
19:50 jnthn brrt: timeout
19:51 brrt yeah, not an os x thing unfortunately.
19:51 brrt no matter
19:51 brrt i'll figure it out at some point :-)
19:51 jnthn Aww
19:51 jnthn I already had it installed :)
19:52 jnthn oh, apparently from coreutils package or some such
19:52 jnthn So not standard UNIX-y thing.
19:52 brrt coreutils is rather awesome
19:52 brrt it can be homebrewed apparently
19:52 jnthn Oh, quick googling suggests you can installed with homebrew
19:52 brrt well, i'll have a look at it later
19:54 brrt ^ the commit above does resolve some real issues though, so i'm happy about at least that
19:54 brrt have a nice weekend :-)
19:54 jnthn Thanks, you too, brrt++
20:23 timotimo oooh, -fsanitize=object-size reads kind of interesting
20:31 timotimo -fcheck-pointer-bounds is what you need to get MPX turned on (it also requires you to use -mmpx and to also put that in the linker flags, and it'll link against two run time libraries)
20:38 timotimo -finstrument-functions will give every function call an extra call to __cyg_profile_func_enter and __cyg_profile_func_exit which both get a pointer to the function and a pointer to the position that makes the call passed
20:45 timotimo src/jit/graph.c:1452:22: runtime error: member access within misaligned address 0x0000019346f2 for type 'struct MVMSpeshIns', which requires 8 byte alignment
20:45 timotimo that happens a whole, whole lot
20:45 timotimo same for MVMSpeshFacts
20:46 timotimo src/core/validation.c:250:23: runtime error: load of misaligned address 0x7f11981232be for type 'MVMuint32', which requires 4 byte alignment
20:46 timotimo more interesting
20:46 timotimo src/6model/serialization.c:2411:50: runtime error: left shift of 4095 by 20 places cannot be represented in type 'int'
20:46 timotimo src/core/interp.c:1722:37: runtime error: load of misaligned address 0x7f11981232ce for type 'MVMuint32', which requires 4 byte alignment
22:15 ggoebel joined #moarvm
22:20 jnthn Alignment rules vary by platform.
22:20 jnthn We have probes for that
22:21 jnthn And spesh alloc conditionally does stuff alignment as needed
22:21 jnthn Bytecode reading does similar things
22:21 timotimo that's curious. why wouldn't ubsan understand?
22:22 jnthn Well, from a C perspective, it *is* undefined behavior in that you're gonna get SIGBUS or whatever on some platforms if you do it.
22:22 timotimo oh, hm. but i did -march=native
22:22 jnthn Hmm
22:22 jnthn And ubsan pays attention to that?
22:23 timotimo i have no idea :)
22:25 jnthn If we add ubsan support to configure we can twiddle the alignment flags
22:25 geekosaur it may not pay attention to CPU flags... there's a flag that enables/disables unaligned memory access on x86 class cpus
22:26 geekosaur (and they default to unaligned access disabled at boot time, but linux at least re-enables it because too much software broke with the default)
22:26 timotimo right, i could set that and get less explosive output
22:26 timotimo oh?
22:26 timotimo is it a performance penalty, though?
22:26 geekosaur significant one, yes
22:27 geekosaur CPU has to do multiple reads for unaligned data
22:27 timotimo hmm
22:29 timotimo doesn't that mean we ought to set "we can't do unaligned reads" on x86 adn x86_64?
22:29 timotimo to make stuff faster?
22:29 jnthn It's not quite that clear cut, though
22:29 jnthn Data packed tighter together means better cache hit rate
22:30 timotimo like, if we do linear reads through a lot of stuff?
22:30 jnthn So yeah, it's a slowdown, but missing the L1/L2 is an even slowerdown
22:31 timotimo understood
22:31 jnthn (If anyone has data to contradict that, I'd be happy to see it, of course. But "afaik" :))
22:35 timotimo jnthn, S17-supply/syntax.t is the right place for next and last and such tests?
22:37 jnthn Very much so
22:37 jnthn Will look at that PR over weekend hopefully...today got zoned in to working on the await refactors
22:38 timotimo i'm glad to see nonblock-await getting worked on :)
22:38 timotimo last and redo for supply syntax can wait another release
22:39 timotimo syntax.t uses Interval(0.001) :P
22:39 timotimo multiple times
22:39 timotimo i might fix that to be 0.01 instead
22:39 jnthn Uh
22:39 jnthn At lesat one of the cases is covering an RT that reported a problem when you wrote 0.001 :)
22:40 jnthn (We used to round it to zero, pass that to libuv, and it took it to mean we didn't want any callbacks)
22:40 timotimo right, that was bad
22:40 timotimo i remember you fixing that
22:41 jnthn Yeah, what I committed is the third design. First one didn't get the optimization for the case the result is already available in place. Second one tried to address that but was racey without introducing more locking than I wanted. Third appraoch finally go that case cheap and unracey :)
22:41 jnthn *got
22:41 timotimo RT #128991 test has such a low interval
22:41 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128991
22:41 jnthn (that's about await)
22:42 timotimo don't actually see if that's because the interval was rounded down or not
22:43 timotimo yes, that sounds pretty good :)
22:43 timotimo third time's the charm
22:48 timotimo dang, cat has laid itself down next to me and is presenting belly to receive rubs
22:48 jnthn Smart cat :)
22:51 timotimo ok 70 - calling "next" inside a whenever block will not die.
22:52 timotimo simplest tests gotted
22:56 jnthn :)
23:15 jnthn Rest time; 'night o/
23:17 timotimo night jnthn!
23:41 MasterDuke joined #moarvm
23:42 MasterDuke https://webkit.org/blog/7122/introducing-riptide-webkits-retreating-wavefront-concurrent-garbage-collector/ was an interesting read
23:43 MasterDuke the moar gc is concurrent, but not yet parallel, correct?
23:44 timotimo no, it's parallel, but not concurrent
23:44 timotimo i.e. stop the world (not concurrent), but every thread rummages through objects it owns (parallel)
23:44 timotimo wait ...
23:44 timotimo i could be wrong here
23:45 MasterDuke it's kind of crazy that they can assume multiple cores for the hardware they run on. who would have suspected phones would have 4-8cores so quickly?
23:47 timotimo yeah, it's a bit surprising

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