happy new year!

Charles Oliver Nutter charles.nutter at sun.com
Wed Jan 21 23:10:27 PST 2009


Jochen Theodorou wrote:
> Atilla's work looks very much how Groovy used to work in 1.0 till 1.5. 
> The upcoming 1.6 is going away from a call oriented MOP to a request 
> based MOP. That means we request a callable object and then execute the 
> call itself directly from the call site.

This is how JRuby has worked since 1.0, though we do have a small shim 
class between the call site and the callable object to handle lookup, 
caching, and method_missing logic. But other than that it works very 
well, and our dispatch performance is quite good.

> theoretically this can be done with Atilla's MOP too, but we would have 
> to use the get method to get something callable and then call it... only 
> that we need to transport information like caller, callee, arguments and 
> of course methodname. And I am not sure how that would be done.

Atilla's Dynalang project could easily be modified to support the 
"callable" mechanism, and indeed would need such a modification to 
support both JRuby's current dispatch logic and invokedynamic. I'm 
hoping to start contributing to Dynalang very soon.

> Of course suppporting Atilla's MOP as an interface to Groovy's MOP is a 
> different story, since we can write a bunch of adapter classes and be 
> done withit. Of course the use is then "limited" to interlanguage calls

This is a good initial goal, and we've started looking into doing this 
for JRuby as well.

- Charlie



More information about the mlvm-dev mailing list