No description, website, or topics provided.
Java TeX HTML XSLT Shell Limbo
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc
eclipse
generated
libs
src
systests
tests
tutorial
.classpath
.gitignore
.project
CHANGES
COPYING-LESSER.txt
HOWTObuildWithIntellij
Jenkinsfile
README.coding_rules
README.md
Release_Notice
TODO
TODO.txt
ant.settings.jenkins
ant.settings.template
background6.gif
build.xml
credits
index.html
ivy.xml
ivysettings.xml
local-nightly-build
nightly
pom.xml
soot.psf
soot_download.html
soot_in_eclipse_howto.html

README.md

Build Status

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.

Including Soot in your Project

A Soot "release" is currently built for each commit to the develop branch. You can include Soot as a dependency via Maven, Gradle, SBT, etc using the following coordinates:

<dependencies>
  <dependency>
    <groupId>ca.mcgill.sable</groupId>
    <artifactId>soot</artifactId>
    <version>RELEASE</version>
  </dependency>
</dependencies>
<repositories>
  <repository>
    <id>bedatadriven</id>
    <name>bedatadriven public repo</name>
    <url>https://nexus.bedatadriven.com/content/groups/public/</url>
  </repository>
</repositories>

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/