This is a major feature enhancement and bug-fix release. Here is a short list of the most important changes:
- Initial support to use OpenJDK as Java runtime library.
- Fixed memory leak in Boehm-GC.
- Boehm-GC updated to version 7.1.
- Removed libltdl dependency.
- Renamed --with-classpath configure options to --with-java-runtime-library.
- Renamed --with-jre-layout to --enable-layout.
- Replaced --with-classpath-includedir with --with-jni_h and --with-jni_md_h to better support OpenJDK/IcedTea builds.
- Use 8-byte stack-slots on all architectures.
- Faster C-to-Java calls.
- Removed genoffsets, cross-compilation is now much easier.
- Implemented Class.isAnonymousClass(), isLocalClass() and isMemberClass() for GNU Classpath.
- Annotation support.
- Assertion support.
- Linenumber table code rewritten.
- Exception table code rewritten.
The major feature enhancement of this release is the OpenJDK support. CACAO's libjvm.so can now be used as drop-in replacement for Sun's HotSpot libjvm.so in OpenJDK. There is also support in IcedTea available to use CACAO as JVM (--with-cacao option).
CACAO uses GNU Classpath as default Java runtime library and supports upstream releases or CVS snapshots. This release requires GNU Classpath 0.96 or higher to build and was tested against GNU Classpath 0.97.2 on a number of various platforms.
CACAO's ./configure has some options for Java runtime configuration, namely:
--with-java-runtime-library=<type> --with-java-runtime-library-prefix=<dir> --with-java-runtime-library-classes=<path> --with-java-runtime-library-libdir=<dir>
For detailed information, use ./configure --help.
Currently supported JIT compiler architectures are:
- m68k (broken)
Information about working applications and some screenshots can be found on http://www.cacaojvm.org/.
CACAO 0.99 can be downloaded from http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-0.99/