Project proposal: Multi-Language VM

Arnold Schwaighofer arnold.schwaighofer at gmail.com
Wed Oct 10 07:55:53 UTC 2007


Hi John,

my master thesis will be to  implement tail call optimization in the  
client compiler.
<http://www.ssw.uni-linz.ac.at/Teaching/DiplomaTheses/HotSpot/ 
HotSpotTailCalls.pdf>
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.

regards arnold

> Hello world.  I propose a new OpenJDK project[1],
> the Multi-Language VM, to be abbreviated "mlvm",
> and to be sponsored by the HotSpot group[2].
>
> 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
> project.[3]
>
> This proposal refines and completes a partial proposal
> I sent earlier this year to the HotSpot project,
> a proposal for a "Kitchen Sink VM"[4].  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 [5]
> - continuations and coroutines [6]
> - tuples and value-oriented types [7]
> - lightweight method objects [8]
> - runtime support for closures [9]
> - invokedynamic [10]
>
> Prototyping for JSR 292[11] 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.[12]
>
> Thanks very much for your attention to this matter,
>
> -- John Rose
> http://blogs.sun.com/jrose/
>
> [1] http://openjdk.java.net/projects/
> [2] http://openjdk.java.net/groups/hotspot/
> [3] http://ksl.dev.java.net/ (Kitchen Sink Language)
> [4] http://mail.openjdk.java.net/pipermail/hotspot-dev/2007-July/
> 000091.html (Kitchen Sink VM)
> [5] http://blogs.sun.com/jrose/entry/tail_calls_in_the_vm
> [6] http://lambda-the-ultimate.org/node/1002 (Continuations for Java)
> [7] http://blogs.sun.com/jrose/entry/tuples_in_the_vm
> [8] http://groups.google.com/group/jvm-languages/t/dbc3a4a382868904
> (Lightweight Methods)
> [9] http://www.javac.info/ (Java Closures)
> [10] http://groups.google.com/group/jvm-languages/web/implementation-
> of-multimethods-in-jvm-languages
> [11] http://jcp.org/en/jsr/detail?id=292#2 (Original JSR 292 request)
> [12] http://mail.openjdk.java.net/mailman/listinfo/discuss




More information about the discuss mailing list