+ Soot:
+a
+Java
+Optimization
+Framework
+
+ Latest
+version:
+2.4.0
+(March,
+2010)
+
+
+Need help using Soot? See the Soot
+tutorials.
+Or have a loot at Arni Einarsson's and Janus Dam Nielsen's marvelous Soot Survivor's guide!
+
+
+
+
+
+ Introduction |
+ top |
+
+
+
+ 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.
-
-
-Soot can be used as a stand alone tool to optimize or inspect class files, as well
+
+ - 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.
+
+Soot can be used as a stand alone tool to optimize or inspect class
+files, as well
as a framework to develop optimizations or transformations on Java
bytecode.
-
-Soot is free software and is licensed under the GNU Lesser General Public
-License.
-
-
-
-
-Release Status:
-The Soot Framework is an evolving research project. Our goal is to produce a
-robust, easy-to-use research framework for optimizing Java bytecode.
-
-
-The latest release is version 2.2.3 The new features since 2.2.2 are described in detail here: new features.
-
-
-
-
-
-
-Eclipse Plugin:
-Since version 2.0, Soot includes a plugin that makes it
+ Soot is free software and is licensed under the GNU Lesser General
+Public
+License.
+
+
+ Release Status:
+ The Soot Framework is an evolving research project. Our goal
+is to produce a
+robust, easy-to-use research framework for optimizing Java bytecode.
+ The latest release is version 2.4.0. The new features are
+described in detail here: new features.
+
+
+ Eclipse Plugin:
+Since version 2.0, Soot includes a plugin
+that makes it
possible to use Soot from Eclipse.
-We have a separate web page with instructions for
-installing and using the plugin.
-
- You may also want to develop Soot within the Eclipse environment. Instructions for setting up Soot within Eclipse can be found here: Setting Up Soot in Eclipse.
-
-
-
-
-
-Downloads:
-
-Get Soot from our download page a Soot Downloads.
-
-
-To install it you must unjar(untar) it, and add the classes directory
-soot-2.2.3/soot/classes to your CLASSPATH. The Jasmin and Polyglot
-classes jar files, or classes directories, must also be added to your CLASSPATH.If you are using the classes directories on your CLASSPATH, you must also add the Polyglot cup-classes directory (included in this distribution) to your CLASSPATH.
-
-To test your installation of Soot, try:
-
-
-
-java soot.Main --help
-
-
- for some options on processing classfiles. They are documented in more detail in the
-usage document.
-
-Note that Soot requires at least JDK 1.3.
-The Eclipse plugin requires at least JDK 1.4.
-Soot now has partial support for JDK 1.5.
-
-
-
-Repository Access:
-We are using Subversion for
+We
+have
+a
+separate web page with
+instructions for
+installing and using the plugin.
+ You may also want to develop Soot within the Eclipse
+environment. Instructions for setting up Soot within Eclipse can be
+found here: Setting Up Soot in
+Eclipse.
+ If you want to develop with Soot in Eclipse and use SVN
+here is another set of instructios Setting Up Soot in
+Eclipse using SVN.
+
+ This is the plugins's update site:
+
+ http://www.sable.mcgill.ca/soot/eclipse/updates/
+
+
+
+
+
+ Obtaining Soot |
+ top |
+
+
+
+
+ Downloads:
+Get Soot from our download page a Soot
+Downloads.
+ You can simply run Soot using the following command:
+ java -jar soot-2.4.0.jar
+ To get help on the command-line options, use:
+ java -jar soot-2.4.0.jar -help
+
+ The usage document gives
+more information about these options.
+
+ Note that Soot requires at least JDK 1.5.
+The Eclipse plugin requires at least JDK 1.5.
+Soot now has virtually complete support for JDK 1.5.
+(Missing is support for package-level and local-variable annotations.)
+
+
+ Repository Access:
+ We are using Subversion
+for
revision control.
-
-With a Subversion client, you can obtain a copy of the
+ With a Subversion client, you can obtain a copy of the
development version of Soot, as well as any old versions. To obtain the
latest development version of Soot, use one of the following commands:
-svn checkout https://svn.sable.mcgill.ca/soot/soot/trunk soot-dev
-svn export https://svn.sable.mcgill.ca/soot/soot/trunk soot-dev
-
-The checkout version records additional information required
+ svn checkout https://svn.sable.mcgill.ca/soot/soot/trunk
+soot-dev
+ svn export https://svn.sable.mcgill.ca/soot/soot/trunk
+soot-dev
+ The checkout version records additional
+information required
to update your checked out version of Soot with the repository at a
later time (with the svn update command). The export
version provides a "clean" copy of only the Soot files themselves.
-
-In order to compile Soot from source, you will also need a copy of
-the Jasmin and Polyglot classes, available from the
-download page.
-Moreover, the Java VM that ant allocates by default when compiling Soot
-may have too small a heap to compile a project as large as Soot. If you
-get an OutOfMemoryError, you will need to create a file called .antrc
-in your home directory containing the following line:
-
-
-ANT_OPTS="$ANT_OPTS -Xmx700m"
-
-
-From time to time we update Jasmin. If something Jasmin related seems broken you may need to get the latest Jasmin from the subversion repository:
-svn checkout https://svn.sable.mcgill.ca/soot/jasmin/trunk jasmin-dev
-svn export https://svn.sable.mcgill.ca/soot/jasmin/trunk jasmin-dev
-
-You can also browse our latest version of the Soot repository, as well as a ViewCVS history, using
-just a web browser. For further instructions, please see
-http://svn.sable.mcgill.ca/.
-
-
-Nightly Builds:
-With release 2.2.1 we started to build Soot and Jasmin every night. To get the latest nightly build see: Nightly Builds.
-
-
-
-
-
-
-Documentation:
-We have developed a number of documents describing Soot. Your main
+ In order to compile Soot from source, you will also need a
+copy of
+the Jasmin and Polyglot classes, available from the download page.
+ From time to time we update Jasmin. If something Jasmin
+related seems broken you may need to get the latest Jasmin from the
+subversion repository:
+ svn checkout https://svn.sable.mcgill.ca/soot/jasmin/trunk
+jasmin-dev
+ svn export https://svn.sable.mcgill.ca/soot/jasmin/trunk
+jasmin-dev
+ You can also browse our latest version of the Soot
+repository, as well as a ViewCVS history, using
+just a web browser. For further instructions, please see http://svn.sable.mcgill.ca/.
+
+
+ Nightly Builds:
+ With release 2.2.1 we started to build Soot and Jasmin every
+night. To get the latest nightly build see: Nightly Builds.
+
+
+
+
+
+ Resources |
+ top |
+
+
+
+
+ Documentation:
+We have developed a number of documents describing Soot. Your main
current sources of information are:
-
-
-- Our publication page
-has several conference papers describing Soot.
-
-
- A set of tutorials describing Soot, both as a Java application optimizer and
-as a compiler framework.
-
-
- The Soot API. Most of the
-functionality is self-explanatory. This API is included in the Soot
-distribution.
-
-
- The Soot source itself. It is full of examples on how to use the API.
-
-
-
-Mailing List:
-If you have questions about Soot use the Soot Mailing List. Note: You must subscribe before posting and you must post from the same address with which you used to subscribe.
-
-You can also view the recent list archives.
-
-
-
-
-Wiki:
-See the new Soot Wiki for up-to-date information. The Soot team will be using this site for discussing upcoming work, so if you would like to know what is going on look there.
-
-
-
-Bugzilla:
-Use new Soot Bugzilla. We encourage you to add any Soot bugs there.
-
-
-
-
-
-
-
-
-
-Click here for the complete list of contributors and acknowledgements.
-
-
-
-
-
-
-
-
-
-
-We maintain a list of people and projects that are making use of Soot:
-HTML
-PDF
-
-
-
-Please let us know if you would like to be added to this list or have
-the description of your project updated.
-
-
-
-
-
-
-
-
-
-
-
- Last updated on Mar 18, 2006
-
-
-
-
- |
-
-