Project proposal: Graal

Douglas Simon doug.simon at
Wed Jan 25 10:03:07 UTC 2012

In accordance with the OpenJDK guidelines [1], we would like to start the
discussion of a new project to explore implementing a dynamic compiler
in Java that can be used in a native JVM such as HotSpot as well as in
a meta-circular JVM such as Maxine [2].

The goal of this project is to design a dynamic compiler in Java that
produces excellent code quality without compromising compile time and
memory usage by the JVM. The origin and starting point for this project
would be the Graal compiler from the Maxine code base. This compiler is
already integrated and runs in both HotSpot and Maxine. The Maxine wiki
contains a brief history of its heritage [4].

The compiler uses a clearly defined interface [3] for interacting with
the runtime of the JVM. Furthermore, it uses features of Java that make
it highly extensible such that adding extra IR nodes and/or transformations
is as easy as possible.

In addition to performance goals, this project aims to demonstrate the
advantages of writing (some of) a JVM in Java while at the same time
addressing the unique challenges such an approach entails. In this sense,
Graal is a narrower application of meta-circular JVM design principles as
embodied in Maxine and Jikes RVM [5].

To ensure the broadest possible collaboration between potential contributors
the project will maintain one or more code repositories derived from the
OpenJDK HotSpot repository [6] and a developers' mailing list. The Graal
code repository and developers' mailing list will be under the GPL license
(GPL) version 2 with the Classpath exception and the OpenJDK Assembly Exception.

Through private correspondence, we have the support and an offer of sponsorship
from the lead of the HotSpot Group (Paul Hohensee). We would now like to invite
anyone who supports our goal to nominate themselves as an initial supporter
to be listed on the formal project proposal that will follow after the discussion.


Doug Simon and Thomas Wuerthinger


More information about the discuss mailing list