[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