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
To celebrate the double milestones of this being the 10th year of Jikes RVM development and the release of Jikes RVM 3, we've decided to create t-shirts to reward Jikes RVM contributors. Whilst meta-circular virtual machine development in Java may result in beautiful code it might not be a true indicator of other artistic ability. We've therefore decided to have a competition for people to put forward their design of what should be on our t-shirts. We have cash to ensure the production of the t-shirts from the mentor payments of this years Jikes RVM Google Summer-of-Code (thanks Google and the mentors!). The deadline for submissions to the competition is January 1st 2009. Remember to keep contributing so that you will be inline to receive free Jikes RVM booty! For more information on the competition please use the jikesrvm-researchers mailing list.
Jikes RVM version 3.0.1 has been released and is available for download at http://downloads.sourceforge.net/jikesrvm/jikesrvm-3.0.1.tar.bz2
The detailed release notes for major changes since 3.0.0 can be found below or in JIRA (http://jira.codehaus.org/browse/RVM/fixforversion/14378);
** New Feature
* [RVM-507] - Initial prototype of TuningFork trace generation in Jikes RVM
* [RVM-515] - Make boot image writer traversal of object graph configurable
* [RVM-517] - Reflection optimization
* [RVM-528] - Support for eclipse-project with Harmony class libraries
* [RVM-634] - Add RuntimePure annotation to indicate when a Pure annotation should only be respected at runtime
* [RVM-673] - Implement Inline.When.AssertionsDisabled pragma
** Improvement
* [RVM-291] - Immortal objects with address based hashing should set their hashed bit during boot image writing
* [RVM-443] - Avoid back references in java.lang.reflect VMXXX classes
* [RVM-476] - Make lock allocation thread-model-agnostic.
* [RVM-627] - Use java.nio for writing boot image
* [RVM-632] - Space improvements of RVMClass.objectCache
* [RVM-633] - Avoid the use of Reflection to invoke Object.finalize()
* [RVM-644] - Reduce copying of char[] in java.lang.reflect.Proxy
* [RVM-650] - Ask users to submit bug reports on Jikes RVM crashes
** Bug
* [RVM-172] - Failing DaCapo benchmarks on PPC 32 OS X
* [RVM-288] - Assertion failure in inline oracle
* [RVM-318] - java.util.Scanner is unimplemented
* [RVM-346] - SPECjvm98: Invalid runs should not be SUCCESSes
* [RVM-410] - Problem with changes to stack walk
* [RVM-440] - Poisoned tests failing in finalizer thread
* [RVM-471] - Stack frame alignment broken for Intel on OS/X
* [RVM-605] - Possible fix for FreeListPageResource.releasePages()
* [RVM-606] - Problems with OSR guarded inlining of invokeinterface
* [RVM-614] - BaseBasePoisoned build segfaults during VM bootup on pcc64-linux
* [RVM-617] - DaCapo bloat fails with Apache Harmony class library
* [RVM-619] - DaCapo eclipse fails with Apache Harmony class library
* [RVM-621] - DaCapo xalan fails with Apache Harmony class library
* [RVM-623] - Intel 16bit operations with immediate operands in some cases generate 32bit immediate operands rather than 16bit
* [RVM-631] - Bug in new Finalization code
* [RVM-636] - Crash in reflection during JSR-166 TCK
* [RVM-643] - Invalid InstructionFormat usage in Simplifier, but real bug is that IR is semantically malformed
* [RVM-645] - Bug in LiveAnalysis related to modeling of dataflow through Exception edges in the FCFG
* [RVM-646] - Immix defrag broken
* [RVM-652] - build failure on IA32 OS X 10.5 (Leopard)
** Tasks and Sub-task
* [RVM-651] - Add support to Intel assembler for REX prefix byte
* [RVM-667] - Modify the implementation of table switch
* [RVM-669] - Build/boot image runner support for x86 64
* [RVM-671] - Fix spill location size estimates
I'm pleased to announce the Jikes RVM has been accepted into the Google Summer of Code for the 2nd year! We have a range of mentors bringing together experience from the Jikes RVM and related projects. Please have a look at our project proposals and our application template. As with last year, if you think there is an interesting project that should be listed but hasn't been then please feel free to propose it. To better integrate with our bug and feature tracking system we would much prefer if such proposals could also be added in to our issue tracker. We look forward to interest from prospective students! Don't forget the deadline for applications is March 31st.