Skip to content

v0.17.0

Latest

Choose a tag to compare

@github-actions github-actions released this 29 Jul 06:21

sccache 0.17.0

Summary

sccache 0.17.0 is a significant release: it introduces a new client-side architecture.

Until now, every compilation was handed off to the long-lived sccache server, which did the cache
lookup and ran the compiler. In client-side mode, the client process does that work itself - the
server is only consulted for the shared state it owns (compiler info, dist client, stats). This
removes a round-trip and the server-side bottleneck, and gives noticeably better results on
developer workstations.

Client-side mode is opt-in for now: enable it with the SCCACHE_CLIENT_SIDE environment variable
(or the client_side_mode config key). See docs/Architecture.md
for the details.

Other highlights:

  • Response files: gcc/clang builds using quoted @response files are now cached and
    distributed correctly (#2755, #2772), and Rust @argfile arguments are supported (#2782).
  • Distributed compilation: compile tasks and their subprocesses are now aborted when a client
    disconnects, instead of running to completion on the build server (#2761, #2774). The
    ToolchainPackager cfg gate was fixed so the dist code builds on ppc64le and s390x (#2749).
  • S3 SSE-KMS: server-side encryption with KMS keys is now supported (#2770).
  • Diagnostics: gcc color diagnostics now behave the same way as rustc's (#2758).
  • Preprocessor correctness: -ivfsoverlay is treated as a preprocessor-only argument (#2767).

Welcome to 4 new contributors!

Client-side mode

Features

Fixes

  • Fix ToolchainPackager cfg gate to build on ppc64le/s390x by @cryptomilk in #2749
  • treat -ivfsoverlay as a preprocessor-only argument by @glandium in #2767
  • gcc: refine response-file tokenizer visibility and whitespace handling by @sylvestre in #2772
  • Fix description of Unix socket-based Redis connection by @Toorero in #2769

Cleanup

New Contributors

Full Changelog: v0.16.0...v0.17.0