Repository navigation
build(deps): update coretrace-stack-analyzer to v0.23.1 - #194
Merged
Merged
Conversation
v0.22.0 took 30 minutes to analyze CoreTrace's own 22 translation units in an unoptimized build (3 minutes in Release); v0.23.0 takes 5 (1.5 in Release). The gain is coretrace-stack-analyzer#187, which computes the ownership summaries with fewer solves and rounds. It also drops v0.22.0's false positives on string_view parameters passed by value. The bridge needs no change. Closes #169
v0.23.0 does not build with AppleClang 15, the compiler of the macos-14 runner: a lambda captures a structured binding (coretrace-stack-analyzer#228). v0.23.1 is v0.23.0 with that capture fixed, cut from the analyzer's release/v0.23 branch so that coretrace-compiler stays on the commit the concurrency analyzer uses. Refs #169
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Updates coretrace-stack-analyzer from v0.22.0 to v0.23.1. v0.22.0 takes 30 minutes to analyze CoreTrace's own code in an unoptimized build, and v0.23.1 takes 5. The gain comes from CoreTrace/coretrace-stack-analyzer#187, which computes the ownership summaries with fewer solves and rounds; the measurements are in CoreTrace/coretrace-stack-analyzer#227.
v0.23.1 is v0.23.0 plus one fix. v0.23.0 does not build with AppleClang 15, the compiler of the
macos-14runner: the first push of this pull request failed there (CoreTrace/coretrace-stack-analyzer#228). v0.23.1 is cut from the analyzer'srelease/v0.23branch. Itsmainalso updates coretrace-compiler to v0.10.0, and CoreTrace refuses to configure with it while the concurrency analyzer stays on 866fa76 (cmake/concurrencyAnalyzer.cmake:45).The bridge (
src/Process/Tools/StackAnalyzerToolImplementation.cpp) needs no change: the report format is unchanged, and rule identifiers pass through as they are.Closes #169
How it was tested
ctrace --compile-commands <CoreTrace's 22 translation units> --invoke ctrace_stack_analyzer, with a fresh cache and one run at a time:ReleaseRelease,-Werrorremoved from the databaseThese runs used the analyzer at 0668fb8 (v0.23.0); v0.23.1 only changes how one lambda captures a variable. On macOS,
-Werrorhas to be removed from the database: otherwise both versions stop onsrc/App/Config.cpp, on a deprecation warning that only the analyzer's libc++ emits (CoreTrace/coretrace-stack-analyzer#214, not fixed by this update).With v0.23.1, on macOS arm64 (AppleClang 17, LLVM 20),
Release:ctest --test-dir build --output-on-failure: 77/77;./scripts/format-check.sh(clang-format 20) andscripts/release/check-pinned-dependencies.shpass.With v0.23.0,
ctest(77/77) and the F7 harness also pass on Linux. AppleClang 15 is checked by CI'smacos-14job.On CoreTrace's own code, the diagnostics go from 70 infos and 3 warnings to 67 infos and 7 warnings:
string_viewparameters passed by value are gone;StackPointerEscapewarnings appear atinclude/Process/Tools/ToolsInvoker.hpp:300. They are a false positive, tracked in False positive: StackPointerEscape on the caller of a function that passes the address to a virtual call coretrace-stack-analyzer#226.There is no new test: the defect was the running time, and the test policy keeps tests independent of timing. The existing tests cover the bridge.
Checklist
fix(cli): handle missing input.ctest --test-dir build --output-on-failurepasses../scripts/format-check.shpasses.docs/or the help text follow the change, if users see it.