00:35 jnthn joined 00:53 khagan joined 01:50 zakharyas joined 03:20 diakopter joined 05:07 diakopter joined 05:19 TimToady joined 05:55 domidumont joined 06:00 domidumont joined
nwc10 jnthn/nine: local merge and ASAN build happy 06:07
nine excellent :) 06:57
jnthn nwc10: Thanks; will merge in a bit :) 08:03
dalek Heuristic branch merge: pushed 68 commits to MoarVM by jnthn 09:33
jnthn There we go :) 09:34
09:48 travis-ci joined
travis-ci MoarVM build failed. jnthn 'Merge branch 'reframe'' 09:48
travis-ci.org/MoarVM/MoarVM/builds/129950941 github.com/MoarVM/MoarVM/compare/1...d2836ca43b
09:48 travis-ci left
jnthn wtf, here too 09:48
But it's just the very same merge I tested last night... 09:49
ohhh
duh
jnthn merged the reframe-jit PR, after testing it on a checkout of reframe-jit with detached HEAD and merged master 09:50
And then today git merge reframe and of it wasn't up to date 09:51
nwc10 neuralise it!
dalek arVM: 13666ec | brrt++ | src/core/ (4 files):
Make frames identifiable using a sequence number

Because frames can now be garbage-collected, they can be moved, and the identity check used in the JIT will no longer work. Thus, we'd 4186ee2 | jnthn++ | .travis.yml: Hopefully do Travis OSX builds too.
09:52
09:52 dalek joined 10:07 travis-ci joined
travis-ci MoarVM build passed. jnthn 'Merge branch 'reframe'' 10:07
travis-ci.org/MoarVM/MoarVM/builds/129954828 github.com/MoarVM/MoarVM/compare/2...9a0bda284c
10:07 travis-ci left
nine /win 40 10:33
jnthn grmbl, seems the JIT changes may be OSX-bust 10:42
(Yes, they are) 10:47
jnthn brrt: For when you're about, this is the debugger output of the with-JIT crash on OSX: gist.github.com/jnthn/c745be540689...c5d32ec4c4 10:57
nwc10 jnthn: those backtraces don't tell anyone the values in the register? 10:59
r: say 0x7fff0000036b % 16 11:00
camelia rakudo-jvm 40a953: OUTPUTĀ«cannot connect to eval server: Connection refusedā¤Ā»
..rakudo-moar 110087: OUTPUTĀ«11ā¤Ā»
nwc10 although I assume that the lack of alignment is the issue
oh wait, shut up, I don't know :-)
jnthn :) 11:01
dalek arVM: 9fd80cf | jnthn++ | Configure.pl:
Disable JIT on OSX for a little bit; it's bust.
11:02
nine Nothing like fixing JIT issues on plattforms you don't have access to, eh? 11:05
lizmat I could give jnthn access to an OS X machine 11:06
11:06 travis-ci joined
travis-ci MoarVM build errored. jnthn 'Hopefully do Travis OSX builds too.' 11:06
travis-ci.org/MoarVM/MoarVM/builds/129965777 github.com/MoarVM/MoarVM/compare/7...86ee2554f8
11:06 travis-ci left
lizmat jnthn: confirm mac os x build ok with Moar HEAD 11:14
jnthn: another datapoint: t/spec/S17-supply/syntax.t now consistently fails (used to be a flapper) 11:20
PERL6LIB=lib perl6 t/spec/S17-supply/syntax.t 11:21
ok 53 - did we throws-like X::ControlFlow?
Abort trap: 6
nwc10 lizmat: it only flaps on Linux: paste.scsys.co.uk/513650
11:24 travis-ci joined
travis-ci MoarVM build errored. jnthn 'Disable JIT on OSX for a little bit; it's bust.' 11:24
travis-ci.org/MoarVM/MoarVM/builds/129967860 github.com/MoarVM/MoarVM/compare/4...d80cf56d5a
11:24 travis-ci left
lizmat fwiw, it runs to completion ok when run in lldb :-( 11:25
jnthn heh, yeah, that's why those are so fun to fix :P 11:30
I think we know the underlying issue there though, or to some degree at least 11:31
Gah, /win 16
oops
Gah, setting up the OSX travis isn't just as easy as adding osx to the OS list :P 11:33
dalek arVM: ee5846f | jnthn++ | .travis.yml:
Another try to get OSX Travis builds working.
11:39
nine syntax.t is a very easy fix: just add some debug output and it runs rock stable 11:43
lizmat yeah, or run it under lldb/gdb
jnthn :P 11:44
yay, think I nailed the OSX travis for Moar :) 11:50
(Was my first time editing a .travis.yml :P)
I could always crib on others before, and at $dayjob stuff we use Jenkins. 11:51
Pretty sure by now I prefer travis :P
nine I sometimes wonder if a 5 line shell script would just suffice... 11:52
jnthn But it wouldn't make teh pretty outputs :P
Mostly I just like that it comes ready-integrated with various things, though.
moritz nine: it can always start with that, but then you want notifications, web output, automatic git polling that works even after a force push, ....
notification only when the build status failed etc.
nine And then you go back to jenkins and deal with dieing workers because puppet tells it to reload the config right in the middle of a build... 11:57
jnthn oh darn it 11:58
The --has-libffi ones ain't going to work out on OSX
And meeting time now, so bbiab 12:01
12:03 travis-ci joined
travis-ci MoarVM build failed. jnthn 'Another try to get OSX Travis builds working.' 12:03
travis-ci.org/MoarVM/MoarVM/builds/129974204 github.com/MoarVM/MoarVM/compare/9...5846fbd964
12:03 travis-ci left 12:45 cognominal joined 13:46 cognominal joined 14:10 brrt joined
brrt good * 14:10
jnthn o/ brrt
brrt os x bustage again
:-(
jnthn Yeah, 'fraid so :( 14:11
brrt does os x use libffi perchance?
where does it bust?
jnthn It busts on the very first file of the NQP compilation with JIT enabled
brrt oh.. .that is soon
jnthn Which gives some hope it might be silly/big rather than small/hard to find.
brrt do we have a ssh session to an os x machine? 14:12
yeah, that is hopeful
jnthn lizmat might be able to offer one
She provided me one in the past, at least, so I could debug OSX things :)
brrt you know, if apple would provide vms... 14:13
lizmat jnthn: it's still there, I only need to open it up :-)
brrt but i digress
would be much appreciated lizmat :-)
jnthn lizmat: Well, brrt++ can find this one faster than me, I'd bet :) 14:14
geekosaur OS X comes with libffi, but I think minus the headers
jnthn I think the travis build there is just trying to test we can use a pre-installed libffi 14:15
But not sure we need that for OSX
jnthn is trying to figure out how to turn that off :)
dalek arVM: 2279a5c | jnthn++ | .travis.yml:
Try not to do --has-libffi builds on OSX.
14:19
jnthn (Don't mind if somebody wants to make 'em work, but all I want for now is *some* testing on OSX :))
yay, looks like I got it right: travis-ci.org/MoarVM/MoarVM/builds/130010332 14:21
dalek arVM: 92491d7 | jnthn++ | src/profiler/heapsnapshot.c:
Avoid pointer type warning from GCC.
14:30
arVM: 1d63987 | jnthn++ | src/strings/normalize.h:
Pointless parens to shut up clang.
arVM: 973592c | jnthn++ | src/core/frame.h:
Missing declaration in frame.h.

