Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2016-05-13

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

All times shown according to UTC.

Time Nick Message
00:35 jnthn joined #moarvm
00:53 khagan joined #moarvm
01:50 zakharyas joined #moarvm
03:20 diakopter joined #moarvm
05:07 diakopter joined #moarvm
05:19 TimToady joined #moarvm
05:55 domidumont joined #moarvm
06:00 domidumont joined #moarvm
06:07 nwc10 jnthn/nine: local merge and ASAN build happy
06:57 nine excellent :)
08:03 jnthn nwc10: Thanks; will merge in a bit :)
09:33 dalek Heuristic branch merge: pushed 68 commits to MoarVM by jnthn
09:34 jnthn There we go :)
09:48 travis-ci joined #moarvm
09:48 travis-ci MoarVM build failed. jnthn 'Merge branch 'reframe''
09:48 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/129950941 https://github.com/MoarVM/MoarVM/compare/1c0b58f7eb59...2fd2836ca43b
09:48 travis-ci left #moarvm
09:48 jnthn wtf, here too
09:49 jnthn But it's just the very same merge I tested last night...
09:49 jnthn ohhh
09:49 jnthn duh
09:50 * jnthn merged the reframe-jit PR, after testing it on a checkout of reframe-jit with detached HEAD and merged master
09:51 jnthn And then today git merge reframe and of it wasn't up to date
09:51 nwc10 neuralise it!
09:52 dalek MoarVM: 13666ec | brrt++ | src/core/ (4 files):
09:52 dalek MoarVM: Make frames identifiable using a sequence number
09:52 dalek MoarVM:
09:52 dalek MoarVM: Because frames can now be garbage-collected, they can be moved, and
09:52 dalek MoarVM: the identity check used in the JIT will no longer work. Thus, we'd
09:52 dalek joined #moarvm
10:07 travis-ci joined #moarvm
10:07 travis-ci MoarVM build passed. jnthn 'Merge branch 'reframe''
10:07 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/129954828 https://github.com/MoarVM/MoarVM/compare/2fd2836ca43b...799a0bda284c
10:07 travis-ci left #moarvm
10:33 nine /win 40
10:42 jnthn grmbl, seems the JIT changes may be OSX-bust
10:47 jnthn (Yes, they are)
10:51 dalek MoarVM: 4186ee2 | jnthn++ | .travis.yml:
10:51 dalek MoarVM: Hopefully do Travis OSX builds too.
10:51 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/4186ee2554
10:57 jnthn brrt: For when you're about, this is the debugger output of the with-JIT crash on OSX: https://gist.github.com/jnthn/c745be5406894f7cefbc00c5d32ec4c4
10:59 nwc10 jnthn: those backtraces don't tell anyone the values in the register?
11:00 nwc10 r: say 0x7fff0000036b % 16
11:00 camelia rakudo-jvm 40a953: OUTPUT«cannot connect to eval server: Connection refused␤»
11:00 camelia ..rakudo-moar 110087: OUTPUT«11␤»
11:00 nwc10 although I assume that the lack of alignment is the issue
11:00 nwc10 oh wait, shut up, I don't know :-)
11:01 jnthn :)
11:02 dalek MoarVM: 9fd80cf | jnthn++ | Configure.pl:
11:02 dalek MoarVM: Disable JIT on OSX for a little bit; it's bust.
11:02 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/9fd80cf56d
11:05 nine Nothing like fixing JIT issues on plattforms you don't have access to, eh?
11:06 lizmat I could give jnthn access to an OS X machine
11:06 travis-ci joined #moarvm
11:06 travis-ci MoarVM build errored. jnthn 'Hopefully do Travis OSX builds too.'
11:06 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/129965777 https://github.com/MoarVM/MoarVM/compare/799a0bda284c...4186ee2554f8
11:06 travis-ci left #moarvm
11:14 lizmat jnthn: confirm mac os x build ok with Moar HEAD
11:20 lizmat jnthn: another datapoint: t/spec/S17-supply/syntax.t now consistently fails (used to be a flapper)
11:21 lizmat PERL6LIB=lib perl6 t/spec/S17-supply/syntax.t
11:21 lizmat ok 53 - did we throws-like X::ControlFlow?
11:21 lizmat Abort trap: 6
11:21 nwc10 lizmat: it only flaps on Linux: http://paste.scsys.co.uk/513650
11:24 travis-ci joined #moarvm
11:24 travis-ci MoarVM build errored. jnthn 'Disable JIT on OSX for a little bit; it's bust.'
11:24 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/129967860 https://github.com/MoarVM/MoarVM/compare/4186ee2554f8...9fd80cf56d5a
11:24 travis-ci left #moarvm
11:25 lizmat fwiw, it runs to completion ok when run in lldb  :-(
11:30 jnthn heh, yeah, that's why those are so fun to fix :P
11:31 jnthn I think we know the underlying issue there though, or to some degree at least
11:31 jnthn Gah, /win 16
11:31 jnthn oops
11:33 jnthn Gah, setting up the OSX travis isn't just as easy as adding osx to the OS list :P
11:39 dalek MoarVM: ee5846f | jnthn++ | .travis.yml:
11:39 dalek MoarVM: Another try to get OSX Travis builds working.
11:39 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/ee5846fbd9
11:43 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
11:44 jnthn :P
11:50 jnthn yay, think I nailed the OSX travis for Moar :)
11:50 jnthn (Was my first time editing a .travis.yml :P)
11:51 jnthn I could always crib on others before, and at $dayjob stuff we use Jenkins.
11:51 jnthn Pretty sure by now I prefer travis :P
11:52 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
11:52 jnthn Mostly I just like that it comes ready-integrated with various things, though.
11:52 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, ....
11:52 moritz notification only when the build status failed etc.
11:57 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:58 jnthn oh darn it
11:58 jnthn The --has-libffi ones ain't going to work out on OSX
12:01 jnthn And meeting time now, so bbiab
12:03 travis-ci joined #moarvm
12:03 travis-ci MoarVM build failed. jnthn 'Another try to get OSX Travis builds working.'
12:03 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/129974204 https://github.com/MoarVM/MoarVM/compare/9fd80cf56d5a...ee5846fbd964
12:03 travis-ci left #moarvm
12:45 cognominal joined #moarvm
13:46 cognominal joined #moarvm
14:10 brrt joined #moarvm
14:10 brrt good *
14:10 jnthn o/ brrt
14:10 brrt os x bustage again
14:10 brrt :-(
14:11 jnthn Yeah, 'fraid so :(
14:11 brrt does os x use libffi perchance?
14:11 brrt where does it bust?
14:11 jnthn It busts on the very first file of the NQP compilation with JIT enabled
14:11 brrt oh.. .that is soon
14:11 jnthn Which gives some hope it might be silly/big rather than small/hard to find.
14:12 brrt do we have a ssh session to an os x machine?
14:12 brrt yeah, that is hopeful
14:12 jnthn lizmat might be able to offer one
14:12 jnthn She provided me one in the past, at least, so I could debug OSX things :)
14:13 brrt you know, if apple would provide vms...
14:13 lizmat jnthn: it's still there, I only need to open it up  :-)
14:13 brrt but i digress
14:13 brrt would be much appreciated lizmat :-)
14:14 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
14:15 jnthn I think the travis build there is just trying to test we can use a pre-installed libffi
14:15 jnthn But not sure we need that for OSX
14:15 * jnthn is trying to figure out how to turn that off :)
14:19 dalek MoarVM: 2279a5c | jnthn++ | .travis.yml:
14:19 dalek MoarVM: Try not to do --has-libffi builds on OSX.
14:19 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/2279a5c5d5
14:19 jnthn (Don't mind if somebody wants to make 'em work, but all I want for now is *some* testing on OSX :))
14:21 jnthn yay, looks like I got it right: https://travis-ci.org/MoarVM/MoarVM/builds/130010332
14:30 dalek MoarVM: 92491d7 | jnthn++ | src/profiler/heapsnapshot.c:
14:30 dalek MoarVM: Avoid pointer type warning from GCC.
14:30 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/92491d718a
14:30 dalek MoarVM: 1d63987 | jnthn++ | src/strings/normalize.h:
14:30 dalek MoarVM: Pointless parens to shut up clang.
14:30 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/1d63987d95
14:35 dalek MoarVM: 973592c | jnthn++ | src/core/frame.h:
14:35 dalek MoarVM: Missing declaration in frame.h.
14:35 dalek MoarVM:
14:35 dalek MoarVM: Fixes a warning in collect.c.
14:35 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/973592c002
14:37 jnthn That should make us a tad quieter :)
14:38 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 + :)
14:38 timotimo but it was a daunting prospect to put a bajillion casts into the code just to make it not complain
14:39 jnthn Uh, that wasn't the best English but... :)
14:39 timotimo your fix clearly looks better than what i would have built
14:39 brrt jnthn, i suppose you are aware of it, but you can't move ->work, or at least make it moveable
14:40 brrt 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* :)
14:40 jnthn Yes :)
14:41 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:42 jnthn Note that the circumstances env or work would move would be a lot more constrained than those where MVMFrame can move.
14:42 jnthn The latter can happen on any allocating path 'cus they're GC-able.
14:42 jnthn env/work won't become that.
14:42 jnthn So it'd only be possible on the small handful of paths that can cause stack -> heap promotion.
14:43 jnthn So it's not quite so daunting.
14:43 jnthn But yes, it would need a good bit of care.
14:44 jnthn The pay-off is quite high though, potentially.
14:44 brrt hmmm
14:45 travis-ci joined #moarvm
14:45 travis-ci MoarVM build passed. jnthn 'Try not to do --has-libffi builds on OSX.'
14:45 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/130010332 https://github.com/MoarVM/MoarVM/compare/ee5846fbd964...2279a5c5d5d0
14:45 travis-ci left #moarvm
14:45 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 :)
14:46 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.
14:50 [Coke] \o/
14:56 leedo joined #moarvm
15:12 travis-ci joined #moarvm
15:12 travis-ci MoarVM build passed. jnthn 'Pointless parens to shut up clang.'
15:12 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/130013509 https://github.com/MoarVM/MoarVM/compare/2279a5c5d5d0...1d63987d9550
15:12 travis-ci left #moarvm
15:13 brrt didn't i kill the has-dynasm button...
15:29 dalek MoarVM: 5d854b2 | jnthn++ | src/ (4 files):
15:29 dalek MoarVM: Speed up non-specialized frame creation.
15:29 dalek MoarVM:
15:29 dalek MoarVM: By having an initial work environment that we can memcpy into place
15:29 dalek MoarVM: rather than having to look at what needs to be set to VMNull every
15:29 dalek MoarVM: time. Still to do for specialized frames.
15:29 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/5d854b2732
15:29 * jnthn is tired, probably from today's meetings, so will do the specialized case another time :)
15:30 travis-ci joined #moarvm
15:30 travis-ci MoarVM build passed. jnthn 'Missing declaration in frame.h.
15:30 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/130014922 https://github.com/MoarVM/MoarVM/compare/1d63987d9550...973592c00266
15:30 travis-ci left #moarvm
15:45 jnthn Travis really wants us to know things work :P
15:50 ilmari I believe you can make it to only announce success when the state changes
15:51 jnthn ilmari: Yes, that's what we have set in the .travis.yml
15:51 jnthn https://github.com/MoarVM/MoarVM/blob/master/.travis.yml#L27
15:52 jnthn (Unchanged for ages)
15:52 jnthn Maybe it's at-least-once semantics rahter than exactly-once semantics. Web scale and all that. :)
16:30 domidumont joined #moarvm
16:38 domidumont1 joined #moarvm
17:34 domidumont joined #moarvm
17:37 brrt joined #moarvm
17:48 brrt hmmpf
17:49 brrt this bug disappears under nearly all debugging conditions...
17:51 geekosaur timing sensitive? (mmm heisenbugs)
17:51 brrt i'm going to see if i can 'just' trigger it
17:52 brrt hmm, still can
17:55 brrt we die, rather surprisingly, in GOTO NEXT
17:55 timotimo oh, oops
17:55 timotimo bytecode got b0rked and we stumbled outside of our bytecode blob?
17:56 brrt not sure...
17:56 brrt and entirely not sure /why/ bytecode would get borked
17:56 timotimo spesh went awry? :\
17:56 brrt unlikely
17:57 brrt it's after returning from the jit
17:57 timotimo ah, hmm
17:57 timotimo so maybe our deopt indices are b0rked?
17:58 nwc10 valgrind?
18:00 brrt not installed on lizmat++s box
18:01 brrt no, it is likely to be jit - specific
18:05 brrt Oh
18:05 brrt *ahem*
18:05 brrt which side does the stack grow to again? :-P
18:06 * brrt is an idiot
18:06 brrt also, this ought to have been present on more platforms
18:06 brrt all of them, except windows perhaps
18:07 timotimo the bad direction
18:11 TimToady joined #moarvm
18:16 dalek MoarVM: b4d1dc6 | brrt++ | src/jit/emit_x64.dasc:
18:16 dalek MoarVM: Stacks grow downward on x86_64
18:16 dalek MoarVM:
18:16 dalek MoarVM: I exchanged [rbp-0x20] with [rbp+0x20], making the JIT write the
18:16 dalek MoarVM: frame number outside its stack space. On OSX, this caused a crash,
18:16 dalek MoarVM: but unfortunately it was masked by alignment on linux/windows and
18:16 dalek MoarVM: under debuggers.
18:16 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/b4d1dc653e
18:16 brrt dalek tells
18:16 timotimo haha
18:17 timotimo that's amazing :)
18:18 jnthn brrt++
18:18 jnthn That's a good'n :P
18:18 brrt it's a silly, silly, silly bug
18:18 jnthn I'm amazed it works as well as it did with that :P
18:18 arnsholt Candidate for best bug ever =D
18:19 jnthn Could you git revert my Configure patch, then we'll see if Travis is happy with the JIT fix too? :)
18:20 jnthn lizmat++ # providing an OSX shell
18:20 brrt will do
18:21 jnthn Thanks :)
18:21 dalek MoarVM: 9879233 | brrt++ | Configure.pl:
18:21 dalek MoarVM: Revert "Disable JIT on OSX for a little bit; it's bust."
18:21 dalek MoarVM:
18:21 dalek MoarVM: This reverts commit 9fd80cf56d5a8783d9e4538d63379bfe34173139.
18:21 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/987923343c
18:21 brrt lets see what travis thinks
18:22 jnthn :)
18:30 nwc10 will travis do a drive-by to tell us that the build is unbust?
18:30 nwc10 is it it like that joke "how do you keep an idiot in suspense?"
18:31 nwc10 anyway,
18:31 nwc10 brrt++ # smart enough to figure out his own bugs
18:32 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?
18:32 brrt i think so?
18:32 nwc10 or does it only show up with bad news?
18:33 brrt well, last compilations were unbust, weren't they?
18:33 nwc10 ah, yes, sigh
18:33 nwc10 good point
18:33 hoelzro I believe it does
18:33 hoelzro it does for my other stuff, anyway =)
18:33 nwc10 are we going from "not bust (because it was skipped)" to "not bust (because it's fixed)"
18:34 timotimo i think so
18:34 timotimo though it was theoretically bust on linux and windows, too. it just didn't asplode properly
18:34 brrt right
18:35 timotimo brrt: i already forgot why param_rp_n isn't jittable at the moment :o
18:35 timotimo but that prevented a bunch of frames to be jitted in some silly benchmark i ran
18:36 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
18:36 brrt but i may be wrong, of course
18:36 timotimo is it feasible to implement these in the exprjit?
18:36 timotimo or should we rather hold out for the rewrite of the arg handling stuff?
18:38 brrt well, if we could learn a standard for returning structs, then this should be no problem in either jit
18:39 brrt 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 brrt eh, the interpreter writes the value part, and copies the exists part
18:52 brrt eh, reads
18:52 brrt pff, my brane is done
19:20 brrt joined #moarvm
19:24 * lizmat is back
19:25 lizmat just minutes too late to help brrt  :-(
19:34 lizmat jnthn: should we have heard from travis by now ?
19:36 timotimo https://travis-ci.org/MoarVM/MoarVM/builds/130073463  -  it's happy
19:37 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?
19:37 timotimo so yeah, i expect it's safe
19:37 lizmat ok, bumping
19:47 nwc10 valgrind spots two problems with the JIT in the regression tests. I don't know if the problems are new: http://paste.scsys.co.uk/513693
20:06 timotimo ooooh yeah
20:06 timotimo i didn't know aboot these, tbh
20:50 patrickz joined #moarvm
21:17 brrt joined #moarvm
21:25 brrt https://webkit.org/blog/5852/introducing-the-b3-jit-compiler/
21:25 brrt did we discuss this before?
21:26 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 :)
21:26 jnthn Yes, JIT bug was fixed :)
21:26 jnthn brrt++
21:27 brrt the tl;dr of it is that webkit replaced llvm with a custom backend
21:27 brrt yes
21:27 jnthn brrt: Not seen that article before
21:27 jnthn So will be interested to read :)
21:27 lizmat ok, then I'll close the gate again  :-)
21:28 brrt good idea
21:29 brrt i actually needed sudo to run lldb
21:30 brrt i was somewhat amazed by that
21:30 brrt thanks again for the access
21:30 lizmat brrt: yw  :-)
21:30 lizmat just let me know if you need it again  :-)
21:32 brrt :-)
21:33 brrt expr jit will require a minor update aftee reframe
21:35 * jnthn is glad it's minor :)
21:35 jnthn OK, after a skim, I need to read that article when less tired.
21:35 brrt the b3 backend uses 2 IRs just like expr jit
21:36 brrt 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
21:39 brrt not jit related i hope... oh well :-)
21:41 lizmat brrt: doesn't look like it
21:43 jnthn Hugely unlikely JIT related
21:45 brrt okay, im really going to sleep now
21:45 brrt see you
21:45 lizmat good night, brrt
21:47 jnthn 'night, brrt++

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