[ccache] Ccache version 4.4 has been released
Joel Rosdahl
joel at rosdahl.net
Thu Aug 19 19:34:33 UTC 2021
Ccache version 4.4 is now available. Release archives can be found here:
https://ccache.dev/download.html
New features:
- Made it possible to share a cache over network or on a local filesystem. The
configuration option “secondary_storage”/“CCACHE_SECONDARY_STORAGE”
specifies one or several storage backends to query after the primary local
cache storage. It is also possible to configure sharding (partitioning) of
the cache to spread it over a server cluster using Rendezvous hashing. See
the “Secondary storage backends” chapter in the manual for details.
- Added an HTTP backend for secondary storage on any HTTP server that supports
GET/PUT/DELETE methods. See https://ccache.dev/howto/http-storage.html for
hints on how to set up an HTTP server for use with ccache.
- Added a Redis backend for secondary storage on any server that supports the
Redis protocol. See https://ccache.dev/howto/redis-storage.html for hints on
how to set up a Redis server for use with ccache.
- Added a filesystem backend for secondary storage. It can for instance be
used for a shared cache over networked filesystems such as NFS, or for
mounting a secondary read-only cache layer into a build container.
- Added “--trim-dir”, “--trim-max-size” and “--trim-method” options that can
be used to trim a secondary storage directory to a certain size, e.g. via
cron.
- Added a configuration option “reshare”/“CCACHE_RESHARE” which makes ccache
send results to secondary storage even for primary storage cache hits.
- Added new statistics counters for direct/preprocessed cache misses, primary
storage hits/misses, secondary storage hits/misses/errors/timeouts and
forced recaches.
- Improved statistics summary. The “-s”/“--show-stats” option now prints a
more condensed overview where the counters representing “uncacheable calls”
are summed as uncacheable and errors counters. The summary shows hit rate
for direct/preprocessed hits/misses, as well as primary/secondary storage
hits/misses. More details are shown with “-v”/“--verbose”. Note: Scripts
should use “--print-stats” (available since ccache 3.7) instead of trying
to parse the output of “--show-stats”.
- Added a “stats log” feature (configuration option
“stats_log”/“CCACHE_STATSLOG”), which tells ccache to store statistics in a
separate log file specified by the user. It can for instance be used to
collect statistics for a single build without interference from other
concurrent builds. Statistics from the log file can then be viewed with
“ccache --show-log-stats”.
- Added support for clang's “--config” option.
- Added support for one “-Xarch_*” option that matches a corresponding
“-arch” option.
- Renamed the “--directory” option to “--dir” for consistency with other
options.
- Made the “--config-path” and “--dir” options affect the whole
command line so
that they don't have to be put before “-s”/“--show-stats”.
- Made “--dump-manifest” and “--dump-result” accept filename “-” for reading
from standard input.
- Made the output of “--print-stats” sorted.
- Added more internal trace points.
Bug fixes:
- Fixed a crash if using “base_dir” and “$PWD” is set to a relative path.
- Fixed a bug with “-fprofile-generate” where ccache could give false
positive cache hits when compiling with relative paths in another
directory.
- Fixed a bug in “debug_dir”/“CCACHE_DEBUGDIR”. The absolute path to the
object file was not created correctly if the object file didn't already
exist.
- Disabled preprocessor hits for pre-compiled headers with Clang again.
- Fixed a problem when using the Gold linker on MIPS by only probing for a
faster linker in dev build mode and on x86_64.
- Made the “-DENABLE_TRACING=1” mode work again.
Changed tooling:
- A C++14 compiler or newer is now required to build ccache. For GCC, this
means version 6 or newer in practice.
- CMake 3.10 or newer is now required to build ccache.
- Asciidoctor is now required to build ccache documentation.
Build/test/documentation improvements:
- Fixed an issue in the modules test suite that showed up when running the
ccache test suite with the clang wrapper provided by Nixpkgs.
- Made the nvcc_ldir test suite require a working NVCC.
- Made the ivfsoverlay test suite more robust.
- Fixed issue with usage of “/FI” when building ccache with MSVC.
- Fixed Apple Clang detection in the integration test suite.
- Made clang the default compiler when running the test suite on macOS.
- Silenced stray printout from "-P -c" test case.
- Fixed selection of the ccache binary to use when running the test suite
with multi-config generators like Xcode.
- Fixed CMake feature detection for “ctim”/“mtim” fields in “struct stat”.
- Fixed issue with not linking to .lib correctly on Windows.
- Made it possible to override “CCACHE_DEV_MODE” on the command line.
- Improved HTML documentation style.
Contributors (in alphabetical order) to this release:
- Anders F Björklund
- Arne Hasselbring
- Gregor Jasny
- Joel Rosdahl
- Michael Kruse
- Orgad Shaneh
- R. Voggenauer
- Ryan Burns
- Tom Stellard
Thanks!
-- Joel
More information about the ccache
mailing list