[VMKit] OpenJDK Port

Hi Nicolas,

I'm writing you to let you know that I've begun work on this (porting
VMKit to OpenJDK), and I've reached the point where I'd like to start
a conversation with you about the entire process/project, and to start
working towards getting these changes pushed upstream as appropriate.
I'm especially keen on getting some feedback/discussion/code review,
as while I'm making good progress much of this is new to me and it can
be tricky to get right.

To give you a rough idea of the status of this work: the present port
can bootstrap (including the optional precompilation) and can run
things like "Hello World" and other similarly trivial applications.
While I'm sure there are a few core issues, I think at the moment the
largest deficiency is an incomplete implementation of the
JVM/JNI/sun.misc.Unsafe.* set of calls.

Anyway, please let me know your thoughts on this and how to best move
forward (should I start sending patches? where? where should
discussion go? etc).

Thanks for your time,

~Will

Hi Will,

Supporting OpenJDK is very interesting indeed, as full 1.6 support is
important to us. How intense of a project would undertaking this be?
And is this something you could semi-mentor on if I were to undertake
it? :).

Yes, no problem. I’d be happy to help in any way if you were to implement
it. And I’d really want this to happen. GNU Classpath is not evolving
anymore, and still has some compatibilities/performance problems.
I don’t know how decoupled from the runtime the OpenJDK libraries are, but
on the VMKit front, it should not be too hard to replace GNU Classpath’s
requirements with OpenJDK’s. You just need to be really familiar with
OpenJDK on how the boot system works.

Hi Nicolas,

I’m writing you to let you know that I’ve begun work on this (porting
VMKit to OpenJDK), and I’ve reached the point where I’d like to start
a conversation with you about the entire process/project, and to start
working towards getting these changes pushed upstream as appropriate.
I’m especially keen on getting some feedback/discussion/code review,
as while I’m making good progress much of this is new to me and it can
be tricky to get right.

To give you a rough idea of the status of this work: the present port
can bootstrap (including the optional precompilation) and can run
things like “Hello World” and other similarly trivial applications.

That’s awesome!

While I’m sure there are a few core issues, I think at the moment the
largest deficiency is an incomplete implementation of the
JVM/JNI/sun.misc.Unsafe.* set of calls.

Is that a big stopper? Without implementing full JNI nor sun.misc.Unsafe, VMKit can go pretty far with GNU Classpath.

Anyway, please let me know your thoughts on this and how to best move
forward (should I start sending patches? where? where should
discussion go? etc).

I’d be really happy to provide any help/review on your changes. Please send a patch to vmkit-commits, we can discuss them here. I am looking forward to it. Ideally, we should be able to define an interface between VMKit and the different libraries (OpenJDK and GNU Classpath), so we can all work on trunk.

I’m really enthusiastic about this!

Cheers,
Nicolas