Project proposal: Multi-Language VM
arnold.schwaighofer at gmail.com
Wed Oct 10 00:55:53 PDT 2007
my master thesis will be to implement tail call optimization in the
And I would be looking forward to the mlvm project.
As a fan of functional programming style i would also love to see
closures et al. come
to the java platform.
> Hello world. I propose a new OpenJDK project,
> the Multi-Language VM, to be abbreviated "mlvm",
> and to be sponsored by the HotSpot group.
> This project will be open for prototyping
> JVM features aimed at efficiently supporting
> languages other than Java.
> The emphasis will be 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.
> The emphasis will also be on work which removes
> "pain points" already observed by implementors
> of successful or influential languages, as opposed
> to more speculative work on unproven features or
> niche languages.
> Virtual machines produced by this project will
> be standards-conforming, in that they will not change
> the meaning or behavior of existing Java classes
> and classfile formats. They may define variations
> or extensions of the class format, or new kinds of
> objects, whose meaning and behavior are beyond
> the scope of current Java and JVM specifications.
> However, these extended codes and data structures
> will interoperate as much as possible with Java objects.
> In addition, as a way of delimiting separate prototyping
> efforts, each new feature will come with a switch which
> turns it off, and that switch will be "off" by default.
> This is the approach used in the Kitchen Sink Language
> This proposal refines and completes a partial proposal
> I sent earlier this year to the HotSpot project,
> a proposal for a "Kitchen Sink VM". The present
> proposal is more specifically directed at supporting
> new languages (i.e., those languages which are
> new to the JVM).
> Here are some examples of features that could be
> prototyped in this project, if developers were found
> who are willing and able:
> - tail calls and tail recursion 
> - continuations and coroutines 
> - tuples and value-oriented types 
> - lightweight method objects 
> - runtime support for closures 
> - invokedynamic 
> Prototyping for JSR 292 is likely to occur as
> a part of this project. Note that none of the above
> suggested features is specific to any single language.
> As the current OpenJDK Project guidelines request,
> please send followups to the discussion list.
> Thanks very much for your attention to this matter,
> -- John Rose
>  http://openjdk.java.net/projects/
>  http://openjdk.java.net/groups/hotspot/
>  http://ksl.dev.java.net/ (Kitchen Sink Language)
>  http://mail.openjdk.java.net/pipermail/hotspot-dev/2007-July/
> 000091.html (Kitchen Sink VM)
>  http://blogs.sun.com/jrose/entry/tail_calls_in_the_vm
>  http://lambda-the-ultimate.org/node/1002 (Continuations for Java)
>  http://blogs.sun.com/jrose/entry/tuples_in_the_vm
>  http://groups.google.com/group/jvm-languages/t/dbc3a4a382868904
> (Lightweight Methods)
>  http://www.javac.info/ (Java Closures)
>  http://groups.google.com/group/jvm-languages/web/implementation-
>  http://jcp.org/en/jsr/detail?id=292#2 (Original JSR 292 request)
>  http://mail.openjdk.java.net/mailman/listinfo/discuss
More information about the discuss