JEP 276: Dynamic Linking of Language-Defined Object Models
Jochen Theodorou
blackdrag at gmx.org
Sun Oct 18 08:49:10 UTC 2015
On 17.10.2015 13:30, Martijn Verburg wrote:
> This looks very, very promising. Would it help to get the language
> maintainers of the most popular scripting/dynamic JVM languages involved
> ASAP? Happy to contact Groovy, Clojure, Scala, JRuby folks (although I
> suspect many of them are on this list).
still easy to miss something like this ;)
But I can give some comments for Groovy on this already. As I understand
it, this JEP is mostly for calls from Java on objects from other
languages. I have basically only main points:
* Invokedynamic (like invokeinterface and invokevirtual) does not like
calls with null as receiver, quitting the call right away with a NPE.
But languages may allow for calls on null. That again means some kind of
dummy receiver is required, if this is supposed to work. Then of course,
if you want to allow calls on null, every call would have to go through
the runtime in the end, thus I suspect this will be out of scope for
this JEP.
* Another part is the lookup of calls itself. To me the JEP is not fully
clear here. Sure, there is a service for this, but is every call
checked? That may slow down normal compilation for Java. The JEP speaks
of methods provided beyond what Java offers - but what about methods
replacing normal Java methods?
Btw, one part that would make me very happy, is an official API, that
allows some control of phases of the Java compiler as well as make
missing classes programatically known to the compiler without requiring
the java compiler to write those out as well. And that especially
because I assume that jigsaw will put all the api needed for this into
hiding by modules.
bye Jochen Theodorou
More information about the core-libs-dev
mailing list