Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-08-09

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

All times shown according to UTC.

Time Nick Message
01:51 ilbot3 joined #moarvm
01:51 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
03:33 pharv_ joined #moarvm
03:47 pharv_ joined #moarvm
04:02 SUPERNETS joined #moarvm
04:02 SUPERNETS THIS NETWORK IS BLOWJOBS! GET ON SUPERNETS FOR COLD HARD CHATS NOW
04:02 SUPERNETS
04:02 SUPERNETS
04:02 SUPERNETS
04:02 SUPERNETS
05:50 lizmat joined #moarvm
06:11 nine jnthn: the test runs just fine here on This is Rakudo version 2017.07-138-ga91ad2da8 built on MoarVM version 2017.07-347-g127fa2ce7
06:36 lizmat joined #moarvm
07:30 dalek joined #moarvm
07:30 synopsebot6 joined #moarvm
08:14 lizmat joined #moarvm
08:45 lizmat joined #moarvm
08:47 jnthn morning, #moarvm
08:48 jnthn This network is...what? :P
08:48 jnthn I didn't know that was an adjective.
09:06 jnthn nine: Fails for me in that version, curiously enough. Though it's not an entirely reliable failure
09:13 jnthn Darn, the bisect points to e354d1f901468984b95c3ade53ae23f218760e37
09:13 jnthn But that was just a change to make more information available to allow more things to be optimized
09:13 jnthn So it doesn't actually provide much useful information on what's wrong
09:15 edehont joined #moarvm
09:15 zakharyas joined #moarvm
09:16 Geth ¦ MoarVM: 9dbaf5c494 | (Jonathan Worthington)++ | src/spesh/codegen.c
09:16 Geth ¦ MoarVM: Ensure unreachable handlers fully -1'd.
09:16 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/9dbaf5c494
09:16 jnthn That doesn't fix it, just seemed a wise idea
09:18 Geth ¦ MoarVM: b70995783a | (Jonathan Worthington)++ | src/spesh/codegen.c
09:18 Geth ¦ MoarVM: Ensure unreachable inline endpoints both -1'd.
09:18 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/b70995783a
09:24 lizmat joined #moarvm
09:29 lizmat joined #moarvm
09:31 brimonk joined #moarvm
09:31 harrisi joined #moarvm
09:31 jpf4 joined #moarvm
09:55 lizmat joined #moarvm
10:00 Geth ¦ MoarVM: 91590c4171 | (Jonathan Worthington)++ | 3 files
10:00 Geth ¦ MoarVM: Move sp_resolvecode op body into a function.
10:00 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/91590c4171
10:00 Geth ¦ MoarVM: 3c36ef2667 | (Jonathan Worthington)++ | 2 files
10:00 Geth ¦ MoarVM: JIT sp_guardsf and sp_resolvecode.
10:00 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3c36ef2667
10:02 lizmat joined #moarvm
10:03 jnthn So of course with it JITted the test I was worrying about passes again :P
10:03 jnthn Provided I don't disable JIT
10:03 jnthn Since I know the current thing I've been working on didn't introduce this problem, though, I see no reason not to get it in.
10:08 nine samcv++'s talk is now starting :)
10:12 lizmat well, if we get the video running  :-(
10:12 dogbert17_ is there a stream somewhere?
10:12 lizmat we have ignition
10:13 lizmat and liftoff
10:14 dogbert17_ never used it, is there a link one can go to and watch everything from afar :)
10:14 lizmat facebook.com/theperlconference
10:14 lizmat is the url
10:15 timotimo huh i can watch the stream but i can't scroll back to the beginning?
10:15 timotimo but i'm out the door in 5
10:15 lizmat timotimo: no idea
10:15 lizmat it is being recorded as well
10:16 dogbert17_ yay, it seems to work. Is that samcv?
10:16 lizmat yes
10:21 stmuk timotimo: I'd guess you can only rewind once the talk is complete
10:21 timotimo how come the camera's wiggling?
10:24 timotimo ok, i'm afk
10:24 stmuk no tripod? the audio is nice and clear which is the main thing
10:26 Geth ¦ MoarVM: 58d3874ed5 | (Jonathan Worthington)++ | 3 files
10:26 Geth ¦ MoarVM: Implement speculative call optimization.
10:26 Geth ¦ MoarVM:
10:26 Geth ¦ MoarVM: This is optimization of calls where we can't 100% determine the code
10:26 Geth ¦ MoarVM: object that will be invoked, but we know from our logging that it is
10:26 Geth ¦ MoarVM: likely to be consistent. Thus, we guard the static frame that's being
10:26 Geth ¦ MoarVM: invoked and then can either fast-invoke (pre-selection of the spesh
10:26 Geth ¦ MoarVM: candidate) or inline.
10:26 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/58d3874ed5
10:27 lizmat shitov uses a handheld
11:03 lizmat joined #moarvm
11:09 brrt joined #moarvm
11:10 brrt ohai #moarvm
11:11 brrt samcv++ talk went well i think
11:18 jnthn samcv++
11:20 jnthn lunch &
11:34 AlexDani` joined #moarvm
11:43 markmont joined #moarvm
11:55 samcv thanks :)
11:59 Ven joined #moarvm
11:59 lizmat joined #moarvm
12:05 * jnthn back
12:08 brrt joined #moarvm
12:09 brrt idea. what if we don't have the variadic operators require the number of operand expressions
12:10 brrt we can just list all variadic ones, count the number we have, and splice that into the list
12:10 brrt reduce error surface, as it were
12:10 jnthn brrt: Context?
12:10 brrt an operator like (DO ….) or (ARGLIST ..) can take any number of expressions
12:11 brrt provided we first prefix them with that number
12:11 brrt but the expr-tree-compiler knows that number
12:11 brrt currently checks it, too
12:11 brrt so if you'd do (DO 3 (foo) (bar) (baz) (quix))  - it will tell you you made a mistake
12:11 brrt but that's not ergonomic
12:12 brrt so i propose translating (DO (foo) (bar) (baz)  (quix)) to (DO 4 (foo) (bar) (baz) (quix)) simply by splicing the number of operands after the DO
12:13 jnthn ah, I see
12:13 jnthn Seems less error prone, yes
12:14 jnthn Urgh, some bug has shown up in the speculative call opt thing I pushed above
12:15 jnthn And of course the frame I've got it isolated to is pretty huge
12:36 dogbert17_ jnthn: I'm probably disturbing your debugging but does t/spec/S32-num/fatrat.t work for you?
12:40 * dogbert17_ tries with the latest nqp
12:40 jnthn dogbert17_: That's exactly the one I'm debugging
12:43 jnthn I can get it down to one very specific application of the optimization
12:43 lizmat joined #moarvm
12:44 jnthn Thing is, it looks entirely normal
12:45 jnthn It's actually this call that goes wrong:
12:45 jnthn nqp::findmethod(HLL::Grammar, 'EXPR')(self, $preclim, :noinfix($preclim eq 'y='));
12:46 jnthn But the consequence of it shows up, like, waaay later
12:50 dogbert17_ aha, I just noticed that I haven't been running HEAD nqp
12:52 dogbert17_ I thought that was the reason the test failed and that I had disturbed you unnecessarily
12:53 jnthn No, the NQP patch is just addressing a code-gen bug that I spotted while investigating that regression
12:53 dogbert17_ ok, good to know
12:54 jnthn Worth having but doesn't address the regression itself
12:58 buggable joined #moarvm
12:59 dogbert17_ it's a bit funny though, if I run './perl6 t/spec/S32-num/fatrat.t' then it fails immediately
13:00 dogbert17_ with Confused
13:00 dogbert17_ at /home/dogbert/repos/rakudo/t/spec/S32-num/fatrat.t:175
13:02 dogbert17_ on the other hand, if I run './perl6-valgrind-m t/spec/S32-num/fatrat.t' it almost works, i.e. it starts running the tests and later fails at:
13:02 dogbert17_ ok 245 - === with false outcome
13:02 dogbert17_ Type check failed in assignment to $a; expected FatRat but got Rat (0.1)
13:02 dogbert17_ in block  at t/spec/S32-num/fatrat.t line 184
13:02 dogbert17_ in block <unit> at t/spec/S32-num/fatrat.t line 182
13:05 jnthn Odd
13:05 jnthn It's not the guard insertion and so forth that's busted
13:05 jnthn It's only when we rewrite it into a fastinvoke that things go bad
13:06 lizmat joined #moarvm
13:12 dogbert17_ so why does it work under valgrind but not without, odd
13:14 dogbert17_ another useless observation, if I run './perl6 t/spec/S32-num/fatrat.t' several times it fails at different lines, e.g. 152, 154 and 175
13:17 lizmat joined #moarvm
13:18 lizmat joined #moarvm
13:20 lizmat joined #moarvm
13:25 jnthn It seems that we might be preselecting candidates incorrectly
13:25 jnthn I just put in a debugging flag and stuff for it and there's a few
13:27 jnthn And they're all ones determined by MVM_spesh_arg_guard_run_callinfo
13:28 brrt joined #moarvm
13:28 dogbert17_ you're closing in on the problem
13:29 lizmat joined #moarvm
13:29 brrt .oO ( that also saves me a few minutes from my presentation )
13:35 lizmat joined #moarvm
13:41 jnthn And it's seemingly wrong for the very place I isolated the optimization to
13:42 Geth ¦ MoarVM/even-moar-jit: ebc681b3a3 | (Bart Wiegmans)++ | 3 files
13:42 Geth ¦ MoarVM/even-moar-jit: Automatically insert variadic list length
13:42 Geth ¦ MoarVM/even-moar-jit:
13:42 Geth ¦ MoarVM/even-moar-jit: This reduces the potential for errors - the template precompiler
13:42 Geth ¦ MoarVM/even-moar-jit: already knows the length, so why not have it add it.
13:42 Geth ¦ MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/ebc681b3a3
14:07 dogbert17_ btw, changing MVM_GC_DEBUG is no longer possible due to a new compiler directive being added '-Werror=pointer-arith'
14:07 jnthn Ah, one cause of mis-matches is that when we optimized there was only a certain specialization, and later a typed one showed up
14:08 jnthn dogbert17_: :(
14:08 dogbert17_ do you think that fixes the problem
14:09 jnthn I think it means my checker might be identifying problems where there are none
14:13 jnthn Yeah, it mis-identified some cases as wrong
14:13 AlexDani` joined #moarvm
14:14 jnthn Now there's a lot less hits
14:14 jnthn Which means the hits we get are perhaps more genuinely problems
14:16 dogbert17_ so, a nice improvement at the very least then
14:23 jnthn "JIT: can't find deopt all idx" Hmmmmmmmm.
14:28 jnthn Yeah, it's looking increasingly like a deopt bug
14:29 Geth ¦ MoarVM: 5ba22cb5ea | (Jonathan Worthington)++ | src/spesh/dump.c
14:29 Geth ¦ MoarVM: Dump certain result nodes in arg guards.
14:29 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/5ba22cb5ea
14:35 lizmat joined #moarvm
14:42 jnthn There's two things it could be. Either it's 'cus we don't deopt the top frame (likely, hopefully easier to fix) or because we somehow miss when resolving some deopt indexes (harder)
14:44 Geth ¦ MoarVM: 49ad5752cb | (Jonathan Worthington)++ | src/spesh/deopt.c
14:44 Geth ¦ MoarVM: Better logging of full deopts.
14:44 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/49ad5752cb
14:47 * dogbert17_ hopes it's the easier to fix problem
14:48 nwc10 "seen" brrt?
14:48 nwc10 (maybe I should ask on #yapc)
14:48 jnthn Pushed a commit an hour and 6 mins ago...
14:49 nwc10 ah OK.
14:49 nwc10 my "problem" is that nqp won't build with his branch now, and MoarVM won't merge (cnflicts)
14:49 nwc10 which actually was the thing that prompted me to be looking for him
14:49 nwc10 clearly I'm not awake enough to remmeber the "what" and tie it back to the "why"
14:50 lizmat joined #moarvm
14:58 lizmat joined #moarvm
15:14 Geth ¦ MoarVM: 7f0f753e55 | (Jonathan Worthington)++ | 4 files
15:14 Geth ¦ MoarVM: Add debugging aid for spesh preselection.
15:14 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/7f0f753e55
15:20 Geth ¦ MoarVM: ec6781acfd | (Jonathan Worthington)++ | 7 files
15:20 Geth ¦ MoarVM: Make rebless deopt stack top frame also.
15:20 Geth ¦ MoarVM:
15:20 Geth ¦ MoarVM: Previously it would only deoptimize the frames below this point. That
15:20 Geth ¦ MoarVM: was not sufficient in a frame like `statement` in the Perl 6 grammar,
15:20 Geth ¦ MoarVM: which does a rebless and then more calls that may, thanks to the
15:20 Geth ¦ MoarVM: recent speculative calls specialization work, have been specialized.
15:20 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/ec6781acfd
15:21 jnthn That's the fatrat fix
15:22 jnthn Another case of a long-standing bug that was only just exposed by more aggressive optimizations being available
15:26 lizmat joined #moarvm
15:31 jnthn But darn, various failures under spesh stress testing still
15:33 jnthn Ah, seems there's something that goes awry with enum value creation
15:33 jnthn hm, with rebless
15:41 Ven joined #moarvm
15:47 jnthn Ah, seems this is a simpler one at least.
15:51 lizmat joined #moarvm
15:52 Geth ¦ MoarVM: 37deb55eea | (Jonathan Worthington)++ | src/spesh/facts.c
15:52 Geth ¦ MoarVM: Bump usage of writers in deopt instructions.
15:52 Geth ¦ MoarVM:
15:52 Geth ¦ MoarVM: Otherwise, we might tweak the register that the operation writes into,
15:52 Geth ¦ MoarVM: causing the value to not be in the right place after deopt.
15:52 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/37deb55eea
15:55 jnthn Yeah, that clears up the trouble. :)
16:04 dogbert17 joined #moarvm
16:04 dogbert17 jnthn++
16:07 jnthn With the new speculative code opt, we can now - in theory - inline the block in for ^10000000 { }
16:07 jnthn In practice, it seems to miss out on inlining it about half of the time, which is bizzare.
16:07 dogbert17 do you think it will have an effect on test-t?
16:07 jnthn But when it does nail the inline it runs in about 0.68s instead of 1.75s
16:08 jnthn dogbert17: Hopefully :)
16:08 jnthn Though it sure will need some tuning
16:08 jnthn I think it probably makes some bad decisions at the moment
16:08 jnthn Also it inserts some guards that it then doesn't use, so I need to re-order things to try and not do that.
16:09 jnthn I think there's budget for one more attempted opt, which will be to see if I can get inlining of closures to work.
16:09 jnthn I'm curious why it manages to miss the opt some of the itme
16:09 jnthn *time
16:10 jnthn ohh
16:10 jnthn It misses the OSR
16:10 dogbert17 do you know why?
16:11 jnthn No
16:11 nwc10 so time to cook food?
16:11 dogbert17 Vindaloo?
16:12 jnthn It's probably a race
16:12 jnthn But...how is it happening...
16:12 nwc10 it consistently misses the OSR?
16:12 jnthn No
16:12 jnthn It hits it sometimes, misses it sometimes
16:13 jnthn There's potential for a race in that it's produce by one thread, and watched for by the other
16:14 jnthn It isn't a problem producing the specialization
16:14 jnthn I can see from the inline log that it consistently manages to inline
16:20 Geth ¦ MoarVM: c0f7a3b14f | (Jonathan Worthington)++ | src/spesh/candidate.c
16:20 Geth ¦ MoarVM: Fix data race that could lead to missed OSR.
16:20 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c0f7a3b14f
16:20 jnthn Makes a factor of 3 difference if it manages or not :P
16:20 dogbert17 impressive
16:21 dogbert17 so, what's for dinner?
16:22 jnthn I got curious and disabled the opt I spent the last couple of days putting in
16:22 jnthn 0m1.412s before
16:22 jnthn 0m0.667s after
16:22 jnthn m: say 0.667 / 1.412
16:22 camelia rakudo-moar 674551: OUTPUT: «0.472380?»
16:22 jnthn for ^10000000 { } in half the time :)
16:23 jnthn Dinner is shepherd's pie :)
16:23 dogbert17 very nice
16:23 dogbert17 what, that doesn't sound like an Indian dish :)
16:27 jnthn There actually are various Indian-style variants of it by making a different kind of sauce
16:28 jnthn Though mine is the traditional worcestershire sauce version
16:29 dogbert17 so nothing extremely spicy today
16:29 jnthn No, not really
16:29 jnthn Oh, for more fun
16:30 jnthn Didn't find worcestershire sauce for sale here
16:30 jnthn So have to concoct it myself :)
16:30 dogbert17 :)
16:31 jnthn Indian is the most common thing I cook, but it's nice to have some variety :)
16:31 jnthn Anyways, I'm off home to warm/eat that :)
16:32 jnthn (Cooked a big one yesterday, so it'll feed us for at least 2 dinners :))
16:33 * dogbert17 is getting hungry
16:42 zakharyas joined #moarvm
16:52 lizmat joined #moarvm
16:57 Ven joined #moarvm
17:04 colomon joined #moarvm
17:17 colomon joined #moarvm
17:21 lizmat joined #moarvm
17:59 colomon joined #moarvm
18:23 SourceBaby joined #moarvm
18:29 Ven joined #moarvm
19:08 brrt joined #moarvm
19:12 brrt ohai
19:15 stmuk_ joined #moarvm
19:17 brrt samcv bumped MOAR_REVISION, which is why my branch won't build
19:28 timotimo ah yeah
19:28 timotimo personally, i'd like a --ignore-revision flag for configure.pl
19:50 brrt joined #moarvm
19:56 evanm joined #moarvm
20:00 Geth ¦ MoarVM/even-moar-jit: 48 commits pushed by (David Warring)++, MasterDuke17++, (Timo Paulssen)++, (Stefan Seifert)++, (Dagfinn Ilmari Mannsåker)++, (Jan-Olof Hendig)++, niner++, (Jonathan Worthington)++, (Samantha McVey)++, (Bart Wiegmans)++
20:00 Geth ¦ MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/compare/ebc681b3a3...15d364f1d4
20:01 Geth joined #moarvm
20:34 lizmat joined #moarvm
20:49 colomon joined #moarvm
21:37 markmont joined #moarvm
21:41 evanm joined #moarvm
22:16 dogbert17 joined #moarvm
22:46 colomon joined #moarvm
23:24 colomon joined #moarvm
23:38 colomon joined #moarvm

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