Jikes RVM 2.9.3 Released

We're very proud to announce that Jikes RVM version 2.9.3 is now available for download! It's been a little bit longer than usual since the last release and there's been quite a bit of activity on the project and improvements to the system. The appended release notes capture many of the highlights; for more details see the hyperlinked version in JIRA (http://jira.codehaus.org/browse/RVM/fixforversion/13726).

The release is available at http://downloads.sourceforge.net/jikesrvm/jikesrvm-2.9.3.tar.bz2.

** Bug

* [RVM-196] - VM_Processor not assignable with VM_GreenScheduler

* [RVM-314] - Support for Java 1.4 assertions

* [RVM-315] - java.lang.Method.invoke changes the parameters

* [RVM-316] - A Null pointer for the UTF8CHARSET in java.util.zip.ZipFile$PartialInputStream

* [RVM-326] - Failing basic tests don't signal failure

* [RVM-330] - Thread.sleep() does not handle interrupts correctly

* [RVM-339] - Image bloat (code +25% & data +5%)

* [RVM-340] - Annotations don't handle arrays of primitive types correctly

* [RVM-342] - NPE with advice files

* [RVM-347] - PPC 64 regressions and Intel stress regressions since the introduction of read barriers

* [RVM-351] - Javac regression

* [RVM-352] - Running many iterations of _200_check fails floating point remainder test

* [RVM-353] - Production Opt 0 builds broken

* [RVM-355] - Complete SPEC JVM with 20 iterations dies in GC

* [RVM-357] - Fatal error when synchronising on null objects

* [RVM-365] - PPC (AIX) Stack Scanning Appears Broken

* [RVM-368] - Compiler confusion over equal but non-identical objects

* [RVM-374] - Static field allocation is non-deterministic

* [RVM-380] - We create a lot (15909) optimization plan atomic elements using 572724bytes in the boot image

* [RVM-383] - Branch likely and unlikely prefixes show up as LOCK prefixes in x86 disassembler output

* [RVM-394] - Tune inlining of arraycopy

* [RVM-412] - Latent branch optimization bug when maximizing blocks

* [RVM-424] - Multianewarray confusion in opt compiler

* [RVM-439] - OSR triggering code misuses suspend/resume

* [RVM-447] - Inline size estimation reduction factor calculation over rates precise information causing bloat and slow down

* [RVM-452] - Off-by-one error in "VMField.checkReadAccess" and "VM.checkWriteAccess"

* [RVM-456] - Clean build broken

* [RVM-464] - Opt compiler ldc_w for class literal broken

* [RVM-466] - Four tests in test run "tiny" fail when compiled with -X:aos:initial_compiler=opt -X:aos:enable_recompilation=false

* [RVM-467] - BURS performing illegal reordering to before PEI

* [RVM-468] - Instanceof test differs in opt compiler from baseline for instanceof/checkcast of magic[][]

* [RVM-478] - Redesign AIX native method Linkage conventions to protect CMID field from being smashed by native code saved CR

** Improvement

* [RVM-81] - Annotations in java.lang classes

* [RVM-195] - Enable inlining of @Pure methods

* [RVM-274] - Remove OPT_ prefix from all opt compiler classes

* [RVM-276] - opt compiler package structure

* [RVM-304] - Improve performance of chacter encoder when encoding to and from arrays

* [RVM-305] - Add final annotations to java.io.OutputStreamWriter

* [RVM-308] - Greater use of StringBuilder rather than StringBuffer

* [RVM-309] - Greater use of "<Number>.valueOf" rather than "new <Number>"

* [RVM-310] - Class library fields that could be final aren't final

* [RVM-311] - String toUpperCase and toLowerCase perform a String.equals to see if the Locale is Turkey per invocation

* [RVM-322] - Intel assembler register naming improvement required

* [RVM-331] - Implement support for MMX registers

* [RVM-343] - Support for hardware SQRT instruction

* [RVM-344] - Simplifier rule for square root operator

* [RVM-378] - Avoid replicating field and method vectors

* [RVM-379] - Don't replicate OSR_EncodedOSRMaps

* [RVM-381] - Upgrade to Classpath 0.97

* [RVM-385] - Refactor reflection to use VM interface

* [RVM-387] - Baseline compiler emits RegDisp instructions when the Disp is 0

* [RVM-390] - VM_Statics/JTOC space saving has cost us single iteration fop performance

* [RVM-391] - Assign CPU # to each VM_Processor to have more predictable performance results.

* [RVM-392] - Improvements to ZipEntry

* [RVM-395] - Local common sub-expression elimination of Pure method calls

* [RVM-408] - Simple elimination of stack traces

* [RVM-417] - Switch performance runs to using a profiled image

* [RVM-421] - Pre-allocate 1 set of exception registers for athrow

* [RVM-422] - Update to latest Classpath j.u.c.CopyOnWriteArrayList

* [RVM-431] - Fix processor JNI entry/collector rendezvous race

* [RVM-433] - Increase final fields in java.nio

* [RVM-435] - Don't allocate memory when converting C buffers to Strings or Classes

* [RVM-437] - Integer.toString doesn't keep cache of common values

* [RVM-451] - Structure of code in GNU Classpath java.util.Vector and java.util.Arraylist interacts poorly with inlining

** New Feature

* [RVM-210] - Add Image sizes tracking to Regression report and mailout

* [RVM-319] - Create X10 test harness

* [RVM-406] - Add Immix garbage collector

* [RVM-441] - Sticky mark bits collector

* [RVM-457] - Immix Garbage Collectors

* [RVM-266] - Provide preliminary support for a non-copying unsynchronised StringBuffer implementation

** Task and Sub-task

* [RVM-425] - Implement 2d array helper for PPC baseline

* [RVM-224] - Push OSR-specific fields in VM_NormalMethod to subclass/side data structure

* [RVM-450] - Prevent compilation at max opt level before some dynamic call graph information has been gathered

* [RVM-453] - Testing framework missing failures in basic tests that use diff for sanity.
Posted by Dave Grove 2008-05-11