The Soot Framework is an evolving research project. Our goal is to produce a
highly robust research framework for optimizing Java which is easy to use.
The latest release is version 1.2.3, which fixes a few bugs from release 1.2.2 and incorporates
some improvements of memory usage. Some other enhancements are an option for preserving line
number tables, re-implementation of partial redundency elimination, some utility classes for
viewing CFGs, and XML output of Jimple bodies.
Jasmin has been upgraded to sable-1.2, which allows the length of a token more than 64K
(this is often necessary for annotation).
The release 1.2.2 fixes a few bugs from release
1.2.1. It also improves its performance and stability over former versions.
Jasmin has been upgraded to 1.06-s10, which fixes a bug in the grammar dealing
with attribute data.
The release 1.2.1 fixes a few bugs from
release 1.2.0. A big improvement is that the release 1.2.1 can accept
.jar file in the --soot-classpath command option. Also Jasmin has
been upgraded to 1.06-s9, which no longer depends on Soot. (Note that
versions prior to 1.06-s8 also did not depend on Soot.)
The major new feature in 1.2.0 is support for classfile
annotation (courtesy of Feng Qian and Patrice Pominville). There is
also an improved typing system, due to Etienne Gagnon. Variable-Type
Analysis was cleanly reimplemented by Felix Kwok and we have included
it in our release of Soot for the first time. We also fixed a few
bugs reported against version 1.0.0.
We plan the following releases for the near future:
- The Dava decompiler is planned to have separate releases.
- A points-to analysis package is in our release schedule.
- Several new features will be included in our next major release, 1.3.0,
which is scheduled for the end of the summer.
Get Soot from our software repository at http://www.sable.mcgill.ca/software.
To install it you must unjar(untar) it, and add the classes directories
soot-1.2.3/soot/classes and
soot-1.2.3/jasmin/classes to your CLASSPATH.
To test your installation of Soot, try:
java soot.Main
for some options on processing classfiles. They are documented in more detail in the
usage document.
Note that Soot requires at least JDK 1.2 (Java 2), as it uses Java Collections.
Release 1.2.3 has been tested on Sun's JDK 1.3.1_01 for Linux.