sccache 0.15.0
Summary
sccache 0.15.0 brings several notable improvements:
- Multi-tier caching: New support for layered caches with fallback and automatic backfilling between tiers (#2581).
- C++20 modules: Initial (partial) support for compiling C++20 modules (#2516).
- Expanded MSVC support: New flags handled including
d1nodatetime,await:strict(#2617),Y-,YI,Zf(#2663), and the default.pdbextension for/Fd(#2621). - New platforms: loongarch64 support (#2669) and
crt-staticfor riscv64 musl targets (#2683). - ccache interop: Avoid double-caching when ccache is also installed in
PATH(#2524). - Cargo integration:
CARGO_ENCODED_RUSTFLAGSis now excluded from the env var hash to prevent spurious cache misses (#2651), and dep-info handling correctly skips directories (#2676). - Distribution: cargo-binstall metadata for prebuilt binary installation (#2647).
- Reliability fixes: GCS initialization (#2637), Windows
Win32_Securityfeature (#2627), and retries for dist docker image builds (#2677).
This release also includes a large round of clippy-driven cleanups and several CI fixes. Welcome to 7 new contributors!
Features
- Avoid double-caching when ccache is installed in PATH by @avikivity in #2524
- partial c++20 module support by @TroyKomodo in #2516
- Add support for
d1nodatetime&await:strictMSVC flags by @AJIOB in #2617 - msvc: Append the default .pdb extension for the /Fd argument by @ikolomiko in #2621
- msvc: add support for Y-, YI, Zf flags by @AJIOB in #2663
- Implement multiple tiers caching with fallback and backfilling by @Felixoid in #2581
- feat: Add loongarch64 support by @wojiushixiaobai in #2669
- Add cargo-binstall metadata for prebuilt binary installation by @sylvestre in #2647
Fixes
- fix: add Win32_Security feature to windows-sys dependency by @JulienCote in #2627
- Fix GCS initialization by @msuozzo in #2637
- fix: exclude
CARGO_ENCODED_RUSTFLAGSfrom env var hash by @weihanglo in #2651 - fix: handle directories in dep-info source file hashing by @mmastrac in #2676
CI
- Revert "actions: add security audit workflow" by @sylvestre in #2603
- ci: fix artifact_failure action when target dir does not exist by @sylvestre in #2635
- ci: set crt-static for riscv64 musl targets by @wojiushixiaobai in #2683
- Add retry for dists docker image build by @Felixoid in #2677
Clippy & cleanup
- clippy: fix cloned_ref_to_slice_refs lint by @xtqqczze in #2602
- clippy: fix semicolon_if_nothing_returned lint by @xtqqczze in #2601
- clippy: fix cloned_instead_of_copied lint by @xtqqczze in #2605
- clippy: fix explicit_into_iter_loop lint by @xtqqczze in #2616
- clippy: fix unnecessary_semicolon lint by @xtqqczze in #2615
- clippy: fix manual_string_new lint by @xtqqczze in #2609
- clippy: fix ptr_as_ptr lint by @xtqqczze in #2611
- clippy: fix ref_option lint by @xtqqczze in #2608
- clippy: fix from_iter_instead_of_collect lint by @xtqqczze in #2614
- Move PreprocessorCacheModeConfig to src/config.rs by @xis19 in #2604
- Remove benchmark normalize_win_path_utf8 by @sylvestre in #2634
- Move cmake-modules to integration tests by @Felixoid in #2649
Docs
- docs(Rust.md): Add caveats from README by @TheJanzap in #2684
Dependencies
- chore: switch thirtyfour_sync to thirtyfour by @tottoto in #2613
- build(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #2632
- build(deps): bump actions/download-artifact from 5 to 8 by @dependabot[bot] in #2631
- chore(deps): update rust crate quinn-proto to v0.11.14 by @xtqqczze in #2645
New Contributors
- @ikolomiko made their first contribution in #2621
- @JulienCote made their first contribution in #2627
- @msuozzo made their first contribution in #2637
- @weihanglo made their first contribution in #2651
- @wojiushixiaobai made their first contribution in #2669
- @TheJanzap made their first contribution in #2684
- @mmastrac made their first contribution in #2676
Full Changelog: v0.14.0...v0.15.0