OpenJIT
Release Notes
Changes from 1.1.15
- BUGFIX: Backup paths eventually cause SIGSEGV on X86. Those paths are only used when dynamic linker doesn't link symbols refered from libOpenJIT.so to corresponding symbols within JVM.
- BUGFIX: Incorrect type definition that lead GCC's optimization problem.
- Integrate experimental support for jar version of OpenJIT package for JDK 1.2 or later. This allows user not to spread indivisual classfiles of OpenJIT's self under JAVA_HOME/jre/classes but to use one archive `OpenJIT.jar'.
Changes from 1.1.14
- BUGFIX: Allocating multi-dimensional arrays causes SIGSEV in the latest version of JDK 1.1.8.
- ...
Changes from 1.1.13
- BUGFIX: No IllecalAccessError had occured when accessing final variables. This made it possible to rewrite final variables unsafely.
- REFINE: Change the default value of max_stack_frames (400 -> 43). This value depends on platforms, and several JDK 1.1.8 platforms didn't work with the old default value (400). We now chose the default value to minimize the warm-up time of OpenJIT. The best value for JDK 1.2.2 (both of Blackdown and Sun) is "41" and that for JDK 1.1.8 is "43".
- BUGFIX: In a final block, a branch operation to the outside of the block causes infinite recursive calls at the Control Flow Analysis phase.
- BUGFIX: Change the native codes for "jsr" and "ret". The older versions may cause memory leaks for native stack.
Changes from 1.1.12
- NEW: Support Blackdown Java 2 SDK Version 1.2.2 FCS for Linux.
- The Blackdown JVM causes SIGSEGV interruption with the previous versions of OpenJIT.
- The Blackdown VM passes `ucontext' to SignalHandler as an argument. The current version uses this argument.
- REFINE: The current version checks `stack overflow' more strictly when calling JNIs. The previous versions checked whether the stack was left 8kbytes or not. Now OpenJIT checks whether it is left the exact stack size, that each JNI calls needs, or not.
Changes from 1.1.11
- BUGFIX: When the block range specified by an exception table is not aligned with the instruction boundary, the previous verison of OpenJIT cannot compile because of NullPointerException.
- REFINE: Avoid crashes around StackOverFlowError, as thoroughly as possible.
- REFINE: Modify configure script so as to compile by native-thread JVM.
Changes from 1.1.10
- NEW: OpenJIT now passed JCK-runtime-vm-122
- BUGFIX: Cancel initialization of the classes, whose instances catch exceptions.
- NEW: Implement jni->Unregisted(ClassClass *).
- TYPO: implet -> implement
- REFINE: Check StackOverFlowException for x86.
- NEW: Add compile.omit.stackOverFlowCheck option.
Changes from 1.1.9
- NEW: OpenJIT now passed JCK 1.2.
- BUGFIX: When a exception arises, OpenJIT then tries to resolve its execption class. In consequence, it may cause an extra exception. OpenJIT now can correctly handle such exceptions.
- BUGFIX: OpenJIT can handle exceptions in monitorEnter() and monitorExit(), correctly.
- BUGFIX: OpenJIT can also handle exceptions in invokeinterface (trying to execute abstract methods)
- NEW: Support JDK 1.3 (tentative support, it is not well-tested).
Changes from 1.1.8
- NEW: The years of the copyright are changed (add 2000).
- BUGFIX: Fix floating operation (Casting NaN value to a long variable, its value become wrong).
- REFINE: Add several methods for debugging.
Changes from 1.1.7
- NEW: OpenJIT modules can be downloaded from network at JIT compile
time. Once you put OpenJIT classfiles into a Web accessible directory,
you can use this feature in the following way:
java -Dcompile.URL=http://www.openjit.org/dowload
- NEW: OpenJIT now can restrict the depth of self-compilation proccess. This feature is mandatory to support network downloadable OpenJIT modules.
- NEW: You can control compilation process from Java program, by using Compiler.disable(), Compiler.enable().
- NEW: Support JDK 1.2.2rc* (blackdown, sun)
- REFINE: OpenJIT can be built, by using not only *GNU make* but also *standard make*.
- REFINE: Just type `make install' to plug-in into JDK automatically.
- BUGFIX: fix floating operation in X86
- BUGFIX: fix parser for invokeinterface_quick.
openjit@is.titech.ac.jp