Mercurial > hg > graal-compiler
view README.html @ 13921:eb48fac53e6f
Make NewMultiArrayNode a ArrayLengthProvider so that it can provide the length of its first dimension
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Mon, 10 Feb 2014 16:13:21 +0100 |
parents | 64b9375246e4 |
children |
line wrap: on
line source
<h2>Building Graal</h2> <p>There is a Python script in mxtool/mx.py that simplifies working with the code base. It requires Python 2.7. While you can run this script by using an absolute path, it's more convenient to add graal/mxtool to your PATH environment variable so that the 'mx' helper script can be used. The following instructions in this file assume this setup.</p> <p>Building both the Java and C++ source code comprising the Graal VM can be done with the following simple command.</p> <pre> % mx build </pre> <p>There are a number of VM configurations supported by mx which can be explicitly specified using the --vm option. However, you'll typically want one of these VM configurations:</p> <ol> <li> The 'server' configuration is a standard HotSpot VM that includes the runtime support for Graal but uses the existing compilers for normal compilation (e.g., when the interpreter threshold is hit for a method). Compilation with Graal is only done by explicit requests to the Graal API. This is how Truffle uses Graal.</li> <li> The 'graal' configuration is a VM where all compilation is performed by Graal and no other compilers are built into the VM binary. This VM will bootstrap Graal itself at startup unless the -XX:-BootstrapGraal VM option is given. </li> </ol> <p>Unless you use the --vm option with the build command, you will be presented with a dialogue to choose one of the above VM configurations for the build as well as have the option to make it your default for subsequent commands that need a VM specified.</p> <p>To build the debug or fastdebug builds:</p> <pre> % mx --vmbuild debug build % mx --vmbuild fastdebug build </pre> <h2>Running Graal</h2> <p>To run the VM, use 'mx vm' in place of the standard 'java' command:</p> <pre> % mx vm ... </pre> <p>To select the fastdebug or debug builds of the VM:</p> <pre> % mx --vmbuild fastdebug vm ... % mx --vmbuild debug vm ... </pre> <h2>Other VM Configurations</h2> <p>In addition to the VM configurations described above, there are VM configurations that omit all VM support for Graal:</p> <pre> % mx --vm server-nograal build % mx --vm server-nograal vm -version java version "1.7.0_25" Java(TM) SE Runtime Environment (build 1.7.0_25-b15) OpenJDK 64-Bit Server VM (build 25.0-b43-internal, mixed mode) </pre> <pre> % mx --vm client-nograal build % mx --vm client-nograal vm -version java version "1.7.0_25" Java(TM) SE Runtime Environment (build 1.7.0_25-b15) OpenJDK 64-Bit Cleint VM (build 25.0-b43-internal, mixed mode) </pre> <p>These configurations aim to match as closely as possible the VM(s) included in the OpenJDK binaries one can download.</p>