Wow. Continuations! Lightweight methods!
You have me hooked. I guess lightweight methods will get JRuby folks hooked as well really fast :-) As for multilinguality in a managed runtime -- at JAOO this year, Charlie Nutter, Erik Meijer, and myself were interviewed by Kresten Thorup about dynamic languages on managed runtimes, and one of the ideas that came up was that (analogously to how today you have class loader mechanisms to load executable content dynamically into the runtime) it would be great to have a runtime where you can go one level lower and actually load metaobject protocols into the runtime dynamically. I don't know yet whether this makes sense (it feels to me it does), but is definitely something to think about. Of course, there's always the danger of losing focus if the goal is too broad; see history of Parrot for terrifying examples. Although I'm optimistic -- building on a foundation of the HotSpot JVM architecture gets you immediately past lots of project infancy problems. Attila. -- home: http://www.szegedi.org weblog: http://constc.blogspot.com On Wed, 10 Oct 2007 08:57:42 +0200, Patrick Wright <[EMAIL PROTECTED]> wrote: > > Forwarded from the OpenJDK announce mailing list. I didn't want to > steal John's thunder (since he'll probably post here as well) but this > is so cool I thought others on the list would want to hear about it > ASAP. > > > ---------- Forwarded message ---------- > From: John Rose <[EMAIL PROTECTED]> > Date: Oct 9, 2007 11:27 PM > Subject: Project proposal: Multi-Language VM > To: [EMAIL PROTECTED] > > > 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 > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "JVM Languages" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/jvm-languages?hl=en -~----------~----~----~----~------~----~------~--~---