Fixes a warning in collect.c.
14:35
jnthn That should make us a tad quieter :) 14:37
timotimo i like the sound of that. especially heapcollect has been spammy as all hell 14:38
jnthn still finds it surprising that it's surprising that the precedence of && and || don't naturally follow from the precedence of * and + :)
timotimo but it was a daunting prospect to put a bajillion casts into the code just to make it not complain
jnthn Uh, that wasn't the best English but... :) 14:39
timotimo your fix clearly looks better than what i would have built
brrt jnthn, i suppose you are aware of it, but you can't move ->work, or at least make it moveable
we take references to registers everywhere, sometimes on stack, often from ->work 14:40
jnthn brrt: I'm aware that we can't *at the moment* :)
Yes :)
brrt let's rephrase that then too, 'if we're going to be super careful about moving MVMRegister*, we will have something completely different from what MoarVM is today' 14:41
jnthn Note that the circumstances env or work would move would be a lot more constrained than those where MVMFrame can move. 14:42
The latter can happen on any allocating path 'cus they're GC-able.
env/work won't become that.
So it'd only be possible on the small handful of paths that can cause stack -> heap promotion.
So it's not quite so daunting. 14:43
But yes, it would need a good bit of care.
The pay-off is quite high though, potentially. 14:44
brrt hmmm
14:45 travis-ci joined
travis-ci MoarVM build passed. jnthn 'Try not to do --has-libffi builds on OSX.' 14:45
travis-ci.org/MoarVM/MoarVM/builds/130010332 github.com/MoarVM/MoarVM/compare/e...79a5c5d5d0
14:45 travis-ci left
brrt i see how you might get away with it if you can limit the number of possibilities 14:45
jnthn yay, I fix0red travis :)
brrt yay 14:46
jnthn And now we have OSX in there, so we'll know sooner rather than later about busting things there again.
[Coke] \o/ 14:50
14:56 leedo joined 15:12 travis-ci joined
travis-ci MoarVM build passed. jnthn 'Pointless parens to shut up clang.' 15:12
travis-ci.org/MoarVM/MoarVM/builds/130013509 github.com/MoarVM/MoarVM/compare/2...63987d9550
15:12 travis-ci left
brrt didn't i kill the has-dynasm button... 15:13
dalek arVM: 5d854b2 | jnthn++ | src/ (4 files):
Speed up non-specialized frame creation.

