JEP 276: Dynamic Linking of Language-Defined Object Models

Attila Szegedi attila.szegedi at oracle.com
Sun Oct 18 20:57:40 UTC 2015


Sure. For what’s it worth, this is for all practical purposes Dynalink, in the form I’ve been developing for years as a standalone library on GitHub and presenting about it at JVM Language Summits over several years, so I’d expect a significant amount of awareness is there. 

The primary motivator for this JEP is that I finally came to the point where I want to take it out of the jdk.internal.* space and into jdk.* space, so it is a supported API available to others as well, not just Nashorn. There were already people trying to do so something with the jdk.internal.* APIs, e.g. <http://mail.openjdk.java.net/pipermail/nashorn-dev/2015-March/004250.html <http://mail.openjdk.java.net/pipermail/nashorn-dev/2015-March/004250.html>> and discovering that JDK 9 is blocking that path.

For quite long I was reluctant to bring it out into the open as we were making lots of improvements on it internally driven by real-world use requirements coming from Nashorn, but it was always the intent to eventually do so. It was just a matter of finding the right time to do it: after it seems to have stabilized internally (so we feel fairly confident that there’s nothing in the design that could be invalidated or incomplete), but before people really want to use it but can’t. We’re obviously somewhat late on “people want to use it" metric, see above linked e-mail, but I feel we’re now reached the right time with regard to stabilization.

Which of course is not to say that we won’t discuss this with other language implementers further; getting the current machinery underlying Nashorn out there as an accessible API (with a lot of cleanup and exhaustive documentation, as befitting a supported API) is the first step, and then when it’s out there and people can - as somene said - kick the tires we can mold it further with input from the community as necessary. 

On a purely personal sidenote, I’m extremely excited to move forward with this. Maybe I’ll eventually write a (highly romanticized, of course) story of how Dynalink got started, but if I just look at it chronologically, it is something I’ve started thinking about circa 2007, wrote an initial prototype in 2008, and the first invokedynamic-based reformulation in 2009, a later iteration of which got integrated into Nashorn in 2012, and then developed alongside it ever since. So, it’s been part of my work life, on and off for good 7-8 years now. I’m obviously thrilled to be taking it to maturation with OpenJDK community :-)

Attila.

> On Oct 17, 2015, at 1:30 PM, Martijn Verburg <martijnverburg at gmail.com> 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).
> 
> Cheers,
> Martijn
> 
> On 16 October 2015 at 18:35, <mark.reinhold at oracle.com <mailto:mark.reinhold at oracle.com>> wrote:
> New JEP Candidate: http://openjdk.java.net/jeps/276 <http://openjdk.java.net/jeps/276>
> 
> - Mark
> 




More information about the core-libs-dev mailing list