>>>>> "Steve" == Steve Blackburn <[EMAIL PROTECTED]> writes:
Steve> I am going to stick my neck out and make a few concrete suggestions
Steve> for how the Harmony VM might be developed.
Excellent post.
I would like to mention a different possibility:
* Write a new, modular VM in C or C++
- Go through the interoperability list[1] and define internal
modules along these boundaries
- Pick 2-3 use cases as target environments. I suggest "small
embedded", "desktop application", and "j2ee server"
- Make good reference choices
* Use Classpath as the class library
* Port MMTk to C, or otherwise find a way to use it
* Use LLVM[2] as the JIT engine
* Write an interpreter engine as well, for special situations (small
memory). Assuming Classpath proves to have an acceptable license,
which really IMNSHO is the only sane possibility, we can just copy
over the one from libgcj.
Drawbacks of this plan:
* JikesRVM is further along, so longer time to "hello world"
* Everybody has to learn C++ (or C)
Benefits of this plan:
* LLVM holds the promise of being able to combine JIT and AOT
compilation
* Configurable VM means it is simpler to target the small machine
embedded scenario
* Re-use somebody else's compiler framework. For AOT, re-use lessons
learned by gcj.
Tom
[1] http://lists.gnu.org/archive/html/classpath/2004-01/msg00033.html
[2] http://www.llvm.org/