By having an initial work environment that we can memcpy into place rather than having to look at what needs to be set to VMNull every time. Still to do for specialized frames.
15:29
jnthn is tired, probably from today's meetings, so will do the specialized case another time :)
15:30 travis-ci joined
travis-ci MoarVM build passed. jnthn 'Missing declaration in frame.h. 15:30
travis-ci.org/MoarVM/MoarVM/builds/130014922 github.com/MoarVM/MoarVM/compare/1...3592c00266
15:30 travis-ci left
jnthn Travis really wants us to know things work :P 15:45
ilmari I believe you can make it to only announce success when the state changes 15:50
jnthn ilmari: Yes, that's what we have set in the .travis.yml 15:51
github.com/MoarVM/MoarVM/blob/mast...is.yml#L27
(Unchanged for ages) 15:52
Maybe it's at-least-once semantics rahter than exactly-once semantics. Web scale and all that. :)
16:30 domidumont joined 16:38 domidumont1 joined 17:34 domidumont joined 17:37 brrt joined
brrt hmmpf 17:48
this bug disappears under nearly all debugging conditions... 17:49
geekosaur timing sensitive? (mmm heisenbugs) 17:51
brrt i'm going to see if i can 'just' trigger it
hmm, still can 17:52
we die, rather surprisingly, in GOTO NEXT 17:55
timotimo oh, oops
bytecode got b0rked and we stumbled outside of our bytecode blob?
brrt not sure... 17:56
and entirely not sure /why/ bytecode would get borked
timotimo spesh went awry? :\
brrt unlikely
it's after returning from the jit 17:57
timotimo ah, hmm
so maybe our deopt indices are b0rked?
nwc10 valgrind? 17:58
brrt not installed on lizmat++s box 18:00
no, it is likely to be jit - specific 18:01
Oh 18:05
*ahem*
which side does the stack grow to again? :-P
brrt is an idiot 18:06
also, this ought to have been present on more platforms
all of them, except windows perhaps
timotimo the bad direction 18:07
18:11 TimToady joined
dalek arVM: b4d1dc6 | brrt++ | src/jit/emit_x64.dasc:
Stacks grow downward on x86_64

I exchanged [rbp-0x20] with [rbp+0x20], making the JIT write the frame number outside its stack space. On OSX, this caused a crash, but unfortunately it was masked by alignment on linux/windows and under debuggers.
18:16
brrt dalek tells
timotimo haha
that's amazing :) 18:17
jnthn brrt++ 18:18
That's a good'n :P
brrt it's a silly, silly, silly bug
jnthn I'm amazed it works as well as it did with that :P
arnsholt Candidate for best bug ever =D
jnthn Could you git revert my Configure patch, then we'll see if Travis is happy with the JIT fix too? :) 18:19
lizmat++ # providing an OSX shell 18:20
brrt will do
jnthn Thanks :) 18:21
dalek arVM: 9879233 | brrt++ | Configure.pl:
Revert "Disable JIT on OSX for a little bit; it's bust."

