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. > >