02:40 vendethiel joined
dalek arVM/no-moar-linenoise: 1d37511 | hoelzro++ | / (13 files):
Remove linenoise/readline

Now that NativeCall is included with Rakudo, instead of having linenoise/readline functionality be bundled in as a VM-level op, let's create a NativeCall-based module for this functionality
02:59
03:07 xiaomiao joined 05:06 timotimo joined 05:25 vendethiel joined 06:38 brrt joined, vendethiel joined
brrt \o 06:51
06:54 FROGGS joined
brrt with regards to the tracing discussion, i see no other plausible way than to add a check in MVM_frame_invoke 06:56
something like if (tc->is_tracing) { if (!code->tracing_frame) code->tracing_frame = MVM_spesh_add_tracing(tc, frame); invoke(tc, code->tracing_frame) } } else { ... } 06:57
jnthn That's certainly an easy way to do it, yes
brrt that is not too expensive for the general, non-tracing form, and it catches all mvm level invocations 06:58
jnthn The other is to tweak all the invokish ops to some other op that takes the invokish op in question as a parameter, but that's getting a bit awkward.
06:58 rurban joined
brrt it can be done.. but sometimes the invokish bit is hidden rather far (istrue/isfalse come to mind) 06:59
jnthn *nod* 07:01
07:11 zakharyas joined
brrt wishes he had more time :-( 07:36
jnthn All being well, you'll have a good amount of time to make a nice difference with the JIT. :) 07:37
brrt that is true 07:39
the last year has been so incredibly hectic :-o 07:40
07:44 vendethiel joined 08:37 vendethiel joined
brrt lunch & 10:07
10:10 vendethiel joined 10:30 Ven joined 10:36 vendethiel joined 10:51 Ven joined 11:25 vendethiel joined 11:35 brrt joined 11:49 Ven joined 11:52 rurban joined 12:08 ggoebel joined 12:42 vendethiel joined 13:03 Ven joined 13:20 vendethiel joined 13:45 vendethiel joined 13:47 ggoebel joined 13:53 Ven joined 13:57 brrt` joined
timotimo i wonder at what point the trace jit will throw in guards against execution that'd differ? 14:20
14:21 Ven joined 14:25 vendethiel joined 14:26 rurban joined 14:51 vendethiel joined 15:01 Ven joined 15:56 vendethiel joined 16:05 ggoebel joined 16:35 FROGGS[mobile] joined 17:23 vendethiel joined 17:39 lizmat joined 17:50 FROGGS joined 18:29 vendethiel joined 18:42 lizmat_ joined 19:22 synbot6 joined 19:37 brrt joined
brrt timotimo: long story really short 19:40
in the trace you add only the bbs that are actually visited, and *all* the bbs that are visited below a level
once you'd branch out of any of these bbs you deopt 19:41
the assumption is that some paths within and through a routine are really hot, and some paths are not, even if they are in the same routine 19:42
so if you'd have something like: sub foo { if $condition { bar(); } else { something-else(); } }; sub bar() { if $unlikely { branch-not-taken(); } 42; } 19:44
then a trace starting at foo, given that condition would always yield true, would simply jump all the way to the end of bar 19:45
sidenote; trace jit would require a generalised sp_guard_istrue 19:46
19:56 zakharyas joined
brrt tracing spesh, i mean 20:04
jnthn Something like that, yeah 20:18
I hope we can mostly re-use the deopt mechanism we already have to power the deopt too
You can also do side-traces for commonly taken other branches
brrt right, but you'd only do that if they appear in the trace 20:19
a trace isn't necessarily linear
22:59 flussence joined 23:41 LLamaRider joined