Tse26#217
Conversation
Adding partial results
There was a problem hiding this comment.
Pull request overview
This PR extends the Soot output-processor runner to (a) let users choose the call graph algorithm via -cg/--callgraph and (b) optionally keep partial results when an analysis times out via -prt/--partial-results-on-timeout.
Changes:
- Added CLI flags for call graph selection (
-cg) and partial-results-on-timeout (-prt), plus documentation updates. - Plumbed call graph option into Soot config generation and refactored algorithm constructors to accept it.
- Introduced timeout-handling changes in
ConflictDetectionAlgorithmto optionally return partial results.
Reviewed changes
Copilot reviewed 8 out of 9 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/main/services/outputProcessors/soot/RunSootAnalysisOutputProcessor.groovy | Adds propagation hook for partial-results-on-timeout across configured algorithms. |
| src/main/services/outputProcessors/soot/README.md | Documents new -cg and -prt flags. |
| src/main/services/outputProcessors/soot/NonCommutativeConflictDetectionAlgorithm.groovy | Consolidates constructors and adds call graph option to generated Soot configs. |
| src/main/services/outputProcessors/soot/Main.groovy | Wires partial-results-on-timeout flag and starts passing call graph into some algorithm constructions. |
| src/main/services/outputProcessors/soot/ConflictDetectionAlgorithm.groovy | Adds call graph option, partial-results-on-timeout behavior, and new timeout/output-thread handling. |
| src/main/services/outputProcessors/soot/arguments/Arguments.groovy | Adds fields/getters/setters for call graph + partial-results-on-timeout. |
| src/main/services/outputProcessors/soot/arguments/ArgsParser.groovy | Adds parsing/validation for -cg and -prt. |
| README.md | Normalizes Gradle build command to ./gradlew. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if (this.options.r) { | ||
| args.setReachability(true) | ||
| } | ||
| if (this.options.cg) { |
There was a problem hiding this comment.
@barbosamaatheus se o usuário não usar a opção cg, qual o algoritmo padrão usado? deveria ser o mesmo usado antes, para mantermos compatibilidade com experimentos anteriores; não termos que alterar experimentos anteriores para adicionar essa opção
There was a problem hiding this comment.
Sim, é o mesmo @pauloborba.
Se não passar ele vai usar o SPARK.
A diferença é que agora as analises lidam melhor com o grafo nas novas versões do que antes.
Mas se alguem usar a versão da analise antiga com a versão nova do mining o resultado será o mesmo.
Uh oh!
There was an error while loading. Please reload this page.