J-spot, a runtime compiler for a Virtual Machine called Wonka

$Id: j-spot.html 3944 2003-05-16 10:56:30Z dbuytaert $
home · about · news · downloads · mailing lists · contributions · bugs and testing · documents · contact information

About

Currently Wonka, an Open Source Virtual Machine (VM) developed at ACUNIA, runs in interpreter mode only which imposes a performance penalty due to the run-time overhead of fetching, decoding and executing bytecode instructions. For performance's sake, effort is put in the development of a generic runtime compiler and code generation framework.

Currently, ARM an x86, respectively a RISC and a CISC processor, are the targets architectures being worked on. However note also that j-spot is a work in progress. As such, j-spot is not competitive yet with other runtime compilers.

News

This section enumerates a brief list of the more interesting changes and silently ignores bug-fixes, clean-ups and smaller improvements.

May 2003

April 2003

March 2003

February 2003

January 2003

December 2002

November 2002

October 2002

September 2002

August 2002

June 2002

May 2002

Downloads

J-spot is a Wonka component and is distributed as such. You can download the sources here or you can browse the CVS repository online. Information on how to build and install Wonka (including j-spot) can be found here.

Mailing lists

The wonka-developers mailing list is the recommended forum to exchange ideas and discuss development. You can browse the wonka-developers archives here, and you can subscribe to the mailing list here.

Contributions

This section lists the open issues and TODO items. Any help concerning these issues is highly welcome, as are suggestions. If you want to contribute, this would be good places to jump in. Contributions can be submitted as patches and must conform the Wonka coding standards. However note that contributing to j-spot requires the desire to explore. Read: up-to-date documentation is not always readily available. The documentation that is available is listed below.

Bugs and testing

We maintain two suites with regression tests for j-spot: one written in C to test the compiler internals, and one written in Java to validate the compiler's output. In addition to our own regression tests, we run compliance tests such as those provided by the Mauve project and various benchmark suites such as the SPEC JVM98 benchmarks.

Java-based regression tests

After having setup your build environment, you can compile the Java-based regression tests by typing:

$ cd open-wonka
$ jam -sDEBUG=true -sCOMPILER=j-spot j-spot.jar

To run the Java-based regression tests, type:

$ cd open-wonka/build-x86-linux/wonka
$ ./wonka -Woempa=n -Wcompiler:profile=n com.acunia.wonka.test.jspot.JTest

If you want j-spot to compile nothing but the test methods, type:

$ cd open-wonka/build-x86-linux/wonka
$ ./wonka -Woempa=n -Wcompiler:profile=n,name-range=com_ com.acunia.wonka.test.jspot.JTest

You know all tests passed when you see something like:

--> passed num tests

Note that either way you have to disable selective compilation by specifying the "-Wcompiler:profile=n"-option on the command line. Unconditional compilation is required for the regression tests to work properly.

C-based regression tests

After having setup your build environment, you can compile the C-based regression tests by typing:

$ cd open-wonka
$ jam -sCOMPILER=j-spot jtest

To run the C-based regression tests, type:

$ cd open-wonka
$ ./build-x86-linux/compiler/j-spot/bin/jtest

You know all tests passed when you see something like:

--> passed num tests

If you found a bug or regression, write a small test case for inclusion in any of our test suites and post it on the mailing list.

Documents

Documentation

Further reading

Contact information

If you have questions or comments please subscribe to the mailing lists or drop me an e-mail at dries.buytaert at acunia.com.