Use ccache for stage0 tool builds#136942
Conversation
|
@bors try |
Use ccache for stage0 tool builds r? `@ghost`
|
☀️ Try build successful - checks-actions |
|
@bors try |
Use ccache for stage0 tool builds r? `@ghost`
|
☀️ Try build successful - checks-actions |
|
@bors try |
Use ccache for stage0 tool builds r? `@ghost`
|
Looks like this will need a newer version of sccache, testing in a different PR. |
e6eb61c to
d3d174f
Compare
|
@bors try |
Use ccache for stage0 tool builds r? `@ghost`
|
☀️ Try build successful - checks-actions |
|
@bors try |
Use ccache for stage0 tool builds r? `@ghost`
|
☀️ Try build successful - checks-actions |
|
@bors try Full build without Rust sccache. |
Use ccache for stage0 tool builds r? `@ghost`
|
☀️ Try build successful - checks-actions |
9aaa9f6 to
ad72ae3
Compare
|
💔 Test failed
|
|
@bors2 try |
Use ccache for stage0 tool builds r? `@ghost` try-job: `x86_64-gnu-llvm-19*` try-job: `x86_64-msvc*` try-job: `x86_64-apple*` try-job: `dist-x86_64-linux`
|
@bors2 try |
Use ccache for stage0 tool builds r? `@ghost` try-job: `x86_64-gnu-llvm-19*` try-job: `x86_64-msvc*` try-job: `x86_64-apple*` try-job: `dist-x86_64-linux`
|
@bors r+ rollup=iffy |
|
☀️ Test successful - checks-actions |
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing 2f17612 (parent) -> aae43c4 (this PR) Test differencesNo test diffs found Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard aae43c4532690153af7465227816c93036bb1604 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
Finished benchmarking commit (aae43c4): comparison URL. Overall result: ❌ regressions - please read the text belowOur benchmarks found a performance regression caused by this PR. Next Steps:
@rustbot label: +perf-regression Instruction countThis is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.
Max RSS (memory usage)Results (primary -0.8%, secondary -3.2%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResults (primary 2.9%, secondary 2.8%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeResults (primary 1.1%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Bootstrap: 744.283s -> 745.073s (0.11%) |
|
perf triage: The regression is spurious, the affected benchmark is bi-modal. This PR also doesn't change any runtime code. @rustbot label: +perf-regression-triaged |
Bump sccache in CI to 0.9.1 We haven't updated the used sccache version for years, it has accrued a bunch of fixes and features in the meantime. It now supports the `--show-adv-stats` flag, which gives a more detailed summary of the results of caching. And it can also cache Rust code, which could be useful in the future (rust-lang/rust#136942 - although now there are no large wins). It also supports caching PGO now, but since the PGO profiles are always different, it won't make any real difference. rust-lang/rust#133076 previously tried to update the version to 0.3 (CC `@klensy)` r? `@marcoieni`


Now after the stage0 redesign, we can actually start ccaching the build of the compiler itself. We can also cache the bootstrap tools, since these are also built with the stage0 compiler.
Stage0 compiler builds are now being cached: https://github.com/rust-lang/rust/actions/runs/15397246267#summary-43321151192 (
..bootstrap::core::build_steps::compile::Rustc 483.10s 40.41s -91.6%). It's not a gigantic win everywhere, but it should help. It seems to make the Linux jobs ~10 minute faster. It should be especially useful on PR builds after #141948.r? @jieyouxu
try-job:
x86_64-gnu-llvm-19*try-job:
x86_64-msvc*try-job:
x86_64-apple*try-job:
dist-x86_64-linux