JamVM

Free and open source Java Virtual Machine
Download

JamVM Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • Robert Lougher
  • Publisher web site:
  • http://developer.berlios.de/projects/jamvm/
  • Operating Systems:
  • Mac OS X
  • File Size:
  • 621 KB

JamVM Tags


JamVM Description

Free and open source Java Virtual Machine JamVM is a compact Java Virtual Machine conforming to the JVM specification edition 2 (blue book). JamVM is extremely small ( when stripped it has on Intel 100K and on PowerPC 150K ). However, unlike other small VMs it supports the full spec, including object finalisation and JNI. JamVM currently only includes an interpreter (keeps it small). This means it is easy to port to new architectures as most of the code is written in C. Requirements: · Java What's New in This Release: · Zip/Jar support in the boot classloader has been rewritten to no longer require the Zip/Jar files to be mmap-ed read/write. This increases shareability between multiple VM instances, and improves memory-usage on embedded systems. JNI invocation API: · set thread-self to NULL when thread detaches (if the thread tries to re-attach, it appears to still be attached) · init args_count in dummy stack frame (fix problem if the thread detaches and then re-attaches) · Do not create a library unloader for libraries loaded by the bootstrap loader if they have an JNI_OnUnload method (the bootstrap loader is never unloaded, and so they will never be called). Fixes a SEGV with JRuby. · Fix to annotation handling. When the annotation value is an array, the native annotation parser constructs an Object array. However, the method return value is the specific type. This leads to an AnnotationTypeMismatchException. The fix coerces the Object array to the correct type. · Simple implementation of java.lang.management.VMManagementFactory (returns no memory pool, memory manager or GC names). Sufficient to run JRuby. · Implemented package support in the bootstrap class loader. Package information is obtained from the manifest file if it exists. However, GNU Classpath's glibj.zip's manifest has no package information. The class library is therefore recognised by the presence of java/lang/Object.class, and appropriate package information is constructed. · Fix broken implementation of VMClass.getSimpleName() (use the implementation from gcj) · Default Java stack size increased to 256K from 64K · Fix to bootstrap loader getResources() when the bootclasspath entry is relative (prepend the current working directory) · Fix minor memory leak in bootstrap loader getResources() · Add --enable-tls option to configure, enabling thread-local-storage (__thread) to be disabled


JamVM Related Software