Skip to content

Commit

Permalink
No commit message
Browse files Browse the repository at this point in the history
  • Loading branch information
Eric Bodden committed Jan 22, 2012
1 parent baa7df3 commit c8bb54b
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 38 deletions.
29 changes: 6 additions & 23 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,8 @@ Improvements and API changes in trunk
course, such an analysis may be unsound - you get what you are asking
for.
5. Added new packs "wjpp" and "wspp" for adding pre-processors.
6. Thanks to Matthias Perner, added support for handling invokedynamic
instructions. The instructions are handled as follows:
- On the Jimple, Grimp and Baf level, invokedynamic instructions
appear as DynamicInvokeExpr with a static SootMethodRef that
has class java.dyn.InvokeDynamic as target class. This is in
accordance with the internal handling in JDK 7.
- SootMethodRefs which have java.dyn.InvokeDynamic as target class
may not be resolved: calling resolve() will throw an exception
- On the Jasmin level, invokedynamic instruction appear in the
form "invokedynamic <methodName>(<methodParams>)<methodRetType>".
In particular, there is no target class given.
- Jasmin translates this into an invokedynamic instruction with
two arguments:
a) a NameAndType attribute referring to
<methodName>(<methodParams>)<methodRetType> and
b) the constant "0" (two zero bytes, i.e., a short);
according to the VM spec this is reserved for future use
7. ReflectiveCallsInliner now supports field set/get through reflection.
8. Integrated a novel context-sensitive points-to analysis that uses
6. ReflectiveCallsInliner now supports field set/get through reflection.
7. Integrated a novel context-sensitive points-to analysis that uses
a memory-efficient geometric encoding. The analysis was presented
in the following paper:
Xiao Xiao and Charles Zhang. Geometric Encoding: Forging high
Expand All @@ -51,12 +34,12 @@ Improvements and API changes in trunk
this! You can find the code in soot.jimple.spark.geom. There are
new phase options in cg.spark to enable and configure this
analysis.
9. Improved support for custom entry points in the points-to analysis.
10.Added option allowing putiry analysis to add a "Pure" bytecode
8. Improved support for custom entry points in the points-to analysis.
9. Added option allowing putiry analysis to add a "Pure" bytecode
attribute for pure methods.
11.GenericAttribute instances are now automatically read from class
10.GenericAttribute instances are now automatically read from class
files and stored in class files.
12.Soot now has virtually complete support for invokedynamic.
11.Soot now has virtually complete support for invokedynamic.
See tutorial/invokedynamic for details.

Improvements and API changes in version 2.4.0
Expand Down
65 changes: 51 additions & 14 deletions Release_Notice
Original file line number Diff line number Diff line change
@@ -1,19 +1,52 @@
Dear Soot Users,

We are pleased to announce that Soot version 2.4.0 is now available
We are pleased to announce that Soot version 2.5.0 is now available
at: http://www.sable.mcgill.ca/soot/

This release contains the following additions and improvements:

1. Hossein Sadat-Mohtasham's implementation of program dependency graphs

2. Support for creating sound call graphs even for programs that use
reflection, custom class loaders and runtime-generated classes.
For this purpose, Soot uses TamiFlex to create a runtime log file that
contains information about how refleciton is being used. Spark then
uses the log file during call-graph and points-to graph construction.
See http://code.google.com/p/tamiflex/wiki/DaCapoAndSoot for details.

1. Modified SourceLocator so that it will automatically load a SootClass
from Soot's own JAR file if the class cannot be found on the
soot-classpath, but ONLY if the class is in package soot.rtlib.
See package documentation for soot.rtlib for more details.
2. The option -process-dir how has an alias -process-path, which makes
sense because Soot can also process JAR files. Also, -keep-line-numbers
now defaults to true. This is because so many people ask about how to
access line numbers.
3. Removed "org.apache" package from the default excludes list because
that, by default, leads to Soot not analyzing anything of tomcat, for
instance. This change follows the principle of least surprise.
4. Added option no-bodies-for-excluded that allows soot This
option causes Soot to not load any method bodies of classes from the
"exclude" packages (see -exclude option), even in whole-program mode,
unless the class is explicitly as a "basic class".
-no-bodies-for-excluded implies -allow-phantom-refs, as it uses the
phantom-refs mechanism to model classes that are not loaded.
The intent of this flag is to allow whole-program analyses to execute
quickly on little toy examples, disregarding the Java runtime. Of
course, such an analysis may be unsound - you get what you are asking
for.
5. Added new packs "wjpp" and "wspp" for adding pre-processors.
6. ReflectiveCallsInliner now supports field set/get through reflection.
7. Integrated a novel context-sensitive points-to analysis that uses
a memory-efficient geometric encoding. The analysis was presented
in the following paper:
Xiao Xiao and Charles Zhang. Geometric Encoding: Forging high
performance context sensitive points-to analysis for Java.
In ISSTA 2011: International Symposium on Software Testing and
Analysis, Toronto, Canada, 2011
The code was contributed to Soot by Richard (Xiao) Xiao. Thanks for
this! You can find the code in soot.jimple.spark.geom. There are
new phase options in cg.spark to enable and configure this
analysis.
8. Improved support for custom entry points in the points-to analysis.
9. Added option allowing putiry analysis to add a "Pure" bytecode
attribute for pure methods.
10.GenericAttribute instances are now automatically read from class
files and stored in class files.
11.Soot now has virtually complete support for invokedynamic.
See tutorial/invokedynamic for details.

Also we incorporated fixes to numerous bugs. Thanks for reporting bugs
and/or providing fixes!

Expand All @@ -28,7 +61,11 @@ http://svn.sable.mcgill.ca/wiki/index.php/SootProject. The Soot team
will be using this site for discussing upcoming work, so if you would
like to know what's going on look there.

Regards,

Eric Bodden
Software Technology Group, Technische Universit�t Darmstadt
Have fun,
Eric
--
Eric Bodden, Ph.D., http://bodden.de/
Head of Secure Software Engineering Group at EC SPRIDE
Principal Investigator in Secure Services at CASED
Tel: +49 6151 16-75422� � Fax: +49 6151 16-72051
Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt
2 changes: 1 addition & 1 deletion credits
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ Nomair Naeem ([email protected])
- Dava decompiler

Matthias Perner ([email protected])
- invokedynamic support
- inital invokedynamic support based on JDK7 beta

Chris Pickett ([email protected])
- documentation
Expand Down

0 comments on commit c8bb54b

Please sign in to comment.