Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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

General project status

Jikes RVM is currently the most popular platform for virtual machine research. It has received a SIGPLAN Software Award.

However, the Jikes RVM is not state-of-the-art in some areas. In particular, Jikes RVM currently does not provide 64-bit Intel Support. It also does not support the OpenJDK class libraries. The project has received community contributions to improve those shortcomings but the code is not yet in the mainline.

Memory management research is a particular strength of the Jikes RVM. The Memory Management Toolkit (MMtk) provides a well-rounded selection of garbage collectors and the compiler replay feature enables researchers to control mutator variation. In contrast to this, the compilers are currently a weak spot in the Jikes RVM. For example, the Static Single Assignment (SSA) form in the compilers is currently disabled because of bugs.

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

Near-term goals

  • Add support for the OpenJDK class libraries
  • Add Intel 64-bit support

Preliminary long-term goals (still need further discussion)

  • Write unit tests for all classes
  • add support for relevant new platforms (ARM?)

Detailed project status

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 (the default collector) is very stable
  • The other collectors are reasonably stable but have some bugs (see regression tests)
  • Notable omissions in the collector choices include Baker-style collectors, the Compressor and on-the-fly collectors

Runtime

  • 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 implemented

Adaptive Optimization System

  • the AOS provides a good level of control via compiler replay
  • 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

Compiler

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

Infrastructure

  • Need access to PowerPC machines for all team members
  • Regular regression tests with Cattrack
  • Currently no infrastructure for CI
  • Currently no code review tools in use
  • Some unit tests (via JUnit) exist but most classes don't have unit tests
  • No labels