sccache 0.16.0
Summary
sccache 0.16.0 is a smaller, stabilizing release on top of 0.15.0's multi-tier caching work, with a few new capabilities:
- Read-only backends: Any storage backend can now be marked read-only, not just a select few (#2705).
- Remote execution on aarch64: Distributed/remote execution now works on Linux aarch64, including fixes for
lddoutput parsing and toolchain packaging on non-x86_64 Linux (#2668). - CUDA:
nvcc's--dependency-outputargument is now handled (#2708). - Resilience: Fall back to a direct cache write when tempfile creation on the same filesystem fails (#2369), and give a meaningful error when a multi-level chain references a backend that wasn't compiled in (#2695).
- Client efficiency: The client and dist-client now use a single-threaded tokio runtime, avoiding a thread explosion when many short-lived clients run on many-core hosts (#2704).
- Correctness: Strip
SCCACHE_BASEDIRSfrom escaped-backslash paths on Windows (#2736), ignore empty-set environment values in config (#2639), and avoid the sccache wrapper when resolving the real compiler (#2720). - Security/logging: JWT keys and cert digests are now base64-encoded in logs (#2712), plus general logging improvements (#2734).
Welcome to 4 new contributors!
Features
- feat: all backends support making them as read-only by @AJIOB in #2705
- Enable RE on Linux-aarch64 by @malfet in #2668
- feat(nvcc): support argument:
--dependency-outputby @ZRHann in #2708 - feat: avoid sccache wrapper when resolving compiler by @iTrooz in #2720
- Fall back to direct cache write if tempfile creation on the same fs fails by @myzhang1029 in #2369
- Don't wait depfiles for gcc/clang preprocessed inputs by @AJIOB in #2665
Fixes
- fix: strip SCCACHE_BASEDIRS from escaped-backslash paths on Windows by @rconde01 in #2736
- fix: ignore empty-set environment values for config by @AJIOB in #2639
- fix: handle disabled cache backend features in multilevel chain by @cryptomilk in #2695
- fix: use single-threaded tokio runtime in sccache (dist-)client by @AJIOB in #2704
- fix: add newline when printing dist-status to stdout by @iTrooz in #2710
Logging
- chore: encode jwt key and cert digest with base64 in logs by @iTrooz in #2712
- Slightly improve logging by @glandium in #2734
Cleanup
- chore: make clippy happy by @AJIOB in #2727
- Extract new_client_runtime() helper to DRY up client runtime creation by @sylvestre in #2744
New Contributors
- @ZRHann made their first contribution in #2708
- @myzhang1029 made their first contribution in #2369
- @malfet made their first contribution in #2668
- @rconde01 made their first contribution in #2736
Full Changelog: v0.15.0...v0.16.0