This is the first release in quite some time, so the following list of the most important changes is necessarily incomplete:
- Large parts rewritten in C++.
- No more cacaoh, simplifying cross-compilation.
- --enable-handles switch for making native code ready for moving GC (currently broken).
- park/unpark support.
- Simplified signal handling — reduced code duplication.
- Stack unwinding mostly rewritten in C — reduced assembler code.
- Added support for OpenSolaris.
- Experimental python mode for easier inspection of internal compiler structures.
- Fixed various array-related bugs, including PR116, PR119.
- Fixed PR120 (races in thread code).
- Correct placement of memory barriers on x86 and x86-64.
- Fixed code generation bugs on Alpha, ARM, MIPS and PPC64.
- Fixed support for armv7 hard-float.
- Supports ARM Thumb interworking.
- Partially unified code generation.
- Numerous other improvements and fixes.
In the traditional configuration, CACAO uses GNU Classpath as its default Java runtime library and supports upstream releases or the current git master branch. This release is tested against GNU Classpath 0.99. Alternatively, the preferred configuration is to build against OpenJDK 6. See INSTALL.CACAO for details.
Currently supported JIT compiler architectures are:
- arm (armv5l, armv7l)
Currently orphaned architectures, on which earlier releases of CACAO were known to work, are:
- mips (mipsel, mips64)
Building against OpenJDK on PowerPC platforms is known to be a bit challenging at the time of this release.
CACAO 1.6.0 can be downloaded from http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-1.6.0/