Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: linked "How to help"; minor updates

NOTE: This page is a work-in-progress!

(incomplete) TODO list

  • add more positive points (e.g. what's already implemented)
  • discuss the page design
  • define relationship to related pages (e.g. How to help)
  • insert more links
  • review
  • link this page from the sidebar once it's done

...

The Jikes RVM is not state-of-the-art in some areas. In particular, Jikes RVM currently does not provide 64-bit Intel Support. Another big limitation is the lack of support for the OpenJDK class library. The project has received community contributions to improve those shortcomings but the code is not yet in the mainline. The Jikes RVM would also profit from efforts directed to stability improvements and bugfixes. For example, Jikes RVM currently cannot run all of the Dacapo 9.12 benchmarks.

...

Note: The information on this page refers to the status in the code repository and not to the status in the current release.

Note: If you want to help, please see How to Help or inquire via the mailing lists.

Near-term goals

  • Add support for the OpenJDK class libraries
  • Add Intel 64-bit support
  • Get DaCapo 9.12 running on the Jikes RVM

...

  • Improve stability
  • Improve compliance with JVM spec
  • Write unit tests for all classes
  • Improve and extend test suites
  • add support for relevant new platforms (ARM?)

Detailed project status

This section provides more detailed project status information for the components. If you think an important point is missing here, please contact us via the mailing lists.

Community

  • Jikes RVM has a large community in its intended audience (researchers)
  • Core team consists wholly of volunteers: no paid developers
  • Jikes RVM is currently not packaged for any major distribution

Memory Management

  • GenImmix Generational Immix (the default collector) is very stable
  • The other collectors are reasonably stable but have some bugs (see as shown by the regression tests)
  • Notable omissions in the collector choices include Baker-style collectors, the Compressor and on-the-fly collectors

Runtime

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

Adaptive Optimization System

  • the The AOS provides a good level of control via compiler replay
  • the The AOS provides clear extension points
  • Jikes RVM currently uses only one compilation thread at runtime and the current AOS model does not support multiple compilation threads
  • the The provided AOS models do not support Feedback-Directed Optimizations

...

Compilers

  • SSA form is disabled. Scalar SSA form may be fixable; Heap SSA form is probably consider too broken
  • Many optimizations are disabled because they rely on SSA or are considered too buggy
  • No support for polyhedral model
  • Some standard optimizations are missing, e.g. Global Array Bound check elimination is unimplemented
  • Java Memory Model (JMM) is not correctly implemented

Infrastructure

  • Need access to PowerPC machines for all team members
  • Regression tests are run regulary. The results are displayed with Cattrack. Cattrack needs to be updated to the latest versin of Ruby on Rails.Currently , 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.
  • 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