This release should work with any recent JVM. It has been tested with the Sun 1.5 JVM under Linux (Debian sarge) and Windows XP. We would be keen to hear reports of success (or failure!) on other platforms. It is likely that if you are not using the Sun JVM you will need to explicitly add the Java runtime library to your classpath; please see the "Troubleshooting" section of the FAQ.

Binaries

Complete compiler jar and runtime library
If you put both these on your classpath you can invoke abc with 'java abc.main.Main'. An ant task for abc is also included. Finally, you can run the jar with 'java -jar'.

abc-complete.jar
abc-runtime.jar

Complete compiler jar including JastAdd frontend
As above, but including the JastAdd frontend for abc (which supports Java 5).

abc-ja-complete.jar

Complete compiler jar including JastAdd frontend and extensions
As above, but including the bundled extensions for the JastAdd frontend: EAJ and tracematches.

abc-ja-exts-complete.jar

Usage documentation
Verbose descriptions of the options supported by abc.

usage.pdf
usage.ps

Shell script
You can use to run abc from UNIX without needing to set your classpath; just edit it to set the locations of Java and the abc jars, and put it somewhere on your path.

abc

Windows batch file
You can use to run abc from Windows without needing to set your classpath; just edit it to set the locations of Java and the abc jars, and put it somewhere on your path.

abc.bat

Ant task for ajc compatibility
This implements the ajc and iajc tasks with abc. Useful if you already have projects set up to build with ajc, but note that not all features are supported yet.

abc-for-ajc-ant.jar

Javadoc for the abc runtime library
Note that you should not directly refer to any packages in this library other than those under org.aspectj.lang and org.aspectbench.lang.

Online version

abc in individual jars
This is an alternative to abc-complete.jar - possibly useful if you already work with any of these components, or want to experiment with using different versions of them.

abc.jar
abc-ja.jar
abc-ja-exts.jar
abc-paddle.jar
sootclasses.jar
jasminclasses.jar
polyglot.jar
java_cup.jar
.jar">paddle-.jar
.jar">jedd-runtime-.jar
.jar">javabdd_.jar

All of the above in one package
Follow the instructions for individual components above to install each bit.

-bin.tar.gz">abc--bin.tar.gz
-bin.zip">abc--bin.zip

Debian package [currently unavailable]
Or use our APT repository:
deb http://abc.comlab.ox.ac.uk/apt abc main

_all.deb">abc__all.deb

Sources

The preferred way of obtaining the abc sources is through svn: please run svn co http://abc.comlab.ox.ac.uk/products/tags/abc-1.3.0. This will download all sources and all required libraries in binary form.

You can also get the latest development version (at your own risk) by running svn co http://abc.comlab.ox.ac.uk/products/trunk/abc-full.

If you would rather download the source in an archive, read on.

Full abc source code
You will first need to compile polyglot and soot to compile this. Copy ant.settings.template to ant.settings and edit it. Now run ant jars.

-src.tar.gz">abc--src.tar.gz
-src.zip">abc--src.zip

The versions of soot, jasmin and polyglot below are the exact versions that the binaries above were built from, and may be development versions. You might want to obtain the latest versions from the Soot and Polyglot project homepages.

Soot
You will first need to compile polyglot and jasmin. Copy ant.settings.template to ant.settings and edit it to set the variables polyglot.jar, jasmin.jar and jedd.runtime.jar to point to the appropriate files. Edit release.loc to point to an appropriate place. Put ANT_OPTS=-Xmx256M in your ~/.antrc file. Now run ant classesjar.

.tar.gz">soot-.tar.gz
.zip">soot-.zip

Jasmin
Run bin/compile_all.sh, then change to the classes directory and do:
jar -cvf ../lib/jasminclasses-sable-nocup.jar jas/ jasmin/ scm/

.tar.gz">jasmin-.tar.gz
.zip">jasmin-.zip

Polyglot
Run ant polyglot-jar to build.

.tar.gz">polyglot-.tar.gz
.zip">polyglot-.zip

Support jars
The xact-complete jar is needed to build and use the testing harness, and the paddle, jedd-runtime and javabdd jars are needed to support the interprocedural cflow optimisations that are enabled at -O3. The paddle and jedd-runtime jars are made from snapshots of the latest sources at the time this distribution was made. Visit the Paddle, Jedd, JavaBDD and Xact homepages for more information and for source. We also provide source for the version of JavaBDD we use here to comply with the terms of the LGPL, but we recommend that you obtain the latest version from the JavaBDD website in preference for use with anything other than abc.

.jar">paddle-.jar
.jar">jedd-runtime-.jar
.jar">javabdd_.jar
.tar.gz">javabdd_src_.tar.gz
.jar">xact-complete-.jar