Ashes: a Java Compiler Infrastructure
Ashes is a companion project to the Soot optimization framework. It provides
three distinct packages.
- Ashes Suite Collection: a collection of Java benchmarks which can be used as
test programs or as evaluation benchmarks. The run scripts for the individual benchmarks
are bash scripts.
- ashes.* package: a collection of Java programs written with the Soot framework
to provide some interesting standalone compiler functionality. Works under any Java compliant system.
- Ashes scripts: a collection of bash scripts which simplify the
interface to the Ashes Suite Collection and the Ashes Java package
Ashes is freely redistributable. Note that the Ashes Suite Collection
includes software developed by IBM Corp. as part of the
IBM Research Jikes Compiler Project
This is the first public release of Ashes. Ashes is unsupported, but it can be discussed on the
Soot mailing list.
If you wish to use Ashes under Windows NT/98 you will need to first install CygWin by Cygnus.
You must obtain the ashesSuiteCollection tar file and untar it in a directory, and set the environment variable ASHES_SUITE_COLLECTION to contain this directory. e.g.
tar xzvf ashesSuiteCollection-20Mar2000.tar.gz
Then you must obtain the ashesBase tar file and untar it in a directory. Add the bin subdirectory of to your PATH and
the classes subdirectory to your CLASSPATH. Set ASHES_JDK_CLASSES to point to an unjarred repository of JDK classfiles.
On Unix systems, set ASHES_PDS=:, and on NT systems, set ASHES_PDS=;. e.g.
tar xzvf ashesBase-21Mar2000.tar.gz
- refreshBenchmark [b] copies benchmark [b] to the current directory from the ashesSuiteCollection
- refreshSuite [s] copies suite [s] to the current directory from the ashesSuiteCollection
- applyCmdOnSuite [c] [s] applies command [c] to the suite [s]
- ashesCountGotos [b] reports dynamic number of gotos executed in benchmark [b]
- ashesProfileCounts [b] reports dynamic number of invokevirtuals, invokeinterfaces, etc. in [b]
- ashesEvalScene [b] reports number of classfiles, fields and methods in benchmark [b]
- ashesPrintMembers [b] prints the members of benchmark [b]
- ashesPropagateConstants [b] propagates the constants in benchmark [b]
- ashesUnitWeigher [b] determines the dynamic count of each invoke in benchmark [b]
- executeBenchmark [b] executes benchmark [b] exactly once
- timeBenchmark [b] executes benchmark [b] ten times and performs average
- sootifyBenchmark [b] -- [soot-options] puts the benchmark [b] through Soot passing options
- testSootifyBenchmark [b] executes the benchmark [b], puts it through Soot, and executes it again
Get the Ashes Suite Collection, ashes.* package and the Ashes scripts from our software repository at http://www.sable.mcgill.ca/software.