We are extending the JVM with first-class architectural support for languages other than Java, especially dynamic languages. This project will prototype a number of extensions to the JVM, so that it can run non-Java languages efficiently, with a performance level comparable to that of Java itself.

Our emphasis is on completing the existing bytecode and execution architecture with general purpose extensions, as opposed to a new feature for just one language, or adjoining an unrelated new execution model.

We want the new languages to co-exist gracefully with Java in the JVM, and to benefit (like Java) from its powerful and mature technologies.

We are looking to remove “pain points” already observed by implementors of successful or influential languages, as opposed to attempting more speculative work on unproven features or niche languages.

Sub-projects with major activity include dynamic invocation, continuations, tail-calls, and interface injection. There is a large number of more speculative, lower-priority sub-projects. These are included in hopes that someone in the community will become excited with us at the prospects of a more dynamic JVM, to the point of sharing in its creation.