Migrate iai-callgrind to the renamed successor gungraun#4056
Migrate iai-callgrind to the renamed successor gungraun#4056gamma0987 wants to merge 2 commits intoGraphiteEditor:masterfrom
Conversation
There was a problem hiding this comment.
Code Review
This pull request migrates the project's benchmarking infrastructure from iai-callgrind to gungraun. The changes include updating workspace and package-level Cargo.toml files, updating Cargo.lock, renaming benchmark targets and files, and adjusting imports in the benchmark source code. The .gitignore file was also updated to include .nvim.lua. I have no feedback to provide.
There was a problem hiding this comment.
1 issue found across 11 files
Confidence score: 3/5
- There is a concrete CI regression risk:
.github/workflows/comment-profiling-changes.yamlruns baseline benchmarks onmasterwith renamed*_gungrauntargets that are not present there. - Because the issue is severity 7/10 with high confidence (9/10), this is more than a minor housekeeping concern and could cause benchmark baseline generation to fail in normal workflow runs.
- Pay close attention to
.github/workflows/comment-profiling-changes.yaml- baseline benchmark commands need to match targets that actually exist onmasterto avoid CI failures.
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name=".github/workflows/comment-profiling-changes.yaml">
<violation number="1" location=".github/workflows/comment-profiling-changes.yaml:65">
P1: Baseline benchmarks are executed on `master` using renamed `*_gungraun` targets that do not exist on current `master`, causing CI benchmark baseline generation to fail.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
| run: | | ||
| # Compile benchmarks | ||
| cargo bench --bench compile_demo_art_iai -- --save-baseline=master | ||
| cargo bench --bench compile_demo_art_gungraun -- --save-baseline=master |
There was a problem hiding this comment.
P1: Baseline benchmarks are executed on master using renamed *_gungraun targets that do not exist on current master, causing CI benchmark baseline generation to fail.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/comment-profiling-changes.yaml, line 65:
<comment>Baseline benchmarks are executed on `master` using renamed `*_gungraun` targets that do not exist on current `master`, causing CI benchmark baseline generation to fail.</comment>
<file context>
@@ -66,34 +53,34 @@ jobs:
run: |
# Compile benchmarks
- cargo bench --bench compile_demo_art_iai -- --save-baseline=master
+ cargo bench --bench compile_demo_art_gungraun -- --save-baseline=master
# Runtime benchmarks
</file context>
|
The code looks good, a bit of a shame we can't test the full ci workflow before merging the pr |
|
I'm sorry I can't help with that. |
f07c79b to
76938eb
Compare
Migrate from iai-callgrind to gungraun
Summary
iai-callgrindwithgungraunand update it from v0.16 to v0.18*_iai.rs->*_gungraun.rs) and their corresponding[[bench]]entriesuse iai_callgrind::{…}->use gungraun::prelude::*iai-callgrind-runnerinstallation with thegungraun/setup-gungraun@v1action.target/iaitotarget/gungraunOther minor changes:
.nvim.luato.gitignoredeny.tomladvisory comment to referencegungrauninstead ofiai-callgrindAdvantages of using the
setup-gungraunaction in the CI:The action always tries to install the latest
valgrindversion. The action automatically installs the gungraun version which is used in the project, so the CI workflow no longer needs updates when bumping the gungraun version. Note that gungraun outputs the same json format as iai-callgrind, so no changes required here.I changed the cache key since just changing the path from
target/iaitotarget/gungraunmight not change the cache hit output from theactions/cacheaction. So, Baselines and cache will be rebuilt from scratch on the next CI run.