welcome to the Da Vinci archipelago
John Rose
John.Rose at Sun.COM
Tue Apr 15 02:45:34 PDT 2008
As you can see from the Mercurial changeset notifications that just
went out, we have a repository for the Da Vinci Machine project.
The repository does not hold a separate copy of the JVM. Rather, it
is a Mercurial patch repository[0], a system of version-controlled
patch files, each of which applies to the OpenJDK master source
repository.
At this point, there are three parts, three islands in what I trust
will someday be a thriving cyber-polynesia:
0. The rules under which patches will co-exist are embodied in a
README, assisted by a few shell scripts.
1. The anonk patch set, an implementation of VM-native anonymous
classes, as previously blogged by me.
2. The callcc patch set, a first cut at VM-native continuations.
All of these are works in progress. Please try out the setup, and if
you find something that doesn't work right or is unclear, please
propose a fix and send me a patch. At first, I'll apply the patches,
with suitable Contributed-by lines.[1]
To start, pull http://hg.openjdk.java.net/mlvm/mlvm and read the
README. Or just browse: http://hg.openjdk.java.net/mlvm/mlvm/rev/
1e070e27ffd7
The anonk patch set is a proposed fast path[2] for loading bytecodes,
such as JRuby invokers. It currently needs a pre-JDK7 emulation
package, which takes the bytes, applies the CP patches the hard way,
chooses a strange name (instead of no name), probably creates a fresh
class loader, and loads it up.
The callcc patch set is a proof of concept of the copyStack/
restoreStack API. It is an early snapshot of something Lukas Stadler
[3] is now working on.
Another island which will soon rise out of the sea will be the home
of method handles.[4] Unlike the first two projects, method handles
are likely to be included in the first version of JSR 292, as an
essential underpinning of invokedynamic. (Thus, it will be the first
civilized island, since it will evolve under JCP oversight.)
Best wishes,
-- John Rose
[0] http://hgbook.red-bean.com/hgbookch12.html , http://
www.selenic.com/mercurial/wiki/index.cgi/MqExtension
[1] http://openjdk.java.net/guide/producingChangeset.html
[2] http://blogs.sun.com/jrose/entry/anonymous_classes_in_the_vm
[3] http://mail.openjdk.java.net/pipermail/mlvm-dev/2008-April/
000037.html
[4] http://openjdk.java.net/projects/mlvm/subprojects.html#MethodHandles
More information about the mlvm-dev
mailing list