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 _______________________________________________ ccache mailing list ccache@lists.samba.org https://lists.samba.org/mailman/listinfo/ccache