From c8bb54bcb7fde0bf9f93fb3173ac4551886c4876 Mon Sep 17 00:00:00 2001 From: Eric Bodden Date: Sun, 22 Jan 2012 12:05:34 +0000 Subject: [PATCH] --- CHANGES | 29 +++++----------------- Release_Notice | 65 +++++++++++++++++++++++++++++++++++++++----------- credits | 2 +- 3 files changed, 58 insertions(+), 38 deletions(-) diff --git a/CHANGES b/CHANGES index 0a8187670f2..c02be63323b 100644 --- a/CHANGES +++ b/CHANGES @@ -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 ()". - In particular, there is no target class given. - - Jasmin translates this into an invokedynamic instruction with - two arguments: - a) a NameAndType attribute referring to - () 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 @@ -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 diff --git a/Release_Notice b/Release_Notice index 184ed486cf7..d702d3b1da0 100644 --- a/Release_Notice +++ b/Release_Notice @@ -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! @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/credits b/credits index 6707e0aea5b..67ce506c931 100644 --- a/credits +++ b/credits @@ -96,7 +96,7 @@ Nomair Naeem (nomain.naeem@mail.mcgill.ca) - Dava decompiler Matthias Perner (snafu@chaos-darmstadt.de) - - invokedynamic support + - inital invokedynamic support based on JDK7 beta Chris Pickett (cpicke@sable.mcgill.ca) - documentation