diff README.md @ 13962:258a09b6449b

Change AUTHORS, CHANGELOG, and README file from HTML to Markdown.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Thu, 06 Feb 2014 14:50:36 +0100
parents
children 8df361535530
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.md	Thu Feb 06 14:50:36 2014 +0100
@@ -0,0 +1,82 @@
+## Building Graal
+
+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.
+
+Building both the Java and C++ source code comprising the Graal VM
+can be done with the following simple command.
+
+```
+% mx build
+```
+
+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:
+
+1. 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.
+   
+2. 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.   
+
+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.
+
+To build the debug or fastdebug builds:
+
+```
+% mx --vmbuild debug build
+% mx --vmbuild fastdebug build
+```
+
+## Running Graal
+
+To run the VM, use 'mx vm' in place of the standard 'java' command:
+
+```
+% mx vm ...
+```
+
+To select the fastdebug or debug builds of the VM:
+
+```
+% mx --vmbuild fastdebug vm ...
+% mx --vmbuild debug vm ...
+```
+
+## Other VM Configurations
+
+In addition to the VM configurations described above, there are
+VM configurations that omit all VM support for Graal:
+
+```
+% 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)
+```
+
+```
+% 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)
+```
+
+These configurations aim to match as closely as possible the
+VM(s) included in the OpenJDK binaries one can download.
+ No newline at end of file
+