Home

Jikes RVM (Research Virtual Machine) provides a flexible open testbed to prototype virtual machine technologies and experiment with a large variety of design alternatives. The system is licensed under an OSI approved license. Jikes RVM runs on many platforms and advances the state-of-the-art of virtual machine technologies for dynamic compilation, adaptive optimization, garbage collection, thread scheduling, and synchronization. A distinguishing characteristic of Jikes RVM is that it is implemented in the Java™ programming language and is self-hosted i.e., its Java code runs on itself without requiring a second virtual machine. Most other virtual machines for the Java platform are written in native code (typically, C or C++). A Java implementation provides ease of portability, and a seamless integration of virtual machine and application resources such as objects, threads, and operating-system interfaces.

Many researchers have found that Jikes RVM provides a useful vehicle for research on the frontiers of virtual machine technologies (over 188 publications and 36 dissertations), as well as teaching courses. If you are looking for where to start reading about the Jikes RVM we have a recommended reading page.

News

Jikes RVM 3.1.1 Released

Jikes RVM version 3.1.1 has been released and is available for download at http://downloads.sourceforge.net/jikesrvm/jikesrvm-3.1.1.tar.bz2

Details are given below, or are browsable online in our JIRA instance at http://jira.codehaus.org/browse/RVM/fixforversion/14900.

New Feature

  • RVM-839 - Support for Reference Types in the MMTk Harness
  • RVM-841 - Make it possible to query the compiler to direct optimization
  • RVM-845 - Primitive write barrier support

Improvement

  • RVM-846 - MMTk Harness: Provide command-line option for watching addresses
  • RVM-848 - Update bootimage writter with known static fields for Harmony classlib
  • RVM-861 - Refactor bulkCopy optimisations for RVMArray arraycopy's

Bug

  • RVM-184 - MarkCompactLocal.compact():80 assertion failure
  • RVM-604 - Require two different host JVMs to successfully build on Linux/PowerPC
  • RVM-639 - Spec JVM 98 javac failing with Harmony
  • RVM-693 - Regression in TestSerialization with Harmony
  • RVM-827 - Crash in GC while running Eclipse IDE
  • RVM-831 - Incomplete implementation of GetFieldID and GetStaticFieldID
  • RVM-832 - Mature space mutator allocator reset before semi-space flip
  • RVM-833 - GC failures with ia32 BaseBase compiler, ExtremeAssertions and -X:gc:verbose=1
  • RVM-834 - Assertion failure in ExtremeAssertionsBaseBaseSemiSpace
  • RVM-836 - Static initialization loop in Generational collectors
  • RVM-838 - MMTk Harness 'Spawn' script fails with an NPE on multiprocessors
  • RVM-840 - MMTk Harness fails on Poisoned heap collector
  • RVM-854 - Failed to find a value to spill when
  • RVM-856 - RVM fails to build under OS X 10.6
  • RVM-860 - ExtremeAssertionsOptAdaptive compiler failure for jvm98 _227_mtrt on ppc32
  • RVM-862 - 2 static fields using an identic slot
  • RVM-863 - BumpPointer.scanRegion can cause a page fault
  • RVM-864 - Build failure using IBM Java 6 SDK as host JVM on linux-ia32
  • RVM-879 - Mark Compact does not work with Native Threads
  • RVM-887 - RVM failure at startup when using -Xbootclasspath (Trying to load a class too early in the booting process)
  • RVM-889 - JSR166 tck fails EntryTest, PriorityQueueTest and PriorityBlockingQueueTest
  • RVM-890 - MarkCompact broken by new threading model
  • RVM-894 - MMTk Harness doesn't allow Log.writeln in constructors
Labels: frontpage
Google Summer of Code students, 2010

Three students will be working on Jikes RVM as part of the 2010 Google Summer of Code. They are:

  1. Laurence Hellyer, University of Kent, On-the-fly copying GC. Mentors: Eliot Moss, Daniel Frampton and Richard Jones.
  1. Michael Gendelman, Tel Aviv University, Implementing the Compressor. Mentors: Steve Blackburn and Richard Jones
  1. Ashwani Rao, University of Delaware, Improved Register Allocator for x86 and x86_64. Mentors: Tony Hosking, John Cavazos and Eliot Moss.

Laurence, Michael, Ashwani: welcome to the team. We are all looking forward to working with you and seeing the end product of your efforts.

The JikesRVM GSoC page is here. The GSoC timeline is here.

Labels: frontpage
Jikes RVM Project Changes

Dear Jikes RVM Researchers,

We are writing to introduce two new members to the Jikes RVM Steering Committee, announce some changes to the project organization, and highlight our performance results, which are now competitive with the products on the DaCapo Benchmarks.

Steering Committee

We have invited Richard Jones (U. Kent) and Kathryn McKinley (U. Texas) to join us on the Steering Committee. Both Kathryn and Richard have accepted our invitation. Kathryn and Richard been involved with the project since its inception. They both have a long track record of engagement with the project; directly and through the activities of their respective research groups. Their addition to the committee reflects our view that our stakeholders are researchers and that our mission is enabling research.

Project Organization

We have also made a minor change to the project structure, replacing the term "Core Team" with "Jikes RVM Team". We also extend team membership to anyone who has demonstrated a substantial commitment to the project through concrete contributions. Such contributions are not limited to code, but may include substantive contributions to the health of the project in any form. These changes are intended to emphasize the importance of researchers as the primary stakeholders in this project, and to make it explicit that the importance of a member's input is not measured in terms of the quantity or quality of changes to the code base.

We will also now encourage team members to follow a "12 month rule", whereby they are asked to reassess their team membership after a period of 12 months of inactivity

Performance

Due to the efforts of the Jikes RVM Team in adding features (such as native threads, Immix GC, and biased locking), and tuning the adaptive system, we have recently achieved really excellent performance results. While Jikes RVM still lags behind the products on the SPEC benchmarks (the products are highly tuned for SPEC), Jikes RVM attains within 5% of their performance on the DaCapo Benchmarks. Results are available here: http://jikesrvm.anu.edu.au/performance/2009-07/

These performance gains make Jikes RVM an even more appealing research platform and offer more evidence that Java can be an effective system implementation language.

We hope that these changes will bring new life to the project and re-affirm the project's original objectives of supporting the research community. Kathryn, Richard and the rest of the Jikes RVM Steering Committee welcome comments, suggestions and feedback from our community.

David Grove

Steve Blackburn

Mike Hind

Labels: frontpage