Releases: soot-oss/SootUp
Releases · soot-oss/SootUp
v1.3.0
👀 Features
- Qilin PTA by @swissiety in #786
- implement OnTheFlyCompileAnalysisInputLocation by @swissiety in #951
- CheckInitValidator changes by @akshitad11 in #822
- Class modifiers validator changes by @akshitad11 in #842
- Method signature validator by @akshitad11 in #860
- AnalysisInputLocation for Jimple as String by @swissiety in #868
- Adding FieldModifiersValidator and test cases by @akshitad11 in #892
- add backward analysis by @shenjunjiekoda in #900
- Add deterministic printing option by @stschott in #919
- add
ReversePostOrderBlockTraversal
and updateDominanceFinder
by @shenjunjiekoda in #928 - Types validator changes by @akshitad11 in #929
🔀 Refactorings/API Changes
- Rewrite
LocalSplitter
by @Timbals in #841 - Refactor/new localsplitter by @swissiety in #848
- Improve/interceptors by @swissiety in #858
- set BytecodeBodyInterceptors as default for BytecodeFrontend based InputLocations by @swissiety in #847
- Streamification of getUses() and ...Defs() by @swissiety in #862
- Use more precise type by @Liyw979 in #871
- Variables with the same debugname, used in different scopes for different memory, leads to ambiguities and multiple Locals of the same name by @swissiety in #876
- precompute hashCode for JavaClassType and SootClassMemberSignature by @Liyw979 in #881
- replace locals in body builder after types are resolved by @guiyj in #877
- name the Local for the "this" reference: this by @swissiety in #879
- Make JavaView more functional style by @Liyw979 in #882
- enable TypeAssigner by default and explain BodyInterceptors by @swissiety in #883
- Adapt IdentityValidator with test cases by @Momo-Not-Emo in #867
- Adapt method validator and add test cases by @Momo-Not-Emo in #866
- improve validator by @swissiety in #884
- Adapt traps validator from old soot with a test case by @Momo-Not-Emo in #872
- Changed interceptors package by @palaniappan1 in #887
- remove arbitrarily chosen upper limit from testcase by @swissiety in #893
- Legacy Jimple Parsing - Transient modifier by @stschott in #909
- Add check for redundant trap handlers by @stschott in #910
- Transfrom varargs method modifier back into transient by @stschott in #913
- update implementation for
BackwardsStmtGraph
and addPostDominanceFinder
utility by @shenjunjiekoda in #921 - create issue templates by @swissiety in #926
- Deleting Values validator by @akshitad11 in #904
- simplify LRUCache implementation - make use of LinkedHashmap+3rd ctor by @swissiety in #931
- Improve performance - get rid of block.indexOf(Stmt) by @swissiety in #933
- streamify TypeHierarchy by @swissiety in #927
- Improve the expandability of the RTA call graph algorithm by @JonasKlauke in #949
👷 Fixes
- fix cast error for
Operand
s with side effects by @Timbals in #846 - fix inlineExceptionHandler /java.bytecodefrontend by @swissiety in #857
- Fix develop state & method sub signature equals by @swissiety in #864
- fix the
TypeAssigner
/TypeResolver
by @Timbals in #869 - fix StmtGraph.replaceNode(sameStmt, sameStmt) and Stmt.withNewUse() by @swissiety in #885
- fix bad import by @swissiety in #891
- fix failing Aggregator by @swissiety in #912
- Fix self-referencing issue in
getMethodSignatureInSubClass
atICFGDotExporter
by @shenjunjiekoda in #920 - Fix/stmtgraphiterator by @swissiety in #922
- Fix not all traps are iterated in ctx/LabelNode as last instruction by @swissiety in #940
- Fix Type.getValueBitSize in case of a CharType by @marcus-h in #943
- Avoid a potential CCE in Position.equals by @marcus-h in #945
- Fix method sub signature by @swissiety in #944
- fix equals to check for same type by @JonasKlauke in #946
- fix qilin javadoc by @kadirayk in #950
- Reenable previously broken test by @ThexXTURBOXx in #878
- improve Aggregator performance by @swissiety in #916
🛠️ Dependency Updates
- Migrate test system from junit 4 to junit 5 by @JonasKlauke in #856
- Sync antlr-runtime and antlr-maven-plugin versions to get rid of warning by @stschott in #918
📜 Docs
- Update installation.md by @ReshmaSobhaNair in #844
- Update getting-started.md by @ReshmaSobhaNair in #840
- fix doc: add missing colons by @swissiety in #908
❤️ Contributors
Thank you to all contributors of this release 👍
✨ Welcome New Contributors!
- @guiyj made their first contribution in #877
- @Momo-Not-Emo made their first contribution in #867
- @shenjunjiekoda made their first contribution in #900
- @marcus-h made their first contribution in #943
Full Changelog: v1.2.0...v1.3.0
v1.2.0
👀 Features
- Dot Exporter and Write to a file by @palaniappan1 in #618
- Icfg dot exporter by @palaniappan1 in #640
- Allow partial analysis for CallGraphAlgorithm by @Liyw979 in #711
- port intraprocedural analysis and fix the long tail.. by @swissiety in #664
- Single file analysis by @ReshmaSobhaNair in #699
- allow to specify explicitly which StmtPrinter to use by @stschott in #779
- NewValidator Changes by @akshitad11 in #733
- FieldRef validator changes by @akshitad11 in #791
- Locals validator test by @akshitad11 in #833
🔀 Refactorings/API Changes
- open up the api to easier adapt the current call graph algorithm or… by @JonasKlauke in #633
- refactor weird naming PackageName.getPackageName() by @swissiety in #646
- :bytecodefrontend add linenumber info to assignment stmts from the operand stack by @swissiety in #654
- Improve/unify identifier factory references by @swissiety in #648
- use cached values i.e. for the typehierarchy by @swissiety in #658
- adapted incompleteSuperclassesOf to the new thrown exception in the c… by @JonasKlauke in #681
- unify the parameter order; remove 'convenvience' method with unnecess… by @swissiety in #720
- Optimize/asmmethodsource loop unroll remove necessity to reverse by @swissiety in #722
- Improve CHA runtime and improve InvokeInterface resolving by @JonasKlauke in #734
- merge Project and View by @stschott in #752
- New API: get method by name by @Liyw979 in #777
- Remove the over-complicated generics by @stschott in #784
- Revert/dollar sign flood by @swissiety in #814
HasPosition
Interface by @DavidBakerEffendi in #818- improve concurrency in the JavaView by @swissiety in #828
- open up parameter type by @swissiety in #837
👷 Fixes
- remove unused lib by @kadirayk in #636
- Fix/jimple parser quotes by @stschott in #632
- Annotation issue by @palaniappan1 in #637
- Minor Change in exportAsDot by @palaniappan1 in #638
- Split Modifiers to resolve flag clashes by @JonasKlauke in #661
- Fix improve analysisinputlocation ctors by @swissiety in #649
- fix parsing of double types with infinity/NaN values by @stschott in #660
- Fix null<>nonnull w/Position by @swissiety in #663
- Fix/file extension and class source handling by @JonasKlauke in #672
- remove incomplete multi release handling in the class type generation… by @JonasKlauke in #680
- fix aggregator combining variables even when conflicting uses exist by @Timbals in #700
- Don't throw execption when class not found in resolveConcreteDispatch by @Liyw979 in #707
- Fix some issues in
MutableBlockStmtGraph
by @Timbals in #708 - Remove typo by @Dnyanu76 in #712
- Fix/invoke dynamics by @JonasKlauke in #666
- Fix two issues with DominanceFinder by @tybug in #744
- fix issues with the java bytecode frontend by @Timbals in #742
- Fix Aggregator, TypeAssigner, LocalNameStandardizer by @swissiety in #741
- not throw exceptions when class of annotation not found by @Liyw979 in #726
- input locations: check if specified path exists by @swissiety in #740
- fix < in doc by @swissiety in #755
- Fix/array type assignment in cast by @swissiety in #757
- changed the fixed snapshot version of SootUp modules used as dependencies to the project version by @JonasKlauke in #758
- remove internal dependencyManagement by @Timbals in #761
- Fix CallGraphAlgorithm.addClass(..) implementation by @swissiety in #783
- fix merging outputLocals when they are refering to the same Local by @swissiety in #785
- fix the print of field signatures by @stschott in #793
- Deleting CheckVoidLocalesValidator.java by @akshitad11 in #809
- fix filesystem caching issues by @swissiety in #821
- fix immediate inlining over trap ranges by @Timbals in #824
- fix TypeResolver using field references incorrectly by @Timbals in #825
- fix #682 from path by @swissiety in #738
🛠️ Dependency Updates
- update guava dependency by @JonasKlauke in #629
- bump dex2jar to v64 by @stschott in #659
- Migrate dex2jar to Maven Central by @ThexXTURBOXx in #768
📜 Docs
- Added citation meta data to enable easy citation by @JonasKlauke in #657
- Add info about source code frontend by @stschott in #676
- add javadoc link to readme by @stschott in #685
- improved the getting started documentation by @JonasKlauke in #689
- Update README.md by @bhargavshirin in #721
- update version in doc:installation automatically by @swissiety in #735
- Update README.md by @JonasKlauke in #754
- fix workflow permission for gh-pages by @swissiety in #764
- Update whatsnew.md by @czekster in #776
- fix ci: gh pages by @swissiety in #778
- Adds repository declaration to installation docs by @rzo1 in #819
❤️ Contributors
Thank you to all contributors of this release 👍
✨ New Contributors
- @Timbals made their first contribution in #700
- @Liyw979 made their first contribution in #707
- @Dnyanu76 made their first contribution in #712
- @bhargavshirin made their first contribution in #721
- @ReshmaSobhaNair made their first contribution in #699
- @tybug made their first contribution in #744
- @ThexXTURBOXx made their first contribution in #768
- @czekster made their first contribution in #776
- @akshitad11 made their first contribution in #733
- @rzo1 made their first contribution in #819
- @DavidBakerEffendi made their first contribution in #818
Full Changelog: v1.1.2...v1.2.0
v1.1.2
v1.1.1
👷 Fixes
❤️ Contributors
Thank you to all contributors of this release 👍
@palaniappan1 @swissiety @kadirayk @stschott @JonasKlauke @ox1234 @themoep @ayanamists
v1.1.0
👀 Features
- Type Assigner BodyInterceptor added to enable typing of Locals with currently an unknown type - affects Locals that are coming from Bytecodefrontend/StackLocals
- added a CacheStrategy for Views (enabling MutableViews) or reduced Memory consumption
- Callgraph: added implicit edges for static initializer (clinit) into the call graph generation. Implicit edges to clinit methods are added if a static field is accessed, a constructor is called, a static method is called, or for each entry method of the call graph algorithm. #459
- Callgraph: The concrete implemented method is searched for a dispatch and added to the call graph. If a superclass implements the method then it will create an edge to the method of the superclass instead of the class which does not contain the implemented method. #499
- Callgraph: Default methods of Interfaces are considered as concrete dispatch if no superclass implements the method. #499
🔀 Refactorings/API Changes
- integrate TypeHierarchy into the CallGraph Algorithms so the user does not have to give the view and the typehierarchy which is stored in the view & adapt documentation
- CreateOnDemandView and CreateFullView on Project are replaced by createView
- nodes() is renamed to getNodes() in Stmtgraph
👷 Fixes
- no FatJar release anymore
- Jimple Parser can handle more than ASCII files
- reuse (Java)Local originating from Bytecodefrontend
- fix null entries in Body.getLocals() originating from Bytecodefrontend
- The memory needed to perform the RTA call graph algorithm is cleared after the algorithm.
- The RTA algorithm searches for "new" statements instead of constructor calls, so super class constructor calls are not considered as instantiated #497
- Removed dispatches to covariant methods, since the compiler builds bridge methods which call the covariant method. Bridge methods are generated on the sourcecode and bytecode frontend #497
🛠️ Dependency Updates
- Upgrade to ASM 9.5 #603
- Upgrade to Slf4j 2.0.5
- Upgrade to Slf4j simple 2.0.5
- Upgrade to Guava 31.1-jre
- Upgrade to Apache commons 3.12
- Upgrade to Apache commons io 2.11
- Upgrade to Wala 1.5.9 (last version supported for Java 8)
- All Wala transitive dependencies are fixed to a state that support Java 8
❤️ Contributors
Thank you to all contributors of this release 👍
@kadirayk @stschott @swissiety @wangzun66 @JonasKlauke @ericbodden @niorgai @ceclin