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
brrt \o 06:51
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.
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
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
brrt lunch & 10:07
timotimo i wonder at what point the trace jit will throw in guards against execution that'd differ? 14:20
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
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