Hi List,

Now that I've been explicitly asked, I'll forego my current observer
status and give some  input :)  First off, I'm not comfortable pushing
JamVM, but I'll give a summary for people who are unfamiliar with it.

As has already been alluded to, JamVM's main claim is its small size
(currently, its stripped executable weighs in at ~135K on PowerPC and
100K on Intel).  This makes it suitable for use on platforms ranging
from embedded ARM processors, up to desktop machines and SMP systems
(it has appropriate memory barriers for PowerPC and Intel), and it
could also be used as a bootstrap VM.  Its small size is a result of
conscious design decisions and effort.  It may not be the most
sophisticated VM out there, but it has proved to be complete, stable
and fast enough for many of the GNU Classpath developers to adopt it
as their development VM.  The interpreter in particular, is
"state-of-the-art", supporting direct-threading, stack-caching,
prefetching and common super-instructions.  See
http://www.csc.uvic.ca/~csc586a/slides/StackCaching-4.pdf and
http://www.csc.uvic.ca/~csc586a/Ass1.pdf for an advanced academic
course on virtual machines using JamVM.

JamVM has currently been built and tested on Linux for the ARM,
PowerPC and IA32 architectures, and on Mac OS X/Darwin for PowerPC. 
Porting to a new architecture/platform involves writing a couple of
assembler macros for atomic operations (used in the thin-locking
implementation) and for memory barriers.  A separate function must
also be implemented which handles the construction of a native C call
stack frame and perform parameter passing for invoking native JNI
methods.  This could, however, be simplified in the future by
providing the option to use libffi instead.  JamVM also includes the
option to use an internal native interface which is much more
efficient than JNI.

The current latest version of JamVM is 1.3.0 (see
http://jamvm.sf.net).  This works "out-of-the-box" with GNU
Classpath-0.15 (the latest snapshot) and CVS head.  I'm currently
finishing off JamVM 1.3.1, this is a maintenance release which
includes a couple of minor bug-fixes and some performance
optimisations for object and array allocation.  It will also include
the patches enabling JamVM to boot the GNU Classpath generics branch
(the branch for Java 1.5 features).  See
http://lists.gnu.org/archive/html/classpath/2005-04/msg00005.html.

The major problem with JamVM as regards Harmony is that it is
currently licensed under the GPL.  I originally had some specific
reasons for doing this, however, I am open to suggestions about
different licensing models, e.g. dual-licensing, adoption of LGPL or a
linking exception as in GNU Classpath.  Assuming the license issue
could be sorted out, and if (and it's a big if) JamVM was adopted as
one of the seed VMs my next concern would be what happens next. Would
it be a fork?  Would I continue to work on JamVM as now?  Of course,
change is not necessarily a bad thing.

Hope this helps,

Rob.

On 5/21/05, Raffaele Castagno <[EMAIL PROTECTED]> wrote:
> 2005/5/21, Davanum Srinivas <[EMAIL PROTECTED]>:
> >
> > David,
> >
> > please feel free to ping Rob. It would be great!
> >
> > thanks,
> > dims
> >
> > On 5/21/05, David Griffiths <[EMAIL PROTECTED]> wrote:
> > > On 20 May 2005 17:54:11 -0600, Tom Tromey <[EMAIL PROTECTED]> wrote:
> > > >
> > > >
> > > > This is too vague -- we don't know much about the unexpected. Plus,
> > > > in most cases, the "core" part of the VM is simply not very important.
> > > > There just isn't much code there -- JamVM is 20KLOC, anybody could
> > > > comfortably rewrite this.
> > >
> > >
> > > Hmmm, well I used to work with the author of JamVM (Rob Lougher) and
> > he's
> > > one of the brightest guys I know. I think you'll find that the low LOC
> > > figure is testament to his ability to write lean code rather than an
> > > indication of how easy it is to knock off a JVM on a wet Sunday
> > afternoon.
> > >
> > > BTW has anyone asked Rob about donating JamVM to Harmony? As the
> > (currently)
> > > sole owner he should have no problem with switching licenses.
> > >
> > > Cheers,
> > >
> > > Dave
> > >
> > >
> >
> > --
> > Davanum Srinivas - http://webservices.apache.org/~dims/
> >
> 
> 
> 
> --
> If you want a GMail account, send me an E-Mail.
> 
>

Reply via email to