Maxine development changes

  • From: Douglas Simon <Doug.Simon@...>
  • To: users@...
  • Subject: Maxine development changes
  • Date: Fri, 16 Dec 2011 12:36:18 +0100

Hi,

In the past 2 years or so, Maxine has progressed with the addition of a 
number of useful features including:

o a better optimizing compiler (C1X)
o an improved and simplified baseline compiler (T1X)
o support for deoptimization
o garbage collection of the baseline code cache including implicitly managed 
tagged code pointers
o a more general mechanism for performing VM operations (VmOperation)
o many Inspector upgrades: 
 - new kinds of views of VM state
 - integrated native debugging with dynamically loaded libraries
 - many usability features
 - changes that track VM evolution
 - internal architectural generality and documentation for future needs
o general robustness and bug fixing such that the VM now executes all of the 
SpecJVM2008 and DaCapo-9.12-bach benchmarks with performance about 70% of the 
Java HotSpot client VM
o updated and improved documentation on the wiki 
(http://wikis.oracle.com/display/MaxineVM/)

We also plan to integrate the following features by the end of Jan 2012:

o a region based, generational collector
o most of JVMTI implemented such that JDWP debuggers (e.g., jdb, Eclipse, 
NetBeans etc) will provide Java-level debugging with Maxine

In short, we believe the platform is now very compelling for a wide range of 
VM research.

In addition to the above features, we have also been pursuing a goal of 
making our optimizing compilers run in both Maxine and the Java HotSpot VM, 
thus doubling the return on our investment in them. This has largely been 
enabled by a clean compiler / runtime interface (CRI) that came out of the 
port of client compiler, resulting in C1X. We initially proved the viability 
of the CRI with the C1X4HotSpot project.

Building upon this, we've spent the last 6 months doing a major overhaul and 
redesign of the compiler starting with C1X. The result is a new compiler we 
have named "Graal". The first performance goal of Graal is to achieve peak 
performance very close to that of the Java HotSpot server compiler.

To ensure that we have a good shot at success, we have decided to reorganize 
the focus of the core team for the next few months. During that time we will 
dedicate most of our resources to development of Graal within HotSpot. Once 
we've demonstrated the capabilities of Graal in this context, we will 
integrate it back into Maxine. We believe, based on past experience, that 
this integration effort will be trivial compared to the development of the 
compiler itself.

Focusing on a single VM will result in faster progress and allow us to 
achieve the overall goal of a high quality compiler written in Java operating 
in multiple VMs in a shorter amount of time. Why choose HotSpot over Maxine 
for the initial effort? Because:

1. It allows for a better apples-to-apples comparison with other production 
compiler(s).
2. HotSpot is generally more tuned and feature complete than Maxine, which 
will minimize distractions concerning other VM issues.
3. It is a shorter path for the Maxine project to potentially make an impact 
on Oracle's production JVM.

Although parts of Graal already reside in the Maxine repository available at 
Kenai, subsequent work on the Graal+HotSpot project (internally named 
GraalVM) will be conducted on a separate repository to minimize disruptions 
to the open source code base. For example, we plan on making some changes to 
the CRI, such as removing XIR, that would break C1X.

The upshot for external Maxine users/researchers is that active development 
of Maxine may appear to slow during this focus on Graal. In particular, very 
little if any work will be conducted on C1X, which we now consider a stable 
compiler. That said, apart from delivering on the in-progress features 
mentioned above, we expect to keep maintaining and working on other aspects 
of the VM. For example, we are considering putting in place a testing 
framework for the Inspector, adding better profiling and analysis mechanisms, 
implementing JSR292 (i.e., invokedynamic + method handles) as well as general 
bug fixing and performance improvements.

We intend to communicate clearly and early on this list as we approach the 
point where Graal will be re-integrated into the Kenai repository so that 
affected parties can plan early. In particular, we hope to deprecate C1X and 
have a default VM configuration where the only compilers included are T1X and 
Graal. This will require fleshing out Graal so that it can serve as a boot 
image compiler, something it is not currently designed to do well.

We realize that these plans will raise questions. Please use the users@... 
list for those questions and for any other discussions related to the Maxine 
project.

The Oracle Maxine Team



Maxine development changes

Douglas Simon 12/16/2011
  • Mysql
  • Glassfish
  • Jruby
  • Rails
  • Nblogo
Terms of Use; Privacy Policy;
© 2013, Oracle Corporation and/or its affiliates
(revision 20131025.e7cbc9d)
 
 
Close
loading
Please Confirm
Close