Skip to content
Soot - A Java optimization framework
Java TeX HTML XSLT Shell Limbo
Find file
Failed to load latest commit information.
doc checked in the PLDI'03 tutorial on Soot
eclipse fixed an issue with weak keys in throwables and added an option to on…
generated made the singletons more thread-safe without (hopefully) wasting too …
libs changed build process to use java_cup from Jasmin and not have an own…
src Bugfix: VTA and RTA uses method nodes that did not correctly handle p…
systests - new test case for string constants wih null literals
tests fixed some test cases
tutorial fixing documentation issue, fixes #359
.classpath changed build process to use java_cup from Jasmin and not have an own…
.gitignore added a transformer that splits cast-and-return patterns so that the …
.project project name = soot
CHANGES CHANGES
COPYING-LESSER.txt Changed from Library General Public License 2 to Lesser General Publi…
README.coding_rules Update README.coding_rules to reflect switch from make to ant,
README.md Update README.md
Release_Notice No commit message
TODO - made nop eliminator run before jb phase for java to jimple
TODO.txt updated web page;
ant.settings.jenkins changed build process to use java_cup from Jasmin and not have an own…
ant.settings.template changed build process to use java_cup from Jasmin and not have an own…
background6.gif prcs 1.2.0.dev.4:
build.xml Added ant task to publish soot to local maven repo using ivy
credits docs
index.html git
ivy.xml Added ant task to publish soot to local maven repo using ivy
ivysettings.xml Added ant task to publish soot to local maven repo using ivy
local-nightly-build Add self-contained nightly build script "local-nightly-build".
nightly No commit message
soot.psf Corrected github project references in soot.psf
soot_download.html No commit message
soot_in_eclipse_howto.html Improve the wording of the previous change

README.md

What is Soot?

Soot is a Java optimization framework. It provides four intermediate representations for analyzing and transforming Java bytecode:

  • Baf: a streamlined representation of bytecode which is simple to manipulate.
  • Jimple: a typed 3-address intermediate representation suitable for optimization.
  • Shimple: an SSA variation of Jimple.
  • Grimp: an aggregated version of Jimple suitable for decompilation and code inspection.

See http://www.sable.mcgill.ca/soot/ for details.

How do I get started with Soot?

We have some documentation on Soot in the wiki and also a large range of tutorials on Soot.

How do I obtain the nightly builds

Note that the nightly build server has moved

Nightly builds of soot can be obtained from nightly build. The "soot-trunk.jar" file is an all-in-one file that also contains all the required libraries. The "sootclasses-trunk.jar" file contains only Soot, allowing you to use manually pick dependencies as you need them.

About Soot's source code

Soot follows the git-flow convention. Releases and hotfixes are maintained in the master branch. Development happens in the develop branch. To catch the bleeding edge of Soot, check out the latter. You will also need the projects jasmin and heros. In case of any questions, please consult the Soot mailing list at: http://www.sable.mcgill.ca/mailman/listinfo/soot-list/

Something went wrong with that request. Please try again.