series of switchpoints or better

Jochen Theodorou blackdrag at gmx.org
Wed Oct 5 23:26:01 UTC 2016


On 06.10.2016 00:51, Charles Oliver Nutter wrote:
[...]
> JRuby does this invalidation
> eagerly, but the cost can be high for changes to classes close to the
> root of the hierarchy. You have fewer guards at each call site, though.

I think that is ok for Groovy.

There is one more special problem I have though: per instance meta 
classes. So even if a x and y have the same class as per JVM, they can 
have differing meta classes. Which means a switchpoint alone is not 
enough... well, trying to get rid of that in the new MOP.

> John's description of how Hotspot does this is also helpful; at least in
> JRuby, searching up-hierarchy for overridden methods is just a name
> lookup since Ruby does not overload.

not overloading solves many problems ;)

> I've prototyped a similar system,
> with a SwitchPoint per method, but ran into some hairy class structures
> that made it complicated. The override search may be the answer for me.

yeah, I can imagine.

bye Jochen



More information about the mlvm-dev mailing list