Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: fixed formatting for mentors, weblinks

...

Project TitleImplement the JVM Tool Interface (JVMTI)
RVM area
threading, JNI
outline

The JVM Tool interface is part of the Java Platform Debugger Architecture that JVMs can implement to provide debugging capabilities. We would like to have a full JMVTI implementation to allow debugging of Java applications that are running on Jikes RVM. Another benefit of JVMTI is that it allows low-level access to JVM internals. This can be used for instrumenting and monitoring the Jikes RVM using low-level code.

There is already a partial JMVTI implementation that was written by James Bornholt for GSoC 2011. His implementation should be used as a basis for this project.

references

Writeup of James Bornholt on the GSoC 2011 page

Web view of previous GSoC 2011 JVMTI work

needed skillsC, C++, Java, willingness to deal with low-level details
difficultymedium
interested mentorEliot Moss

 

...

 

...

Project TitleImprove (or rethink) CatTrack
RVM area
infrastructure
outline

The Jikes RVM project currently uses the Ruby-on-Rails application CatTrack to track test results. CatTrack is also responsible for sending regression mails.

This project would consist of upgrading CatTrack to use a more recent version of Ruby-on-Rails instead of the ancient Ruby-on-Rails 1.2.6. Potential candidates must have experience in Ruby-on-Rails to be able to take on this project: we don't have the necessary expertise to provide adequate mentoring to RoR beginners. The exact version numbers and the upgrade process need to be coordinated with our contacts at the Australian National University (where the servers are located). New features can be added to CatTrack after the upgrade is complete.

An alternative approach would be to get rid of CatTrack completely and move to a more general open-source solution. Note that this would be a much more disruptive change. A student proposal that suggests this approach must be very convincing to be considered. Another constraint for proposals of this kind is that we want to avoid using yet another language in our build infrastructure (see RVM-85 ). It might be acceptable to replace Ruby with another language but this must be discussed before such a proposal is submitted.

The X10 language project also uses CatTrack for their regression mails. Candidates should be prepared to coordinate with somebody from the X10 team to ensure that an upgraded version of CatTrack (or a replacement) is also a viable solution for them.

referencesWeb view of the CatTrack repository
needed skillsprior Ruby-on-Rails experience, XML, basic knowledge about databases
difficultydifficult
interested mentorSteve Blackburn

 

...

 

...

Project TitleImprove testing situation for JIkes RVM
RVM area
infrastructure, (additional subsystems as chosen by the student)
outline

An infrastructure for unit tests and some initial unit tests were added to the Jikes RVM in GSoC 2012 by João Reys Santos. However, there is still a lot of work to do before we can consider the codebase to be reasonably well tested. We need more unit tests as well as more black-box tests.

Students should pick an area of interest (e.g. compilers, JNI, MMTk, classloading, threading, ...) and/or motivating use cases (e.g. get benchmark X or application Y running on Jikes RVM), identify and fix the corresponding problems and introduce adequate (unit) tests.

Note that extra effort will be required if students want to use mocking. Mockito does not work with GNU Classpath-based JVMs and our OpenJDK-port is not yet ready.

references

book: Michael Feathers, Working effectively with legacy code, Pearson Education, 2004

book: Andreas Zeller, Why programs fail: A guide to systematic debugging, Morgan Kaufmann, 2009

needed skillsJava, Ant, debugging without a debugger
difficultyeasy to difficult (depends on the chosen tasks and areas)
interested mentorTony Hosking

 

...

 

Project TitleBytecode verifier
RVM area
classloading, compilers
outline

Jikes RVM currently does not implement a bytecode verifier. We would like to have a bytecode verifier that can verify classfiles at least up until Java 6 (we don't support Java 7 yet). The verifier needs to work with the baseline compiler as well as the optimizing compiler. Ideally, it should be possible to use the verifier from the command line without actually running the bytecode that is supposed to be checked. This could be done in a similar way to the OptTestHarness which enables users to control the compilers.

The verifier should be designed to support custom verification constraints. Some examples for possible constraints are listed in the JIRA issue linked below.

references

JIRA issue for the bytecode verifier

Jasmin assembler (useful for creating test cases that trigger verifier errors)

Chapter 4 of the JVM Specification

needed skills

Java, reading papers and specifications, implementing algorithms from specifications and papers

difficultymedium
interested mentorEliot Moss

...