Skip to content

set BytecodeBodyInterceptors as default for BytecodeFrontend based InputLocations#847

Merged
JonasKlauke merged 57 commits intodevelopfrom
remove/ClassloadingOps
Feb 19, 2024
Merged

set BytecodeBodyInterceptors as default for BytecodeFrontend based InputLocations#847
JonasKlauke merged 57 commits intodevelopfrom
remove/ClassloadingOps

Conversation

@swissiety
Copy link
Copy Markdown
Collaborator

@swissiety swissiety commented Feb 8, 2024

  • refactor ClassLoadingOptions away
  • set default BytecodeInterceptors
  • fix duplicate predecessorBlocks in StmtGraph
  • fix StmtGraph.removeNode() -> keep correct/all predecessor information of a deleted block to the new succesor
  • fix the Interceptor that does not update the Set of Locals when it removes Stmts that eliminate Local defs&usages (The TypeAssigner has Locals that do not exist DeadassignmentEliminator: remove Locals, too (investigate TypeAssigner did weird with that wrong info and failed!)
  • adapt testcases that were designed for use without interceptors to not use the default interceptors

tried to extract these to keep the changed files smaller.. unfortunately lead to more errors that are already fixed here.

@swissiety swissiety force-pushed the remove/ClassloadingOps branch from 3953913 to 78bae3c Compare February 8, 2024 17:07
@swissiety swissiety changed the title refactor ClassLoadingOptions refactor ClassLoadingOptions away Feb 8, 2024
@swissiety swissiety force-pushed the remove/ClassloadingOps branch from 78bae3c to a7762ee Compare February 8, 2024 19:12
@swissiety swissiety changed the title refactor ClassLoadingOptions away refactor ClassLoadingOptions away and set BytecodeBodyInterceptors as default for JavaClassPathAnalysisInputLocation Feb 8, 2024
@swissiety swissiety changed the title refactor ClassLoadingOptions away and set BytecodeBodyInterceptors as default for JavaClassPathAnalysisInputLocation refactor ClassLoadingOptions away and set BytecodeBodyInterceptors as default for BytecodeFrontend based InputLocations Feb 8, 2024
@swissiety
Copy link
Copy Markdown
Collaborator Author

swissiety commented Feb 8, 2024

something is weird - log says: "sootup.java.bytecode.frontend.AsmMethodSourceTest Error: testNestedMethodCalls(sootup.java.bytecode.frontend.AsmMethodSourceTest)" but the test should not be available in the check run of 3ace299 i.e. before I merged develop in which the testcase already exists?

--> the pipeline runs on a merged branch of targetBranch + currentBranch

@swissiety swissiety changed the title refactor ClassLoadingOptions away and set BytecodeBodyInterceptors as default for BytecodeFrontend based InputLocations set BytecodeBodyInterceptors as default for BytecodeFrontend based InputLocations Feb 9, 2024
@JonasKlauke
Copy link
Copy Markdown
Collaborator

Did this change the public api? If not should we release a 1.2.1 with this

@swissiety
Copy link
Copy Markdown
Collaborator Author

Did this change the public api? If not should we release a 1.2.1 with this

it should not break from the API from a compilation side -( it was basically an extension/overloading of constructors + fixing stuff in this journey) - but the intention of applying interceptors by default now should be a new minor++ release

# Conflicts:
#	sootup.java.bytecode/src/main/java/sootup/java/bytecode/interceptors/CastAndReturnInliner.java
#	sootup.java.bytecode/src/main/java/sootup/java/bytecode/interceptors/ConstantPropagatorAndFolder.java
#	sootup.java.bytecode/src/main/java/sootup/java/bytecode/interceptors/CopyPropagator.java
@JonasKlauke JonasKlauke merged commit 917133e into develop Feb 19, 2024
@JonasKlauke JonasKlauke deleted the remove/ClassloadingOps branch February 19, 2024 14:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants