Jikes RVM 2.3.3 is now available from the developerworks web site (http://www-124.ibm.com/developerworks/oss/jikesrvm/).

The release notes are appended below.


-*-outline-*-
These are release notes for Jikes RVM release 2.3.3.

*Sections of this document:
*Highlights
*Other Notes
*Bug Fixes

*Highlights of this release include:

**GNU Classpath 0.10
Jikes RVM now uses GNU Classpath version 0.10 on all platforms.  Jikes
RVM 2.3.3 should work with classpath version 0.08, 0.09 or 0.10.
However, we recommend that users switch to classpath 0.10, to get the
new features and because we run our nightly regression tests against
Classpath 0.10.

(If hand-building GNU Classpath 0.10 or 0.09 on AIX, follow the
directions in rvm/doc/classpath-0.10-on-AIX.txt)

**GCspy garbage collection visualization tool

Jikes RVM now includes support for the GCspy tool for visualizing the
garbage collector's behaviour.  Many thanks to Richard Jones of the
University of Kent for this contribution.  (This item should have been
included in the 2.3.2 release notes, but was inadvertently omitted.)
Documentation is in the user's guide.

**PowerPC/Linux/64 support with baseline compiler
Jikes RVM now runs on 64-bit PowerPC Linux to the same extent as it
does on 64-bit PowerPC AIX.  All regression tests pass with the
baseline compiler.  Porting of the opt compiler to 64 bit PowerPC is
an open work item; contributions welcome!

**Startup time slashed
The startup time for Jikes RVM to run a simple "Hello World" program
on Linux/x86 went down by a factor of 8.  This is because we now use
mmap()'s copy-on-write feature, instead of reading all 30 MB of boot
image into an area mmap()'d with MAP_ANONYMOUS.
(There is a long comment in src/tools/bootImageRunner/IA32/libvm.C
describing this; search for the preprocessor condition #ifdef
MMAP_COPY_ON_WRITE).  If this creates problems, disable them by
#undefining MMAP_COPY_ON_WRITE in libvm.C.

This change should be ported to PowerPC Linux by someone who runs that
platform.  (Please remove this paragraph if you do so.)

**Jikes RVM installable as a production runtime environment
You can install Jikes RVM on your system as a production runtime
environment for Java.  Once you've built Jikes RVM, cd to
src/tools/install and read the file README to find out how to
install a Jikes RVM executable as /usr/bin/rvm (or in some other
location of your choice).


**JNI 1.2 and 1.4 implemented
We have implemented all of the missing functions from JNI 1.2 and 1.4.
There are still aspects of the JNI implementation that can be
improved; volunteers welcome.

**MMTk
Improvements to write barrier implementation, cleanup to mechanisms
for specifying alignment constraints in allocation code, and
refactoring of reference processing (java.lang.ref.*).

*Other notes:

**Compiler DNA updated -- x86 adaptive system now uses Opt level O2 sometimes.
The compiler DNA (the precomputed cost & benefit of using various
compiler/optimization levels) has been updated.  Due to improvements
over the past 10 months, the optimizing compiler's level 2 is now
better than level 1, on average, on both platforms.  (Previously,
this was not the case on IA32.)  The result is that the adaptive
system may now choose to use Opt level 2 on some methods because
its model can now determine that it will sometimes be beneficial
to do so.

*Bug Fixes:
** Calls to the JNI function pair
GetPrimitiveArrayCritical/ReleasePrimitiveArrayCritical can now be nested.
** Fixed a bug in the GC map iterator code (both platforms) that was returning
references multiple times in dynamic linking frames.
** Fixed a bug in the GC map iterator code on PPC that was failing to return
spilled parameters in dynamic linking frames.