Ashes Home


Sable Home

Ashes: a Java Compiler Infrastructure

Introduction top
Ashes is a companion project to the Soot optimization framework. It provides three distinct packages.
  1. 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.
  2. 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.
  3. 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

Support top

This is the first public release of Ashes. Ashes is unsupported, but it can be discussed on the Soot mailing list.

Installation top

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

Commands top
  • 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
Download top
Get the Ashes Suite Collection, ashes.* package and the Ashes scripts from our software repository at