Project proposal: Graal
Paul Hohensee
paul.hohensee at oracle.com
Thu Jan 26 21:59:51 UTC 2012
Just to register my support, I think this is an interesting and potentially
quite useful line of development that would allow us to inject arbitrary
Java code into the Hotspot JVM. Some problems I'd like to see solved
by this effort include
1. Startup time. The compiler should itself be compiled before the JVM
starts executing in order to avoid pause time hiccups during startup
as the compiler compiles itself. Some sort of ahead-of-time compilation
scheme is needed for Hotspot. Such a scheme would be quite useful
for general application use also, particularly in an embedded context.
2. Graal-generated code quality should be quite close to that obtained from
C++ compilers. For example, the transition from gcc 3 to gcc 4 for
compiling Hotspot on Linux significantly improved GC execution time.
3. The interface between Java land and C++ land must be efficient in
terms of both time and space. Conventional JNI is far to slow.
Copying may (or may not) result in a significant footprint increase
as well as require update synchronization.
Thanks,
Paul
On 1/25/12 5:03 AM, Douglas Simon wrote:
> 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.
>
> Regards,
>
> Doug Simon and Thomas Wuerthinger
>
> [1] http://openjdk.java.net/projects/#new-project
> [2] https://wikis.oracle.com/display/MaxineVM/Home
> [3] https://wikis.oracle.com/download/attachments/4161575/vee2010.pdf
> [4] https://wikis.oracle.com/display/MaxineVM/Graal
> [5] http://jikesrvm.org/
> [6] http://hg.openjdk.java.net/hsx/hotspot-main/
More information about the discuss
mailing list