Added by Xircles System User, last edited by David Grove on Oct 16, 2008  (view change)

Labels:

Enter labels to add to this page:
Wait Image 
Looking for a label? Just start typing.

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 Jun 10, 2009 10:11 by David Grove
Labels: frontpage

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

It's been almost nine months since the release of Jikes RVM 3.0.1, and quite a bit has changed in Jikes RVM. We'd like to call out several items that may be of particular interest to the community.

  1. Jikes RVM has switched to using native threading instead of m-to-n (aka green) threading.
  2. The default mature space collector has changed from Mark-Sweep to Immix.
  3. Jikes RVM is now licensed under the Eclipse Public License (EPL).
  4. The 3.1 release significantly improves over the performance of 3.0.1, with speedups of 10% and 21% on average for DaCapo and SPEC benchmarks respectively on an Intel C2Q. Highlights include a 29% improvement in jbb and a 32% improvement in jython.

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

New Feature

  • RVM-641 - Make Immix the default mature space collector
  • RVM-682 - Assertion checking in sysMalloc
  • RVM-802 - Debugging hooks in MMTk
  • RVM-806 - Heavyweight sanity checker for MMTk Harness
  • RVM-807 - Simple type system for MMTk Harness scripting language

Bug

  • RVM-460 - Not accounting for nursery promotion AND defrag in GenImmix
  • RVM-498 - ppc-linux32 dying on SPEC jbb 2005 with 4 threads
  • RVM-613 - asking if a method has a hasBaselineSaveLSRegistersAnnotation triggers classloading (and thus GC) when GC is disabled during OSR
  • RVM-625 - FullAdaptiveImmix and FullAdaptiveStickyImmix broken on ppc32-linux
  • RVM-638 - Crash in Poisoned configs on PPC (aix/linux, 32/64) apparently relating to clone
  • RVM-662 - Error growing discontiguous space
  • RVM-664 - Occasional digest validation errors on lusearch performance runs
  • RVM-683 - Fix race in AOS controller/organizer synchronication during startup
  • RVM-690 - Class loader and reflection problems for unboxed types
  • RVM-696 - Don't recomend copying project contents with eclipse-project
  • RVM-698 - Don't clear most significant bits for <32bit return types on Intel breaks Ubuntu 8.10
  • RVM-700 - Not running class initializer for InetAddress causing ServerSocket failures
  • RVM-701 - Edge Counter and Dynamic Call Graph output after run fails
  • RVM-703 - Throwable.getStackTrace() implementation is incorrect
  • RVM-704 - Regressions from 2.9.1 not allowing jetty web server to run
  • RVM-708 - Bad reference map created by IA32 baseline compiler
  • RVM-712 - Uninterruptible code should not be allowed to call UnpremptibleNoWarn methods
  • RVM-722 - Bug in Static Spliting induces unconditional OSR invalidations when running _228_jack in measure compilation mode
  • RVM-729 - enabling simple_escape_ipa causes a ClassCastException
  • RVM-732 - Exception in thread "MainThread" java.security.AccessControlException: permission (java.lang.RuntimePermission exitVM) not granted: no protection domains
  • RVM-733 - rvm crash when closing a file in ExitMonitor.notifyExit(int value)
  • RVM-738 - Fix debugging output when extracting long variable values for OSR
  • RVM-743 - compress-3GC fails with OOME
  • RVM-744 - Terminal not in grammar: read_ceiling (BURS)
  • RVM-748 - Bug in type checking when > 32767 types
  • RVM-756 - Intel unnecessarily restricts boot image to be at addresses > 0x30000000
  • RVM-774 - Incorrect implementation of static initializers in the case of initializers that throw exceptions
  • RVM-795 - Baseline GC Maps with JSRs fails to set reference flag for aload operations
  • RVM-800 - In TemplateCompilerFramework.genCode, case JBC_anewarray, I don't believe that the array resolution and instantiation path is ever taken
  • RVM-808 - OutOfMemoryError when allocating a 200 MB tab
  • RVM-811 - Immix: "Chunk map overflow" on jbb2005 ppc64-linux
  • RVM-814 - Wrong exception from Java reflection
  • RVM-828 - Do not search superclasses for a method unless no method is found.

Improvement

  • RVM-91 - Modularize threading system (native thread support)
  • RVM-283 - Increase frequency of timer-based method sampling
  • RVM-362 - Sort accumulating operands on to LHS of commutative operations
  • RVM-462 - Immix code still contains huge number of experimental variables
  • RVM-532 - Harmony's OSMemory implementation uses JNI
  • RVM-612 - Assertion checking on stack height in baseline compiler
  • RVM-689 - Update MMTk tutorial
  • RVM-709 - Document meaning of constants in build reference maps
  • RVM-725 - Increase command line options for tuning opt compiler behaviour
  • RVM-736 - Disable ImmutableEntryHashSetRVM.remove()
  • RVM-737 - Support local variable table for methods
  • RVM-739 - Made org.jikesrvm.compilers.opt.util.Pair generic and moved it to package org.jikesrvm.util
  • RVM-740 - Support for floating point conditional moves on Intel with SSE
  • RVM-741 - Support for negation and abs() using SSE2 bit masks
  • RVM-775 - Cleanup up code that obtains targets of pseudo_invokestatic instruction
  • RVM-791 - Clean up and modularize locking
  • RVM-801 - Minor change: Reorganize ClassFileReader by moving code for reading in the constant pool into a separate function
  • RVM-803 - Use for-each loop in RVMClass wherever possible

Tasks and Sub-tasks

  • RVM-817 - Change Jikes RVM license from Common Public License to Eclipse Public License
  • RVM-685 - Implement x86 64 JNI Compiler
  • RVM-751 - Implement PowerPC syscalls
  • RVM-759 - Stack maps seem to be broken
  • RVM-779 - Update userguide to decribe native threads
  • RVM-783 - Fix baseline Intel 64bit reference maps
  • RVM-786 - Adjust sampling mechanism in AOS to account for native threads
  • RVM-787 - Outline exception raising code in gnu.java.lang.CPStringBuilder to enable better inlining
  • RVM-29 - Track website traffic via sourceforge logo requests
Posted at Jun 10, 2009 by David Grove | 0 comments
Last changed Mar 06, 2009 08:10 by David Grove
Labels: frontpage

Please vote in the online poll: http://www.doodle.com/qtb3sm9k42wbxs9q

Polling will be open until March 19, 2009.

Posted at Mar 06, 2009 by David Grove | 0 comments
Last changed Feb 13, 2009 04:57 by Ian Rogers
Labels: frontpage


O'Reilly have released a new book called Beautiful Architecture. Ian Rogers and Dave Grove have written a chapter entitled The Strength of Metacircular Virtual Machines: Jikes RVM intended to serve as an overview and initial reference to the design of Jikes RVM. Proceeds from the book go to Médecins Sans Frontières.

Posted at Feb 13, 2009 by Ian Rogers | 0 comments