diff README.html @ 13878:64b9375246e4

Update README and AUTHORS. Move to HTML format.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Wed, 05 Feb 2014 14:02:54 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.html	Wed Feb 05 14:02:54 2014 +0100
@@ -0,0 +1,81 @@
+<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>