00:02 Ven joined 00:35 Ven joined 00:55 Ven joined 01:15 Ven joined
timotimo i wonder if we should ever try ubsan on moarvm 01:23
01:35 Ven joined 02:19 Ven joined 02:49 Ven joined 03:18 Ven joined 03:34 Ven joined 03:52 Ven joined 04:13 Ven joined 04:23 Ven joined 04:37 Ven joined 04:53 Ven joined 06:04 Ven joined 06:24 Ven joined 06:34 Ven joined 07:10 domidumont joined 07:15 domidumont joined 07:47 avar joined 07:51 jnthn_ joined 08:32 BinGOs joined 08:36 zakharyas joined
Geth arVM/even-moar-jit: f94803bca2 | (Bart Wiegmans)++ | 2 files
linear_scan depends on arch.h

linear_scan.c needs a recompile whenever arch.h is changed because it defines a static array based on its contents.
The jit-comparify tool skipped 'add' opcodes because they can be interpreted as hexadecimal. Made that check more strict, now it doesn't.
10:02
timotimo haha, "add" 10:05
very good
10:59 geekosaur joined
Geth arVM/master: 4 commits pushed by jnthn++ 13:17
timotimo yay 13:18
jnthn wonders why the … after each one :)
timotimo good Q 13:19
Geth: source 13:20
Geth timotimo, Source at github.com/perl6/geth To add repo, add an 'application/json' webhook on GitHub pointing it to geth.perl6.party/?chan=#perl6 and choose 'Send me everything' for events to send | use `ver URL to commit` to fetch version bump changes
timotimo sub make-short-commit-message ($c, $e) {
"$c.sha.substr(0, 10) | &Δ(:style<bold>, $c.title)…"
it just puts that in there
the delta there is just irc-style-text 13:21
nothing special there
brokenchicken To show there may be more text :) 13:29
I guess it can go... 13:30
13:45 lizmat joined
jnthn starts release prep for MoarVM 2017.01 13:48
13:48 lizmat_ joined
brokenchicken \o/ 13:49
timotimo it can definitely stay if it shows that there is actually more text 13:54
would it be able to, without firing more API requests off?
brokenchicken yeah 13:59
14:04 Ven joined
Geth arVM: 0b81cf6d8e | (Jonathan Worthington)++ | docs/ChangeLog
Changelog for 2017.01.
14:09
jnthn Really nice work this month
Geth arVM: 0c8b770f5a | (Jonathan Worthington)++ | VERSION
Bump VERSION.
14:10
jnthn Will do release in an hour or so; hopefully I did no mistakes in ChangeLog, but feel free to check :) 14:11
timotimo + a file in UTF-8 file 14:17
:)
only one i spotted 14:18
Geth arVM: c4b45d71e4 | (Timo Paulssen)++ | docs/ChangeLog
fix a changelog line
14:19
jnthn timotimo++ 14:23
timotimo wait a minute 14:24
MVMROOT was needed to generational violations?
wouldn't that be MVM_ASSIGN?
jnthn oh..
timotimo ASSIGN_REF
jnthn Yeah
It's to avoid outdated pointres :) 14:25
You tweaking or shall I?
timotimo please do 14:26
Geth arVM: 8c45c9d893 | (Jonathan Worthington)++ | docs/ChangeLog
Fix a change description; timotimo++.
14:32
jnthn Wow, didn't realize make of NQP was 92188maxresident 14:33
Always assuemd it needed over 100MB 14:34
Or even 200
timotimo :D
nqp is surprisingly good
compared to rakudo, that is
jnthn Maybe that was another win from the ->work lifetime 14:35
Spectest clean on MoarVM HEAD, so looking good 14:45
diakopter clang gives some warnings 14:56
timotimo my gcc gives me a firehose of warnings (but it's always the same warning) 14:57
jnthn There's a PR to fix some warnings; will merge post-relesae 15:01
16:05 domidumont joined 16:14 brrt joined
brrt good * #moarvm 16:14
timotimo good
brrt so
i've noticed both errors in three-to-two-operand conversion, *and* spill/load inversions 16:15
😂
so, in other words 16:16
the fact that the expr JIT gave the correct results so far was down to pure dumb luck
and compiling really small fragments 16:17
timotimo oh?
wow.
Geth arVM: d7e286b3e6 | TimToady++ | src/6model/reprs/NFA.c
Revert "Allow for fate offsets when unique fates in use"

This reverts commit e167934e83ddebdd6a685193cd9758f56f73f809. Gonna use a different approach eventually, which needs to be figured out in a branch.
brrt :-)
i'm going to see if i can fix the inversions first 16:18
16:21 donaldh joined
jnthn TimToady: Heh, just sneaked that revert in in time for me to include it in the release :) 16:21
timotimo brrt: "both errors" sounds like there's only two errors all in all :P 16:23
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
but the disassembly made it sufficiently clear
Geth arVM: 5971948a13 | (Jonathan Worthington)++ | docs/ChangeLog
Remove removed commit from ChangeLog.
arVM/even-moar-jit: e6fdb10f14 | (Bart Wiegmans)++ | src/jit/linear_scan.c
Fix spill/load inversion failure

