genpaku has quit [Remote host closed the connection]
<headius>
awesome!
<headius>
enebo: I started an experiment to pass call info through the call path along an additional variable argument path
<enebo[m]>
yeah I saw the branch but did not look very much
<headius>
It doesn't wear anything up to the target native method yet, just still using thread local, but it pushes the flags into the method object itself
<headius>
s/wear/wire/
<headius>
I figured we can get a really long way by doing this. For non-jit call paths, the call info can be expanded in the future to specify what argument starts the unpacked keyword list, and in jitted code where I already expand out some arguments, we might be able to get keywords all the way through without any allocation
<headius>
Meanwhile I'm also fixing a few minor issues that popped up by running MRI tests with Indy. We will have a lot more confidence in always on Indy mode once I have this done
<enebo[m]>
nice
<enebo[m]>
I have been working on yarp integration. Mostly learning and making a list of things to discuss
<headius>
Yeah cool, we could potentially try hooking it up with Panama right now. I might actually want to do that as a good example for my talk
<headius>
If it has a header file, in theory we can just generate the bindings and start using it
<enebo[m]>
yeah it should be really simple since it is a single method
<headius>
In fact I think Panama might be a prerequisite for this scaling well but I guess we'll see
<enebo[m]>
a single coarse C call which returns a byte[] I doubt will help
<headius>
Also it creates some big binary blob you martial across and then interpret
<headius>
Ah so
<headius>
Not also
<enebo[m]>
but the idea of panama for more fine-grained jumping is interesting
<headius>
Yeah, a single copy of that by the way should be pretty efficient, but I do wonder if leaving it in native would be better. Wrap it in a byte buffer
<enebo[m]>
Yeah atm this would be the savings: (*env)->SetByteArrayRegion(env, serialized, 0, buffer.length, (jbyte*) buffer.value);
<enebo[m]>
So it would get rid of that so long as we appropriately deal with the native memory later
<enebo[m]>
but one arraycopy effectively is not a big price compared to the rest of it (at least at this point)
<headius>
uff-da, method_missing is a quagmire to untangle