CACAO is a virtual machine for running Java programs. It uses a JIT compiler which is available for the Alpha, ARM, i386, M68k, MIPS (32- and 64-bit), PowerPC, PowerPC64, S390, and x86-64 architectures.
| Licenses | GPL |
|---|---|
| Operating Systems | Unix Mac OS X POSIX BSD FreeBSD IRIX Linux Other |
| Implementation | Java Assembly C |
Recent releases


Release Notes: This bugfix release fixes compilation of OpenJDK code (libltdl related), imports a new gnu/java/lang/CPStringBuilder.java to fix OOMEs, and fixes an abort with OpenJDK's java binary when exiting.


Release Notes: This release adds initial support for using OpenJDK as the Java runtime library, fixes a memory leak in Boehm-GC, updates Boehm-GC to version 7.1, removes the libltdl dependency, uses 8-byte stack-slots on all architectures, includes faster C-to-Java calls, removes genoffsets so that cross-compilation is much easier, and adds annotation and assertion support.


Release Notes: The ARM and MIPS32 code generators are now Open Source. A PowerPC64 code generator has been added. Sun's phoneme CLDC-1.1 classes can now be used as a Java core library. Exception throwing code has been completely rewritten; this saves the JIT code size from 20%-50%. The lock-record code has been rewritten and a memory leak has been fixed. The threads and exception code has been reworked and improved. A memory leak has been fixed in the threads code.


Release Notes: A new instruction format, a new intermediate representation with unified variables, local subroutine elimination, and a new stack-based verifier (used for -Xint) were implemented. The interpreter was fixed, so it runs Eclipse now. Support for enabling and disabling system assertion (-esa/-dsa) was added. Initial javax.management support and initial sun.misc.Unsafe (JSR166) support were added. Fixed An AbstractMethodError bug, a BeanShell bug in builtin_isanysubclass, line numbers in exceptions thrown through the JIT, and a memory leak in dump memory were fixed.


Release Notes: New tasuki lock implementation resolves deadlock problems on multi-processor machines. Miranda methods are handled properly. A try-catch line number problem with Jikes has been fixed. Support has been added for libjvm.so (including the invocation API). The object code size of code generators has been stripped down.