This reverts commit 9fd80cf56d5a8783d9e4538d63379bfe34173139.
brrt lets see what travis thinks
jnthn :) 18:22
nwc10 will travis do a drive-by to tell us that the build is unbust? 18:30
is it it like that joke "how do you keep an idiot in suspense?"
anyway, 18:31
brrt++ # smart enough to figure out his own bugs
hoelzro nwc10: what do you mean by "will travis do a drive-by to tell us that the build is unbust?" 18:32
nwc10 does the travis bot track state, and hence when the state flips back from "bust" to "fixed" it will appear on channel and announce this?
brrt i think so?
nwc10 or does it only show up with bad news?
brrt well, last compilations were unbust, weren't they? 18:33
nwc10 ah, yes, sigh
good point
hoelzro I believe it does
it does for my other stuff, anyway =)
nwc10 are we going from "not bust (because it was skipped)" to "not bust (because it's fixed)"
timotimo i think so 18:34
though it was theoretically bust on linux and windows, too. it just didn't asplode properly
brrt right
timotimo brrt: i already forgot why param_rp_n isn't jittable at the moment :o 18:35
but that prevented a bunch of frames to be jitted in some silly benchmark i ran
brrt it relies on MVM_args_ somethingsomething, which returns a struct, and the returning of structures is not well-defined (afaik) 18:36
timotimo oh, ergh
brrt but i may be wrong, of course
timotimo is it feasible to implement these in the exprjit?
or should we rather hold out for the rewrite of the arg handling stuff?
brrt well, if we could learn a standard for returning structs, then this should be no problem in either jit 18:38
but as far as i'm concerned, it'd be better to refactor the struct out of there, since the interpreter only uses the value part 18:39
eh, the interpreter writes the value part, and copies the exists part
eh, reads 18:52
pff, my brane is done
19:20 brrt joined
lizmat is back 19:24
just minutes too late to help brrt :-( 19:25
jnthn: should we have heard from travis by now ? 19:34
timotimo travis-ci.org/MoarVM/MoarVM/builds/130073463 - it's happy 19:36
lizmat so we should be ok with bumping MOAR and NQP ? 19:37
timotimo i guess so? i don't think the moar build does a full spectest run, but iirc the jit asploded in the very first nqp file that got compiled with it?
so yeah, i expect it's safe
lizmat ok, bumping
nwc10 valgrind spots two problems with the JIT in the regression tests. I don't know if the problems are new: paste.scsys.co.uk/513693 19:47
timotimo ooooh yeah 20:06
i didn't know aboot these, tbh
20:50 patrickz joined 21:17 brrt joined
brrt webkit.org/blog/5852/introducing-t...-compiler/ 21:25
did we discuss this before?
lizmat hi brrt, I gathered the OS X issue is resolved? 21:26
jnthn lizmat: Thanks for bumping; there was an RT to close also if it wasn't already :)
Yes, JIT bug was fixed :)
brrt++
brrt the tl;dr of it is that webkit replaced llvm with a custom backend 21:27
yes
jnthn brrt: Not seen that article before
So will be interested to read :)
lizmat ok, then I'll close the gate again :-)
brrt good idea 21:28
i actually needed sudo to run lldb 21:29
i was somewhat amazed by that 21:30
thanks again for the access
lizmat brrt: yw :-)
just let me know if you need it again :-)
brrt :-) 21:32
expr jit will require a minor update aftee reframe 21:33
jnthn is glad it's minor :) 21:35
OK, after a skim, I need to read that article when less tired.
brrt the b3 backend uses 2 IRs just like expr jit
im going to sleep as well soonish 21:36
lizmat jnthn: on #p6dev nine just realized that Inline::Perl5's issues may be reframe related
brrt not jit related i hope... oh well :-) 21:39
lizmat brrt: doesn't look like it 21:41
jnthn Hugely unlikely JIT related 21:43
brrt okay, im really going to sleep now 21:45
see you
lizmat good night, brrt
jnthn 'night, brrt++ 21:47