In case we spill a value just before we load it, then (aside from the fact that the load is redundant) we should take some care not to swap that order, lest we overwrite our value with nonsense. There is a mechanism for that and now I've activated it.
16:33
brrt nb, we're still seeing three-op failures 16:34
might as well try to resolve these now 16:37
jnthn Release tagged and uploaded: www.moarvm.org/releases/MoarVM-2017.01.tar.gz 16:40
brokenchicken \o/ 16:58
jnthn++
17:05 travis-ci joined
travis-ci MoarVM build failed. Jonathan Worthington 'Fix a change description; timotimo++.' 17:05
travis-ci.org/MoarVM/MoarVM/builds/193755617 github.com/MoarVM/MoarVM/compare/c...45c9d89382
17:05 travis-ci left
brokenchicken that one is "Found /tmp/moar/bin/moar version 2016.12-137-g8c45c9d, which is too old." 17:23
18:21 ggoebel joined 18:25 FROGGS joined 18:59 zakharyas joined 19:04 geekosaur joined 19:12 brrt joined
dalek href="https://moarvm.org:">moarvm.org: 31070b5 | jnthn++ | / (3 files):
Update for MoarVM 2017.01 release.
19:36
19:37 brrt joined
jnthn www.moarvm.org/ updated \o/ 19:37
brrt \o/
jnthn++
jnthn Nice release \o/
brrt believes he has introduced a memory leak
or an infinite loop or something like that
jnthn Congrats :P 19:44
brrt hmm yeah 19:47
usually the jit bisector can find the problem it, but that may be a bit harder now
is there a unix program that runs a command with a timeout
i mean, simple enough to write, just a matter of signal handling 19:48
Geth arVM/even-moar-jit: 349b3605d1 | (Bart Wiegmans)++ | 3 files
Try to resolve two-operand code

A reserved register (rax) is used as scratch space for transforming three-operand code to two-operand code as required by x86.
This or some earlier commit seem to introduce a memory leak + infinite loop in the rakudo build process.
19:49
jnthn brrt: timeout
brrt yeah, not an os x thing unfortunately. 19:51
no matter
i'll figure it out at some point :-)
jnthn Aww
I already had it installed :)
oh, apparently from coreutils package or some such 19:52
So not standard UNIX-y thing.
brrt coreutils is rather awesome
it can be homebrewed apparently
jnthn Oh, quick googling suggests you can installed with homebrew
brrt well, i'll have a look at it later
^ the commit above does resolve some real issues though, so i'm happy about at least that 19:54
have a nice weekend :-)
jnthn Thanks, you too, brrt++
timotimo oooh, -fsanitize=object-size reads kind of interesting 20:23
-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:31
-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:38
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
that happens a whole, whole lot
same for MVMSpeshFacts
src/core/validation.c:250:23: runtime error: load of misaligned address 0x7f11981232be for type 'MVMuint32', which requires 4 byte alignment 20:46
more interesting
src/6model/serialization.c:2411:50: runtime error: left shift of 4095 by 20 places cannot be represented in type 'int'
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
jnthn Alignment rules vary by platform. 22:20
We have probes for that
And spesh alloc conditionally does stuff alignment as needed 22:21
Bytecode reading does similar things
timotimo that's curious. why wouldn't ubsan understand?
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
jnthn Hmm
And ubsan pays attention to that?
timotimo i have no idea :) 22:23
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
(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
oh?
is it a performance penalty, though?
geekosaur significant one, yes
CPU has to do multiple reads for unaligned data 22:27
timotimo hmm
doesn't that mean we ought to set "we can't do unaligned reads" on x86 adn x86_64? 22:29
to make stuff faster?
jnthn It's not quite that clear cut, though
Data packed tighter together means better cache hit rate
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
timotimo understood 22:31
jnthn (If anyone has data to contradict that, I'd be happy to see it, of course. But "afaik" :))
timotimo jnthn, S17-supply/syntax.t is the right place for next and last and such tests? 22:35
jnthn Very much so 22:37
Will look at that PR over weekend hopefully...today got zoned in to working on the await refactors
timotimo i'm glad to see nonblock-await getting worked on :) 22:38
last and redo for supply syntax can wait another release
syntax.t uses Interval(0.001) :P 22:39
multiple times
i might fix that to be 0.01 instead
jnthn Uh
At lesat one of the cases is covering an RT that reported a problem when you wrote 0.001 :)
(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
i remember you fixing that
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
*got
timotimo RT #128991 test has such a low interval
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128991
jnthn (that's about await)
timotimo don't actually see if that's because the interval was rounded down or not 22:42
yes, that sounds pretty good :) 22:43
third time's the charm
dang, cat has laid itself down next to me and is presenting belly to receive rubs 22:48
jnthn Smart cat :)
timotimo ok 70 - calling "next" inside a whenever block will not die. 22:51
simplest tests gotted 22:52
jnthn :) 22:56
Rest time; 'night o/ 23:15
timotimo night jnthn! 23:17
23:41 MasterDuke joined
MasterDuke webkit.org/blog/7122/introducing-r...collector/ was an interesting read 23:42
the moar gc is concurrent, but not yet parallel, correct? 23:43
timotimo no, it's parallel, but not concurrent 23:44
i.e. stop the world (not concurrent), but every thread rummages through objects it owns (parallel)
wait ...
i could be wrong here
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:45
timotimo yeah, it's a bit surprising 23:47