Garbage Collection
Garbage Collector for Embedded Devices
Implement a garbage collector that has beneficial characteristics for embedded devices. For example, the collector could avoid compaction in certain scenarios.
Interested mentors:
Garbage Collection Visualization
the Jikes RVM has had GC visualization previously through the GCspy framework. This has become slightly out-of-date and it would be interesting to improve it and possibly look to integrate the visualization side of the work with a sister project of the RVM's tuning fork.
http://jira.codehaus.org/browse/RVM-388
Interested mentors: Richard Jones
New Garbage Collection Implementations for MMTk
We would be interested in hearing about adding new GC implementations to MMTk. As such the complexity of such a thing is high, we will take particular care when looking at your experience with relation to an application for this project.
Interested mentors:
Compilers
Copy eliminating baseline compiler
A new framework for baseline code generation using a copy eliminating baseline compiler.
Interested mentors: Eliot Moss, Ian Rogers
x86 64 compiler support
Related to the previous project, continue efforts to port to x86 64 the Jikes RVM.
Interested mentors: Ian Rogers
strictfp support
http://jira.codehaus.org/browse/RVM-235
Interested mentors: Ian Rogers
Reduce cost of inlining runtime services
http://jira.codehaus.org/browse/RVM-148
Interested mentors: Ian Rogers
Loop unrolling
Implement a better loop unrolling phase taking into account various considerations about when and how to unroll.
Interested mentors: Ian Rogers
Java Operating Systems
Work on the continued integration of the RVM with JNODE
http://jira.codehaus.org/browse/RVM-382
Interested mentors: Ian Rogers
Runtime services
Class Unloading
Currently all classes share a "Java table-of-contents" or the JTOC which has no support for unloading classes. We need to restructure the JTOC interface to support class unloading by making it per class loader, or per class. This is likely to also involve looking into modifying the current calling conventions.
http://jira.codehaus.org/browse/RVM-324
Interested mentors: Robin Garner, Ian Rogers
Lock Reservation/Biasing
Interested mentors: Tony Hosking, Ian Rogers
Native Threading
Interested mentors: Tony Hosking, Ian Rogers
Harmony class library support
http://jira.codehaus.org/browse/RVM-358
Interested mentors: Ian Rogers, Tim Ellison
OpenJDK class library support
The OpenJDK class libraries are the standard class libraries in use in Sun and other production VMs. They are now available under the GPL but with a native interface implemented typically in a file called jvm.cpp (see Cacao). We would like to integrate with OpenJDK and fix likely issues in wanting to have Java-in-Java implementations of a lot of their calls, as well as support for different threading models.
Interested mentors: Andrew Hughes
Modularity
Currently there is a connection between different parts of the RVM that is less than desirable. For example, the on-stack-replacement algorithm is implemented in parts in the class loader. We would like to have better isolation of components to more easily allow plug in replacements to be created. Such changes are likely to have an effect across the code base, so interacting with the development community will be important.
Interested mentors: Ian Rogers