Ccache version 4.4 is now available. Release archives can be found here:

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 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 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

  - 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

  - 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

  - 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

  - 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


-- Joel

ccache mailing list

Reply via email to