Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: add page size issue; change wording about GenImmix stability


  • Generational Immix (the default collector) is very stable
  • The other collectors are reasonably stable but have some bugs (as shown by the regression tests)
  • The MarkCompact collector is currently too buggy to use
  • Notable omissions in the collector choices include Baker-style collectors, the Compressor and on-the-fly collectors. Note: There is an implementation of the Sapphire garbage collector for Jikes RVM but as far as we know there's currently nobody working on getting the code into the mainline.
  • MMTk currently doesn't deal correctly with page sizes


  • The runtime is reasonably modular but it doesn't make very good use of interfaces
  • Jikes RVM currently does not follow the JVM specification
  • Several features normally found in commercial JVMs are not implemented: strictfp, JMX and JVMTI are currently unsupported


  • SSA form is disabled. Scalar SSA form may be fixable; Heap SSA form is considered too broken
  • Many optimizations are disabled because they rely on SSA or are considered too buggy
  • Some standard optimizations are missing, e.g. Global Array Bound check elimination
  • Java Memory Model (JMM) is not correctly implemented
  • Bootimage compilation is single-threaded by default because it is too unrealiable with multiple threads


  • Regression tests are run regulary . The results are displayed with Cattrack, a Ruby-on-Rails application.There's currently no infrastructure for CI: Core team members need to ensure they run the pre-commit tests themselves.and reports are sent to the regressions mailing list
  • Core team members have access to a Jenkins server to view test results in detail
  • More regression machines would be useful, in particular PowerPC machines that can be accessed by all team members
  • Currently no code review tools in use
  • Some unit tests (via JUnit) exist but most classes don't have unit tests