Added by Xircles System User, last edited by Ian Rogers on May 30, 2008  (view change)

Labels

 
(None)

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

Last changed Aug 07, 2008 11:04 by Ian Rogers
Labels: frontpage

We're very happy to announce the release of Jikes RVM version 3.0.0.

The road towards 3.0 began just about two years ago and a large number of people, both on the core team and from our user community at large, have contributed to making it a success. Thank You!

The release is available for download at http://downloads.sourceforge.net/jikesrvm/jikesrvm-3.0.0.tar.bz2

The detailed release notes for major changes since 2.9.3 can be found below or in JIRA (http://jira.codehaus.org/browse/RVM/fixforversion/13530),
but we'd like to highlight some of the larger themes that went into the 3.0 release (many of which have already been released in the 2.9.x releases we've made along the way).
** Normalization of source code and build process
*** Complete rewrite of the build/test systems to use ant.
*** Jikes RVM can be developed in Eclipse using the JDT
*** Extensive restructuring of package structure
*** Removal of VM_ and OPT_ prefixes from all source files.
** Increased system stability and performance
*** A new continuous testing system (http://jikesrvm.anu.edu.au/cattrack)
*** Concerted stability and performance drives
** Java 5 support
*** Support for Java 5 language features
*** Use of Java 5 language features throughout the code base

Detailed list (89 issues closed in the 3 months since 2.9.3)

** New Feature

  • [RVM-358] - Initial support for Apache Harmony class library
  • [RVM-480] - Spec JVM 2008 regression test
  • [RVM-534] - MMTk Test harness
  • [RVM-540] - Implement java.lang.Compiler
  • [RVM-591] - Support for jdocs.com javadoc
  • [RVM-592] - Checks on creating ObjectReferences

** Improvement

  • [RVM-72] - NonMoving annotations for classes instances of which should be allocated to the immortal heap
  • [RVM-273] - Remove VM_ prefix from all VM classes
  • [RVM-275] - Remove VMOpt prefix from opt compiler classes that go into bootimage
  • [RVM-282] - Make dumpVirtualMachine more defensive
  • [RVM-329] - Specialize IA32 assembler for lister vs. non-lister
  • [RVM-333] - Annotations used for VM Pragmas (NoInline, Uninterruptible, etc) probably should not be as closed linked to classloaders
  • [RVM-445] - Clean up handling of JTOC
  • [RVM-449] - Handle instanceof and checkcast in ShortArray scalar replacer
  • [RVM-477] - Gather new compiler DNA
  • [RVM-501] - BuildWithAllClasses is (practically) unused
  • [RVM-502] - Dead code elimination of pure calls
  • [RVM-505] - Eliminate calls to VM_Class.getClass..FromStackFrame when stack frame is determinable
  • [RVM-508] - Have hash map where entries are completely immutable saving references from boot image root set
  • [RVM-510] - Create top level common directory to make it easier to split out and share useful components from rvm and MMTk
  • [RVM-511] - Split out MMTk option processing support
  • [RVM-512] - Experiment with freezing bucket array in VM_HashMap/VM_HashSet
  • [RVM-513] - Large arrays in boot image cause memory leak
  • [RVM-525] - Upgrade to GNU classpath 0.97.2
  • [RVM-537] - Implement inline mustImplementInterface sequence for invokeinterface in baseline compilers
  • [RVM-538] - Inline checkcast/instanceof sequences in baseline compiler for simple cases
  • [RVM-572] - Remove OSR_ and BC_ prefixes from OnStackReplacement code
  • [RVM-593] - Extra checks on references being traced in rvm
  • [RVM-603] - Improve intel baseline prologue/epilogue/call by use push/pop instead of mov [sp]
  • [RVM-594] - Naming of MM_Interface

** Bug

  • [RVM-46] - CaffieneMark failures on AIX/PPC
  • [RVM-47] - DaCapo regressions on AIX/PPC
  • [RVM-58] - Linker errors under AIX/ppc
  • [RVM-105] - sysNetSelect doesnt seem to be avoiding the syswrap select
  • [RVM-187] - VM_OptGenericMapIterator: findGCMapIndex failed
  • [RVM-221] - Specialized scanning broken on ppc64-aix?
  • [RVM-234] - Annotation issues: not implemented via proxy classes, support for serialization
  • [RVM-269] - unresolved invokeinterface on <null> should force classloading before rasiing NPE
  • [RVM-271] - Timeouts for stress are not correct
  • [RVM-303] - Cannot modify accessible final instance fields
  • [RVM-325] - Spec JVM 98 jack failing with OOMs
  • [RVM-327] - Performance degredation in IA32 assembler
  • [RVM-332] - Eclipse 3.2 fails to run on the RVM
  • [RVM-369] - PPC32-OSX - Crash in GC when a stack contains native frames
  • [RVM-372] - Integer overflow in sysNanoTime
  • [RVM-423] - Fop performance strangeness
  • [RVM-442] - All poisoned tests fail PPC 32
  • [RVM-454] - The sub-test TestAnnotationInheritance of the basic tests is excluded until it can be fixed
  • [RVM-458] - Poisoned bit test highlights JNI problem
  • [RVM-469] - Fix IA32 assembler to use Address instead of Offset for absolute addressing
  • [RVM-482] - Crash when running Production_Opt0_perf portion of compiler-dna test run
  • [RVM-483] - Conditionalize fsqrt generation on PowerPC
  • [RVM-492] - Dumping empty stack kills VM
  • [RVM-493] - VM_Annotation.readValue doesn't use the correct classloader
  • [RVM-494] - Conversion between type descriptors, class names, and file names in VM_Atom behaves inconsistently
  • [RVM-495] - Crash during first major GC on PPC64 tests when running with -X:processors=2
  • [RVM-497] - New scan boot image assertion failing poisoned tests
  • [RVM-499] - Overflowing JTOC during DaCapo eclipse run on PPC64 AIX
  • [RVM-500] - No such field error: TreeMap$SubMap.minKey
  • [RVM-504] - Increase time out on DaCapo eclipse for rvmppclnx64
  • [RVM-506] - The field last in VM_HashMap and VM_HashSet is only ever set to null
  • [RVM-514] - Pure on mathMagic breaks dacapo sunflow
  • [RVM-521] - Freshly checked out r14346 fails to build with an uninterruptible violation
  • [RVM-526] - GNU Classpath build: paths too long in check_jni.sh
  • [RVM-527] - Harmony doesn't build 32bit libraries as necessary for x86_64 build
  • [RVM-529] - Implement reflection API for Harmony
  • [RVM-531] - Boot image stack size too small
  • [RVM-541] - gc stress failures
  • [RVM-542] - Incorrect encoding of inner class native method names
  • [RVM-543] - Invoking JNI_OnLoad of unrelated libraries when loading a library with no JNI_OnLoad
  • [RVM-544] - Class argument in NewObject ignored
  • [RVM-547] - Building the boot image with the opt compiler and Harmony fails
  • [RVM-550] - Implementation of isZero magic in PPC baseline compiler can overflow expression stack and corrupt stack frame
  • [RVM-571] - BigDecimal Pure annotations causes crash on SPECjbb2005 for FullAdaptiveMarkSweep
  • [RVM-582] - Fix all javadoc "syntax" errors
  • [RVM-583] - Incorrect rounding on simplified integer divide
  • [RVM-585] - RVM Identity HashMap doesn't use identity hashCode.. only identity.equals
  • [RVM-587] - IdentityHashMaps in the bootimage
  • [RVM-588] - Assertion failure in BC2IR for primitive array load
  • [RVM-597] - Array index out of bounds in BC2IR generation context
  • [RVM-598] - Increase use of unpreemptible
  • [RVM-599] - New poisoned test failures on x86
  • [RVM-608] - Object replacement ignores finalizer methods

** Task and Sub-Task

  • [RVM-37] - Doccument the command line options
  • [RVM-42] - Build/Test infrastructiure to compute compiler DNA
  • [RVM-490] - Null Pointer Exception in gnu.xml.transform.ParameterNode.clone
  • [RVM-518] - Change build logic so that the VM prefix on a class name does not control inclusion in the bootimage
  • [RVM-519] - Rename classes currently with VM_ prefix that will be confusing without it
  • [RVM-520] - Update userguide to remove VM_ (and OPT_) prefix globally.
Posted at Aug 07, 2008 by David Grove | 0 comments
Last changed Mar 17, 2008 16:54 by Ian Rogers
Labels: frontpage

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.

Posted at Mar 17, 2008 by Ian Rogers | 0 comments
Last changed Dec 01, 2007 10:35 by Ian Rogers
Labels: frontpage

Jikes RVM (nee Jalapeno) turned 10 years old last week!  The first lines of code in what became Jikes RVM were written by Derek Lieber on Nov 21, 1997.

Posted at Nov 29, 2007 by David Grove | 0 comments
Labels: frontpage

We are very happy to welcome Michael Bond and Andrew Hughes to the Jikes RVM core team! Both Michael and Andrew have made numerous contributions to the RVM and we look forward to their future efforts.

Posted at Sep 20, 2007 by Ian Rogers | 0 comments
Labels: frontpage

The Google SoC has started and the six successful projects are underway. The projects cover a range of issues in the RVM:

  • implementing that Java management extensions (JMX) in the Jikes RVM will allow greater monitoring with the use of standard tools
  • JDWP and JVMTI will add greater debugability to the RVM
  • the implementation of new register allocator techniques will improve the performance of the RVM
  • implementing new garbage collectors for MMTk will increase its usefulness
  • vectorization will enable the RVM to become a test bed for dynamic compilation for vectorization
  • instruction scheduling will add greater flexibility and performance to the optimizing compiler

We look forward to these great contributions to the RVM and thank the SoC project applicants for working on them!

Posted at May 28, 2007 by Ian Rogers | 0 comments