Skip to content

v1.1.0

Compare
Choose a tag to compare
@swissiety swissiety released this 26 May 12:09
· 1745 commits to develop since this release
62f9959

👀 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