The buildit script is a handy way to build and test the system. It has countless features and options to make building and testing really easy, particularly in a multi-machine environment, where you edit on one machine and build and test on others. If you really want to get the most of it, take a look at all the options by running:
...or read the script itself.
Here we just provide a hand full of examples of how it is often used, first for building and secondly for testing (which includes building). Please add to the list if you have other really useful ways of using it. In the examples below, we'll use three hypothetical hosts: habanero (your desktop), jalapeno (a remote x86 machine) and chipotle (a remote PowerPC machine).
To build a production image on your desktop, habanero, do the following:
To build a production image on the remote machine jalapeno, do the following:
Cross Platform Building
To build a production image on the remote PowerPC machine chipotle, do the following:
Since building on a PowerPC machine can take a long time, you might prefer to build on your x86 machine jalapeno and cross-build to chipotle. In that case you would just do the following:
In each case, buildit figures out the host types by interrogating them and does the right thing (forcing a PPC build on the x86 host jalapeno since you've told it you want a build for chipotle, which it knows is PPC). Buildit caches the host information, and will prompt you the first time it encounters a new host.
Full Build Specification
If you want to specify the build fully, you can do something like this:
If you want to specify multiple different GCs you could do:
which would build all three configurations on jalapeno.
Jikes RVM has the capacity to profile the boot image and then re-build an optimized boot image based on the profiles. This process takes a little longer, but results in measurably faster builds, and so should be used when doing performance testing. Buildit lets you do this trivially:
Jikes RVM currently has a notion of a "test-run", which defines a complete test scenario, including tests and builds. An example is pre-commit, which runs a small suite of pre-commit tests. It also has the notion of a "test", which just specifies a particular set of tests, not the full scenario. An example is dacapo, which just runs the DaCapo test suite (see the testing/tests directory for the available tests).
Running a test-run
To run the pre-commit test-run on your host jalapeno just do:
Running a test
To run the dacapo tests against a production on the host jalapeno, do:
To run the dacapo tests against a FastAdaptive MarkSweep build, on the host jalapeno, do:
To run the dacapo and SPECjvm98 tests against production on the host jalapeno, do: