Jikes RVM (Research Virtual Machine) provides a flexible open testbed to prototype virtual machine technologies and experiment with a large variety of design alternatives. It differs from other JVM projects in that it is written in Java whilst having a full adaptive optimization framework. It is a vehicle for testing a wide range of ideas including compiler research, memory management research, Java operating systems, computer architecture, and aspect oriented programming to name a few. It is widely used for research and teaching; for example, over 180 research papers have been published which use Jikes RVM.
- An Efficient Mark & Sweep Concurrent Snapshot-Based And On The Fly Sliding-Views based Garbage Collectors For Jikes RVM The Project contains the following steps : 1) Revisit the design of MMtk to faciliate support for concurrent and on the fly algorithms. 2) Implementing an Efficient Mark & Sweep Garbage Collector based on the snapshot Mechanism. 3) Implement a mark & sweep on the fly collector, based on the sliding views mechanism.
- Generational Collector Organisation The project's objective is to reduce the "en masse" promotion effect of the current generation collectors. To do so, the Hotspot's "Eden and Survivor" and the GHC's "Steps", young generations will be added as they postpone promotion of young generation objects to the mature generation.
- Parallel Compilation Services for Jikes RVM on multicore SUMMARY: This project aims to speed up runtime code optimization on the Jikes RVM, by using multiple compiler threads on multi-core platforms. Jira issues - related to RVM-239 - restructuring of compiler phases. (We need to have explicit info about side-effects of compiler optimizations to know which phases can run in parallel)
- Tools for debugging the Jikes RVM runtime Debugging a metacircular JVM brings a number of challenges. Such a runtime lies in the wilderness between a native JVM (with debugging tools like gdb) and a Java application (with jdb or visual debuggers). This project will firstly implement the JVM Tools Interface (JVMTI) enabling developers some lower level access to JVM internals. It will then implement other useful tools for debugging the runtime itself, such as the Maxine Inspector or extensions to gdb.