]> git.ipfire.org Git - thirdparty/ccache.git/log
thirdparty/ccache.git
2 days agofix: Rewrite 'inlined from' messages in absolute_paths_in_stderr (#1676) master
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 days agochore: Improve GitHub issue templates
Joel Rosdahl [Tue, 27 Jan 2026 18:23:10 +0000 (19:23 +0100)] 
chore: Improve GitHub issue templates

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

5 days 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.

5 days 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.

5 days 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.

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

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

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

5 days 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.

5 days 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.

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

5 days 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.

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

5 days 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.

8 days 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.

8 days 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.

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

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

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

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

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

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

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

5 weeks 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.

6 weeks 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.

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

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

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

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

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

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

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

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

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

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

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

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

2 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

2 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

2 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

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

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

2 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

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

2 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

2 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)".

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

2 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

2 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

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

2 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

2 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

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

2 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

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

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

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

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

2 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

2 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

2 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

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

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

2 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

2 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

2 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

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

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

2 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

2 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

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

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

3 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

3 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

3 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

3 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

3 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

3 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

3 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

3 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

3 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

3 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

3 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").

3 months agoperf: Avoid zero-filling in util::Bytes in all cases
Joel Rosdahl [Sat, 25 Oct 2025 15:19:22 +0000 (17:19 +0200)] 
perf: Avoid zero-filling in util::Bytes in all cases

3 months agoenhance: Add more util::Bytes constructor and operator= variants
Joel Rosdahl [Sat, 25 Oct 2025 14:26:28 +0000 (16:26 +0200)] 
enhance: Add more util::Bytes constructor and operator= variants

3 months agoperf: Call Bytes::resize from Bytes constructors to avoid zero-filling
Joel Rosdahl [Thu, 23 Oct 2025 17:25:29 +0000 (19:25 +0200)] 
perf: Call Bytes::resize from Bytes constructors to avoid zero-filling

3 months agoenhance: Add Bytes::erase
Joel Rosdahl [Thu, 23 Oct 2025 08:13:24 +0000 (10:13 +0200)] 
enhance: Add Bytes::erase

3 months agotest: Use REQUIRE for Bytes::size when indexing bytes later
Joel Rosdahl [Thu, 23 Oct 2025 08:12:20 +0000 (10:12 +0200)] 
test: Use REQUIRE for Bytes::size when indexing bytes later

3 months agochore: Consistently use .reset() to reset m_data in Bytes
Joel Rosdahl [Wed, 22 Oct 2025 20:15:44 +0000 (22:15 +0200)] 
chore: Consistently use .reset() to reset m_data in Bytes

3 months agofix: Fix comparison of empty Bytes objects
Joel Rosdahl [Wed, 22 Oct 2025 20:15:23 +0000 (22:15 +0200)] 
fix: Fix comparison of empty Bytes objects

3 months agofeat: Add support for multi-line configuration values
Joel Rosdahl [Sat, 18 Oct 2025 18:55:20 +0000 (20:55 +0200)] 
feat: Add support for multi-line configuration values

3 months agofix: Pass unsigned char to std::is* and std::tolower
Joel Rosdahl [Mon, 20 Oct 2025 19:04:19 +0000 (21:04 +0200)] 
fix: Pass unsigned char to std::is* and std::tolower

Passing (negative) char is technically undefined behavior.

3 months agodocs: Mention that sloppiness values can be whitespace-separated
Joel Rosdahl [Mon, 20 Oct 2025 16:28:11 +0000 (18:28 +0200)] 
docs: Mention that sloppiness values can be whitespace-separated

3 months agodocs: Tweak Asciidoc markup
Joel Rosdahl [Sun, 19 Oct 2025 08:08:45 +0000 (10:08 +0200)] 
docs: Tweak Asciidoc markup

3 months agofeat: Add support for -fcoverage-compilation-dir/-fcoverage-prefix-map (#1644)
Evgeniy Isaev [Sun, 19 Oct 2025 17:59:15 +0000 (20:59 +0300)] 
feat: Add support for -fcoverage-compilation-dir/-fcoverage-prefix-map (#1644)

3 months agochore: Update C++ standard in .clang-format (#1648)
Evgeniy Isaev [Sun, 19 Oct 2025 08:29:01 +0000 (11:29 +0300)] 
chore: Update C++ standard in .clang-format (#1648)

3 months agochore: Add libstdc++-static to alma dockerfiles
Joel Rosdahl [Sat, 18 Oct 2025 08:16:28 +0000 (10:16 +0200)] 
chore: Add libstdc++-static to alma dockerfiles

3 months agodocs: Improve installation guide
Joel Rosdahl [Tue, 14 Oct 2025 14:47:18 +0000 (16:47 +0200)] 
docs: Improve installation guide