Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

set BytecodeBodyInterceptors as default for BytecodeFrontend based InputLocations #847

Merged
merged 57 commits into from
Feb 19, 2024

Conversation

swissiety
Copy link
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 changed the title refactor ClassLoadingOptions refactor ClassLoadingOptions away Feb 8, 2024
@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
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
Collaborator

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

@swissiety
Copy link
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
9 checks passed
@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