]> git.ipfire.org Git - thirdparty/ccache.git/log
thirdparty/ccache.git
2 months agochore: Update copyright years
Joel Rosdahl [Sat, 7 Feb 2026 14:21:01 +0000 (15:21 +0100)] 
chore: Update copyright years

(cherry picked from commit ec039169a4d93f7bae3f3f99762bd0248c9d3bd5)

2 months agochore: Update authors
Joel Rosdahl [Sat, 7 Feb 2026 14:20:21 +0000 (15:20 +0100)] 
chore: Update authors

(cherry picked from commit 1a0c691375ead5eb13b39090de6da8699bc0ae9c)

2 months agochore: Update NEWS
Joel Rosdahl [Sat, 7 Feb 2026 14:19:47 +0000 (15:19 +0100)] 
chore: Update NEWS

(cherry picked from commit 1d35536287570a2033978e5abb98e9e5e5c76b20)

2 months agofix(cmake): Enable assembler compiler conditionally (#1678)
Steffen [Sat, 7 Feb 2026 08:50:14 +0000 (08:50 +0000)] 
fix(cmake): Enable assembler compiler conditionally (#1678)

CMake will call `enable_language` for all languages passed to `project`.
This deduplicates the work and only enables one assembler depending on
the platform.

2 months agorefactor: Remove no longer needed FMT_STRING
Joel Rosdahl [Tue, 3 Feb 2026 19:27:01 +0000 (20:27 +0100)] 
refactor: Remove no longer needed FMT_STRING

fmt checks format arguments without the need of FMT_STRING when using
C++20.

2 months agorefactor: Use C++20 .contains(...) instead of .find() != .end()
Joel Rosdahl [Tue, 3 Feb 2026 19:26:56 +0000 (20:26 +0100)] 
refactor: Use C++20 .contains(...) instead of .find() != .end()

2 months agorefactor: Use C++20 erase_if instead of erase+remove_if
Joel Rosdahl [Tue, 3 Feb 2026 19:26:53 +0000 (20:26 +0100)] 
refactor: Use C++20 erase_if instead of erase+remove_if

2 months agorefactor: Use std::span instead of nonstd::span
Joel Rosdahl [Tue, 3 Feb 2026 19:26:51 +0000 (20:26 +0100)] 
refactor: Use std::span instead of nonstd::span

2 months agochore: Bump required compiler versions
Joel Rosdahl [Tue, 3 Feb 2026 19:26:45 +0000 (20:26 +0100)] 
chore: Bump required compiler versions

2 months agobuild: Require a C++-20 compiler
Joel Rosdahl [Tue, 3 Feb 2026 19:26:38 +0000 (20:26 +0100)] 
build: Require a C++-20 compiler

2 months agobuild: Add missing includes
Joel Rosdahl [Tue, 3 Feb 2026 18:04:54 +0000 (19:04 +0100)] 
build: Add missing includes

2 months agobuild: Disable Clang-Tidy modernize-loop-convert check
Joel Rosdahl [Tue, 3 Feb 2026 18:51:03 +0000 (19:51 +0100)] 
build: Disable Clang-Tidy modernize-loop-convert check

2 months agoci: Use Clang-Tidy 13
Joel Rosdahl [Tue, 3 Feb 2026 18:23:11 +0000 (19:23 +0100)] 
ci: Use Clang-Tidy 13

2 months agobuild: Disable legacy support for downloaded zstd
Joel Rosdahl [Sat, 31 Jan 2026 09:54:32 +0000 (10:54 +0100)] 
build: Disable legacy support for downloaded zstd

This avoids compiling zstd's lib/legacy/zstd_v01.c file which is seen to
trigger -Wmaybe-uninitialized warnings.

Closes #1679.

2 months agoperf: Use copy_file_range to copy files if available (#1680)
Oleg Sidorkin [Sat, 31 Jan 2026 09:46:13 +0000 (12:46 +0300)] 
perf: Use copy_file_range to copy files if available (#1680)

2 months agofix: Rewrite 'inlined from' messages in absolute_paths_in_stderr (#1676)
Enrico Seiler [Tue, 27 Jan 2026 18:39:41 +0000 (19:39 +0100)] 
fix: Rewrite 'inlined from' messages in absolute_paths_in_stderr (#1676)

2 months agochore: Improve GitHub issue templates
Joel Rosdahl [Tue, 27 Jan 2026 18:23:10 +0000 (19:23 +0100)] 
chore: Improve GitHub issue templates

2 months agochore: Improve GitHub issue templates
Joel Rosdahl [Tue, 27 Jan 2026 18:17:48 +0000 (19:17 +0100)] 
chore: Improve GitHub issue templates

3 months agoMerge pull request #1672 from jrosdahl/crsh
Joel Rosdahl [Sun, 25 Jan 2026 10:04:44 +0000 (11:04 +0100)] 
Merge pull request #1672 from jrosdahl/crsh

Add remote storage helper support.

3 months agofeat: Add support for remote storage helpers 1672/head
Joel Rosdahl [Sun, 18 Jan 2026 13:48:06 +0000 (14:48 +0100)] 
feat: Add support for remote storage helpers

This commit adds support for communicating with a remote storage server
using a long-lived local helper process, started by ccache on demand.
The helper process can keep connections alive (thus amortizing the
session setup cost), and knowledge about remote storage protocols can be
kept out of the ccache code base, making it possible to develop and
release support for different storage server protocols independently.

The storage helper listens to a Unix-domain socket on POSIX systems and
a named pipe on Windows systems. Ccache communicates with it using a
custom IPC protocol, described in doc/remote_storage_helper_spec.md. The
helper is named ccache-storage-<scheme> (e.g. ccache-storage-https) and
can be placed in $PATH, next to the ccache executable or in ccache's
libexec directory. Storage helpers time terminate after a while on
inactivity.

Built-in support for http and redis is kept for now but will likely be
removed in a future ccache release.

- The syntax of the remote_storage/CCACHE_REMOTE_STORAGE configuration
  option has been improved (in a backward compatible way): What used to
  be called "attributes" are now split into "properties" and "custom
  attributes", where properties are things that ccache knows about and
  acts on (e.g. read-only and shards) while attributes are custom
  key-value pairs sent to the helper without ccache knowing or caring
  about them. Syntax: A property is "key=value", a custom attribute is
  "@key=value".
- Properties/attributes are now separated by whitespace instead of pipe
  characters.

New remote storage properties:

- data-timeout: Timeout for send/receive data transfer. Resets whenever
  data is received or can be sent. Default: 1s.
- request-timeout: Timeout for the whole request. Default: 10s.
- idle-timeout: Timeout for the helper process to wait before exiting
  after client inactivity (0s: stay up indefinitely). Default: 10m.
- helper: Override which storage helper to spawn (either a filename or a
  full path). This is mainly useful when developing or testing new
  helpers.

The new command line option "--stop-storage-helpers" can be used to ask
spawned storage helpers to stop immediately.

A new "libexec_dirs" configuration option is available for overriding
the default libexec determined at build time.

3 months agofeat: Add simple storage helper implementation for integration tests
Joel Rosdahl [Thu, 23 Oct 2025 16:07:34 +0000 (18:07 +0200)] 
feat: Add simple storage helper implementation for integration tests

The helper keeps stored values in memory and only handles one client
connection at a time.

3 months agofeat: Add storage test client
Joel Rosdahl [Thu, 23 Oct 2025 16:07:16 +0000 (18:07 +0200)] 
feat: Add storage test client

3 months agoenhance: Add remote storage client class
Joel Rosdahl [Thu, 23 Oct 2025 16:06:07 +0000 (18:06 +0200)] 
enhance: Add remote storage client class

3 months agoenhance: Implement helper classes for storage helper IPC
Joel Rosdahl [Mon, 20 Oct 2025 19:48:34 +0000 (21:48 +0200)] 
enhance: Implement helper classes for storage helper IPC

3 months agofeat: Remove R/M suffix from files in local storage
Joel Rosdahl [Sat, 25 Oct 2025 21:04:02 +0000 (23:04 +0200)] 
feat: Remove R/M suffix from files in local storage

In addition to the previous commit, this commit make things even more
consistent with remote storage by changing file names in local storage:

1. ${digest}R     -> ${digest}
2. ${digest}M     -> ${digest}
3. ${digest}${n}W -> ${digest}_${nn}

(${n} is file number 0-9, ${nn} is file number in two-digit hex form.)

The original reason for adding R and M suffixes was to simplify
implementation of local cleanup and recompression somewhat (and also
discoverability in tests), but I think that consistency trumps this.

3 months agofeat: Use base16 encoding for all hash digest keys
Joel Rosdahl [Sat, 25 Oct 2025 17:21:09 +0000 (19:21 +0200)] 
feat: Use base16 encoding for all hash digest keys

This reverts the mixed encoding scheme introduced in commit 47cb00f7 ("Encode
hash digests as 4 base16 digits + 29 base32hex digits") back to pure base16
encoding.

Background: The mixed base16/base32hex encoding was introduced to reduce
filename lengths slightly, thereby reducing the number of system calls when
scanning local cache directories. At the time, "the effect is very small but
there is no real downside".

However, with the introduction of remote storage helpers implemented outside
ccache's code base, a downside has emerged: key encoding inconsistency. Remote
storage helpers must now either:

1. reimplement ccache's custom encoding algorithm to maintain key consistency
   between the remote storage and ccache's local storage (and logs), or
2. use standard base16 encoding, resulting in different key representations
   between ccache and the remote storage.

By standardizing on base16 encoding throughout, we ensure that:

- remote storage helpers can use simple, standard base16 encoding
- keys are represented identically in ccache's local storage and remote storage
- external implementations don't need to replicate custom encoding logic
- debugging and key correlation across systems is straightforward

The minor filesystem performance benefit of shorter filenames is outweighed by
the ecosystem benefits of a simple, standard encoding scheme.

Local storage will for now be backward compatible: to avoid invalidating
existing cache entries, ccache will write in the new format but will try
both the new and the legacy format on cache lookup. The legacy format is
also still used for hashes that are part of the input hash. When some
other input hash material is changed (which invalidates cache entries
anyway) in the future, we'll drop the legacy format completely.

3 months agodocs: Add first version of remote storage helper spec
Joel Rosdahl [Sat, 4 Oct 2025 12:27:41 +0000 (14:27 +0200)] 
docs: Add first version of remote storage helper spec

3 months agoci: Add Linux binary releases statically linked with musl
Joel Rosdahl [Sat, 24 Jan 2026 15:29:28 +0000 (16:29 +0100)] 
ci: Add Linux binary releases statically linked with musl

Closes #1665.

3 months agochore: Upgrade alpine Dockerfile to alpine:3.23
Joel Rosdahl [Sat, 24 Jan 2026 15:17:55 +0000 (16:17 +0100)] 
chore: Upgrade alpine Dockerfile to alpine:3.23

3 months agofeat: Handle Apple Clang -index-unit-output-path option
Joel Rosdahl [Sat, 24 Jan 2026 14:25:19 +0000 (15:25 +0100)] 
feat: Handle Apple Clang -index-unit-output-path option

We can't cache -index-unit-output-path, so fall back to running the
compiler unless clang_index_store sloppiness is requested.

Related to discussion #1670.

3 months agoRevert "enhance: Add util::SimpleJsonParser"
Joel Rosdahl [Tue, 20 Jan 2026 18:33:17 +0000 (19:33 +0100)] 
Revert "enhance: Add util::SimpleJsonParser"

This reverts commit 74e48c17ed4c23aac378c6f598d38d62be66001d.

The JSON parser is no longer needed since
496585daf92f4bb7dee22725c9f3161bdde184f2 has been reverted.

3 months agoRevert "feat(msvc): Use /sourceDependencies to extract include file paths"
Joel Rosdahl [Tue, 20 Jan 2026 18:10:13 +0000 (19:10 +0100)] 
Revert "feat(msvc): Use /sourceDependencies to extract include file paths"

This reverts commit 496585daf92f4bb7dee22725c9f3161bdde184f2.

Using MSVC's source dependency file for extracting header files didn't
work out:

- The header filenames are always absolute paths, so cache entries
  cannot be shared between directories even when using relative paths on
  the command line.
- The header filenames are normalized to lowercase, making it harder to
  match them against things like base_dir.

Fixes #1662.

3 months agofix: Fix CHECK_LIB_CALL to properly handle functions that set errno
Joel Rosdahl [Wed, 14 Jan 2026 18:42:42 +0000 (19:42 +0100)] 
fix: Fix CHECK_LIB_CALL to properly handle functions that set errno

3 months agorefactor: Improve util::add_exe_suffix signature
Joel Rosdahl [Tue, 13 Jan 2026 20:08:10 +0000 (21:08 +0100)] 
refactor: Improve util::add_exe_suffix signature

3 months agoenhance: Add Config::get_xdg_runtime_tmp_dir
Joel Rosdahl [Tue, 13 Jan 2026 20:22:30 +0000 (21:22 +0100)] 
enhance: Add Config::get_xdg_runtime_tmp_dir

3 months agofix: Avoid leaking inode cache file descriptor to executed programs
Joel Rosdahl [Mon, 12 Jan 2026 20:28:28 +0000 (21:28 +0100)] 
fix: Avoid leaking inode cache file descriptor to executed programs

3 months agofix: Only set UNCACHED_ERR_FD when executing the compiler
Joel Rosdahl [Mon, 12 Jan 2026 20:28:04 +0000 (21:28 +0100)] 
fix: Only set UNCACHED_ERR_FD when executing the compiler

3 months agochore: Fix references to authors.adoc
Joel Rosdahl [Tue, 13 Jan 2026 16:24:13 +0000 (17:24 +0100)] 
chore: Fix references to authors.adoc

3 months agochore: Remove references to no longer used Gitter channel
Joel Rosdahl [Sun, 28 Dec 2025 15:13:00 +0000 (16:13 +0100)] 
chore: Remove references to no longer used Gitter channel

4 months agofix: Handle NVCC long option alternatives to -M/-MD/-MF/-MM/-MMD/-MT
Joel Rosdahl [Sun, 21 Dec 2025 16:07:37 +0000 (17:07 +0100)] 
fix: Handle NVCC long option alternatives to -M/-MD/-MF/-MM/-MMD/-MT

Fixes #1663.

4 months agotest: Fix -march=native test to work on hybrid CPU systems
Joel Rosdahl [Mon, 15 Dec 2025 17:19:27 +0000 (18:19 +0100)] 
test: Fix -march=native test to work on hybrid CPU systems

On a hybrid CPU system (e.g. Intel with performance and efficient
cores), -march=native expansion can be different on different core types
and thus fail the "-march=native, no CWD in input hash" test if the
first and second compilation end up on different core types. Fix this by
just verifying that CWD doesn't appear in the expansion.

4 months agofix: Avoid hashing CWD parts of -march=native expansion for Clang
Joel Rosdahl [Tue, 9 Dec 2025 18:19:17 +0000 (19:19 +0100)] 
fix: Avoid hashing CWD parts of -march=native expansion for Clang

Fixes #1658.

4 months agofix: Look for correct -march=native expansion line on Windows
Joel Rosdahl [Tue, 9 Dec 2025 19:14:57 +0000 (20:14 +0100)] 
fix: Look for correct -march=native expansion line on Windows

4 months agoci: Remove some less important CI jobs
Joel Rosdahl [Tue, 9 Dec 2025 18:40:59 +0000 (19:40 +0100)] 
ci: Remove some less important CI jobs

Testing large parts of the test matrix is valuable. But at the same
time, lots of CI jobs consume lots of resources. Let's find a better
balance.

4 months agotest: Fix directory check for Windows paths
Joel Rosdahl [Tue, 9 Dec 2025 18:14:53 +0000 (19:14 +0100)] 
test: Fix directory check for Windows paths

msys2 jobs have for some strange reason started to fail, so msys2's pwd
must have started returning full pathname including ":" on Windows.

4 months agoenhance: Improve find_executable
Joel Rosdahl [Sat, 6 Dec 2025 13:51:40 +0000 (14:51 +0100)] 
enhance: Improve find_executable

4 months agorefactor: Rename k_redacted_password to k_redacted_secret
Joel Rosdahl [Sat, 22 Nov 2025 14:55:58 +0000 (15:55 +0100)] 
refactor: Rename k_redacted_password to k_redacted_secret

4 months agoenhance: Add util::Timer::reset method
Joel Rosdahl [Tue, 25 Nov 2025 08:06:17 +0000 (09:06 +0100)] 
enhance: Add util::Timer::reset method

4 months agorefactor: Add missing util namespace to Timer
Joel Rosdahl [Mon, 24 Nov 2025 19:53:50 +0000 (20:53 +0100)] 
refactor: Add missing util namespace to Timer

4 months agochore: Add alma-10 dockerfile
Joel Rosdahl [Sat, 6 Dec 2025 09:59:00 +0000 (10:59 +0100)] 
chore: Add alma-10 dockerfile

4 months agotest: Support valkey in remote_redis test suite
Joel Rosdahl [Sat, 6 Dec 2025 09:58:04 +0000 (10:58 +0100)] 
test: Support valkey in remote_redis test suite

5 months agochore: Update authors
Joel Rosdahl [Tue, 25 Nov 2025 20:58:32 +0000 (21:58 +0100)] 
chore: Update authors

(cherry picked from commit 8c107aada09df2a40930d7064bbec8120ee76c91)

5 months agochore: Update NEWS
Joel Rosdahl [Tue, 25 Nov 2025 20:58:27 +0000 (21:58 +0100)] 
chore: Update NEWS

(cherry picked from commit 0962c414c87aec5d7903349fa9faabec45919637)

5 months agoci: Fix paths to release binaries
Joel Rosdahl [Tue, 25 Nov 2025 15:51:19 +0000 (16:51 +0100)] 
ci: Fix paths to release binaries

5 months agoci: Remove obsolete macOS-13 build
Joel Rosdahl [Tue, 25 Nov 2025 15:43:57 +0000 (16:43 +0100)] 
ci: Remove obsolete macOS-13 build

5 months agoci: Fix prefix for Linux binary release build
Joel Rosdahl [Tue, 25 Nov 2025 14:11:19 +0000 (15:11 +0100)] 
ci: Fix prefix for Linux binary release build

5 months agofeat: Improve compiler check on macOS
Joel Rosdahl [Sat, 22 Nov 2025 13:44:00 +0000 (14:44 +0100)] 
feat: Improve compiler check on macOS

On macOS, the /usr/bin/clang(++) executables are shims that redirect to
different compilers based on $DEVELOPER_DIR or xcode-select
configuration, so ccache's default compiler check (hash mtime+size) is
done on those shims instead of the real compilers.

Improve this by trying to look up the real compiler via $DEVELOPER_DIR
or xcode-select configuration when hashing compiler data.

Closes #1654.

5 months agofeat(msvc): Use /sourceDependencies to extract include file paths
Joel Rosdahl [Fri, 31 Oct 2025 20:19:40 +0000 (21:19 +0100)] 
feat(msvc): Use /sourceDependencies to extract include file paths

Extract include file paths from MSVC's /sourceDependencies output
instead of parsing preprocessed output. This eliminates the need for the
/utf-8 flag and msvc_utf8 config option, allowing ccache to work
correctly with both Unicode and "ANSI" (non-Unicode) codebases without
user configuration.

This resolves the encoding issues described in issues #1619 and #1650 by
using a more robust approach that doesn't depend on source file
encoding.

The change applies to both preprocessor mode and depend mode. For MSVC
versions older than 2017 15.7 that don't support /sourceDependencies,
ccache falls back to parsing preprocessed output. Other MSVC-like
compilers (clang-cl, nvcc, etc.) continue using /showIncludes.

5 months agorefactor: Move clang/msvc code to src/ccache/compiler
Joel Rosdahl [Sat, 15 Nov 2025 11:49:11 +0000 (12:49 +0100)] 
refactor: Move clang/msvc code to src/ccache/compiler

5 months agoenhance: Add util::SimpleJsonParser
Joel Rosdahl [Tue, 11 Nov 2025 19:09:42 +0000 (20:09 +0100)] 
enhance: Add util::SimpleJsonParser

5 months agofeat(msvc): Add support for caching /sourceDependencies file
Joel Rosdahl [Sat, 8 Nov 2025 12:28:13 +0000 (13:28 +0100)] 
feat(msvc): Add support for caching /sourceDependencies file

5 months agochore: Remove obsolete generating_debuginfo_level_3 variable
Joel Rosdahl [Sat, 15 Nov 2025 20:12:23 +0000 (21:12 +0100)] 
chore: Remove obsolete generating_debuginfo_level_3 variable

Obsolete as of fd9de834 "chore: Remove ability to avoid 2nd call to
preprocessor (run_second_cpp)".

5 months agotest: Add basic MSVC integration test suite
Joel Rosdahl [Tue, 18 Nov 2025 18:15:38 +0000 (19:15 +0100)] 
test: Add basic MSVC integration test suite

We need some basic MSVC integration/smoke tests. Since I think it's a
dead end to try to adapt the bash-based test suite for MSVC, this commit
adds a separate Python-based test suite instead. It's not a full
solution but rather something quick to cover the most basic testing
needs.

5 months agorefactor: Remove unnecessary cleanup of args after executing compiler
Joel Rosdahl [Mon, 10 Nov 2025 17:52:22 +0000 (18:52 +0100)] 
refactor: Remove unnecessary cleanup of args after executing compiler

5 months agorefactor: Improve Bytes::{erase,insert} signatures
Joel Rosdahl [Sun, 9 Nov 2025 12:49:22 +0000 (13:49 +0100)] 
refactor: Improve Bytes::{erase,insert} signatures

5 months agochore: Improve comments
Joel Rosdahl [Tue, 4 Nov 2025 21:15:11 +0000 (22:15 +0100)] 
chore: Improve comments

5 months agorefactor: Simplify handling of --serialize-diagnostics
Joel Rosdahl [Tue, 4 Nov 2025 21:14:34 +0000 (22:14 +0100)] 
refactor: Simplify handling of --serialize-diagnostics

5 months agotest: Add test for --serialize-diagnostics
Joel Rosdahl [Tue, 4 Nov 2025 20:47:59 +0000 (21:47 +0100)] 
test: Add test for --serialize-diagnostics

5 months agodocs: Fix typos in news
Joel Rosdahl [Tue, 4 Nov 2025 20:47:43 +0000 (21:47 +0100)] 
docs: Fix typos in news

5 months agofix: Be robust against filesystem path encoding problems on Windows
Joel Rosdahl [Mon, 3 Nov 2025 20:11:32 +0000 (21:11 +0100)] 
fix: Be robust against filesystem path encoding problems on Windows

5 months agoperf: Parallelize -X/--recompress
Joel Rosdahl [Thu, 30 Oct 2025 17:45:20 +0000 (18:45 +0100)] 
perf: Parallelize -X/--recompress

5 months agoenhance: Make ProgressBar thread safe
Joel Rosdahl [Thu, 30 Oct 2025 17:43:23 +0000 (18:43 +0100)] 
enhance: Make ProgressBar thread safe

5 months agoperf: Parallelize -x/--show-compression
Joel Rosdahl [Wed, 29 Oct 2025 18:06:18 +0000 (19:06 +0100)] 
perf: Parallelize -x/--show-compression

5 months agofeat: Merge --{recompress,trim-recompress}-threads into --threads
Joel Rosdahl [Wed, 29 Oct 2025 17:59:42 +0000 (18:59 +0100)] 
feat: Merge --{recompress,trim-recompress}-threads into --threads

Bonus: Cleaned up handling of old options kept for backward
compatibility.

5 months agoenhance: Add util::ThreadPool::enqueue, returning a std::future
Joel Rosdahl [Wed, 29 Oct 2025 14:38:03 +0000 (15:38 +0100)] 
enhance: Add util::ThreadPool::enqueue, returning a std::future

5 months agotest: Add unit tests for util::ThreadPool
Joel Rosdahl [Wed, 29 Oct 2025 14:33:49 +0000 (15:33 +0100)] 
test: Add unit tests for util::ThreadPool

5 months agofeat: Support enqueuing ThreadPool tasks from worker threads
Joel Rosdahl [Tue, 28 Oct 2025 20:09:01 +0000 (21:09 +0100)] 
feat: Support enqueuing ThreadPool tasks from worker threads

5 months agorefactor: Improve ThreadPool variable names
Joel Rosdahl [Mon, 27 Oct 2025 20:49:02 +0000 (21:49 +0100)] 
refactor: Improve ThreadPool variable names

5 months agochore: Make ThreadPool non-copyable
Joel Rosdahl [Mon, 27 Oct 2025 20:33:40 +0000 (21:33 +0100)] 
chore: Make ThreadPool non-copyable

5 months agoperf: Add fast path in ThreadPool::enqueue
Joel Rosdahl [Mon, 27 Oct 2025 20:14:40 +0000 (21:14 +0100)] 
perf: Add fast path in ThreadPool::enqueue

5 months agoperf: Move function into ThreadPool task queue
Joel Rosdahl [Mon, 27 Oct 2025 17:53:27 +0000 (18:53 +0100)] 
perf: Move function into ThreadPool task queue

5 months agofix: Start at least one thread in ThreadPool
Joel Rosdahl [Mon, 27 Oct 2025 17:51:10 +0000 (18:51 +0100)] 
fix: Start at least one thread in ThreadPool

5 months agorefactor: Use std::chrono_literals
Joel Rosdahl [Sun, 26 Oct 2025 21:05:41 +0000 (22:05 +0100)] 
refactor: Use std::chrono_literals

5 months agoenhance: Add util::format_duration
Joel Rosdahl [Sun, 26 Oct 2025 20:54:48 +0000 (21:54 +0100)] 
enhance: Add util::format_duration

5 months agoenhance: Support h/m/ms suffixes for durations as well
Joel Rosdahl [Sun, 26 Oct 2025 20:35:19 +0000 (21:35 +0100)] 
enhance: Support h/m/ms suffixes for durations as well

5 months agorefactor: Extract duplicated PCH check code to a helper function
Joel Rosdahl [Fri, 31 Oct 2025 20:08:27 +0000 (21:08 +0100)] 
refactor: Extract duplicated PCH check code to a helper function

5 months agochore: Improve comments
Joel Rosdahl [Fri, 31 Oct 2025 15:17:52 +0000 (16:17 +0100)] 
chore: Improve comments

5 months agobuild(blake3): Assume aarch64 to be little-endian on CMake 3.18/3.19 (#1652)
J. Neuschäfer [Tue, 28 Oct 2025 18:48:23 +0000 (19:48 +0100)] 
build(blake3): Assume aarch64 to be little-endian on CMake 3.18/3.19 (#1652)

The recently introduced detection of big-endian AArch64 uses the
CMAKE_C_BYTE_ORDER variable, which was introduced in 3.20, but ccache
currently only requires CMake 3.18.

To avoid using an undefined variable, simply assume AArch64 to be
little-endian on CMake versions that don't define the aforementioned
variable. This is okay because big-endian AArch64 has few users and the
subset of them that use CMake 3.18/3.19 is likely negligible.

Reported-by: @awawa-dev
Fixes: https://github.com/ccache/ccache/issues/1651
5 months agofeat: Add msvc_utf8 config option to allow disabling /utf-8 for MSVC (#1650)
Max Winkler [Tue, 28 Oct 2025 18:46:11 +0000 (11:46 -0700)] 
feat: Add msvc_utf8 config option to allow disabling /utf-8 for MSVC (#1650)

Add  option to avoid adding  to msvc command line for non-utf8 source code

6 months agochore: Mark some ThreadPool methods as noexcept
Joel Rosdahl [Sun, 26 Oct 2025 15:11:19 +0000 (16:11 +0100)] 
chore: Mark some ThreadPool methods as noexcept

6 months agofeat: Log errors and size changes when recompressing cache files
Joel Rosdahl [Sun, 26 Oct 2025 15:04:53 +0000 (16:04 +0100)] 
feat: Log errors and size changes when recompressing cache files

6 months agoenhance: Let ThreadPool log failed tasks
Joel Rosdahl [Sun, 26 Oct 2025 14:55:13 +0000 (15:55 +0100)] 
enhance: Let ThreadPool log failed tasks

6 months agoenhance: Make logging system thread-safe
Joel Rosdahl [Sun, 26 Oct 2025 14:53:43 +0000 (15:53 +0100)] 
enhance: Make logging system thread-safe

6 months agoperf: Only wake up one worker thread when a task has been popped
Joel Rosdahl [Sun, 26 Oct 2025 11:47:26 +0000 (12:47 +0100)] 
perf: Only wake up one worker thread when a task has been popped

6 months agofix: Handle util::TaskPool enqueue/shut_down called by different threads
Joel Rosdahl [Sun, 26 Oct 2025 11:36:26 +0000 (12:36 +0100)] 
fix: Handle util::TaskPool enqueue/shut_down called by different threads

6 months agoenhance: Add util::parse_base16 function
Joel Rosdahl [Sun, 26 Oct 2025 08:40:43 +0000 (09:40 +0100)] 
enhance: Add util::parse_base16 function

6 months agoenhance: Add util::Bytes::push_back method
Joel Rosdahl [Sun, 26 Oct 2025 08:34:45 +0000 (09:34 +0100)] 
enhance: Add util::Bytes::push_back method

6 months agoenhance: Add util::Bytes::at method
Joel Rosdahl [Sun, 26 Oct 2025 08:29:40 +0000 (09:29 +0100)] 
enhance: Add util::Bytes::at method

6 months agodocs: Update URLs in manual and news
Joel Rosdahl [Sun, 26 Oct 2025 08:06:29 +0000 (09:06 +0100)] 
docs: Update URLs in manual and news

6 months agofix: Correctly remove mismatching manifest file
Joel Rosdahl [Sat, 25 Oct 2025 18:33:11 +0000 (20:33 +0200)] 
fix: Correctly remove mismatching manifest file

This fixes a bug introduced in commit c7c0837a ("Refactor main primary
storage backend code into storage/primary").