]> git.ipfire.org Git - thirdparty/ccache.git/log
thirdparty/ccache.git
2 years agotest: Use grep -E/-F instead of obsolescent egrep/fgrep
Joel Rosdahl [Tue, 17 Jan 2023 19:59:21 +0000 (20:59 +0100)] 
test: Use grep -E/-F instead of obsolescent egrep/fgrep

2 years agofeat: Improve automatic cache cleanup mechanism
Joel Rosdahl [Thu, 5 Jan 2023 18:14:27 +0000 (19:14 +0100)] 
feat: Improve automatic cache cleanup mechanism

The cache cleanup mechanism has worked essentially the same ever since
ccache was initially created in 2002:

- The total number and size of all files in one of the 16 subdirectories
  (AKA level 1) are kept in the stats file in said subdirectory.
- On a cache miss, the new compilation result file is written (based on
  the first digits of the hash) to a subdirectory of one of those 16
  subdirectories, and the stats file is updated accordingly.
- Automatic cleanup is triggered if the size of the level 1 subdirectory
  becomes larger than max_size / 16.
- ccache then lists all files in the subdirectory recursively, stats
  them to check their size and mtime, sorts the file list on mtime and
  deletes the 20% oldest files.

Some problems with the approach described above:

- (A) If several concurrent ccache invocations result in a cache miss
  and write their results to the same subdirectory then all of them will
  start cleaning up the same subdirectory simultaneously, doing
  unnecessary work.
- (B) The ccache invocation that resulted in a cache miss will perform
  cleanup and then exit, which means that an arbitrary ccache process
  that happens to trigger cleanup will take a long time to finish.
- (C) Listing all files in a subdirectory of a large cache can be quite
  slow.
- (D) stat-ing all files in a subdirectory of a large cache can be quite
  slow.
- (E) Deleting many files can be quite slow.
- (F) Since a cleanup by default removes 20% of the files in a
  subdirectory, the actual cache size will (once the cache limit is
  reached) on average hover around 90% of the configured maximum size,
  which can be confusing.

This commit solves or improves on all of the listed problems:

- Before starting automatic cleanup, a global "auto cleanup" lock is
  acquired (non-blocking) so that at most one process is performing
  cleanup at a time. This solves the potential "cache cleanup stampede"
  described in (A).
- Automatic cleanup is now performed in just one of the 256 level 2
  directories. This means that a single cleanup on average will be 16
  times faster than before. This improves on (B), (C), (D) and (E) since
  the cleanup made by a single compilation will not have to access a
  large part of the cache. On the other hand, cleanups will be triggered
  16 times more often, but the cleanup duty will be more evenly spread
  out during a build.
- The total cache size is calculated and compared with the configured
  maximum size before starting automatic cleanup. This, in combination
  with performing cleanup on level 2, means that the actual cache size
  will stay very close to the maximum size instead of about 90%. This
  solves (F).

The limit_multiple configuration option has been removed since it is no
longer used.

Closes #417.

2 years agochore: Add unit tests for parsing size with (undocumented) B suffix
Joel Rosdahl [Thu, 5 Jan 2023 18:14:17 +0000 (19:14 +0100)] 
chore: Add unit tests for parsing size with (undocumented) B suffix

2 years agoenhance: Delay LongLivedLockFileManager thread start to first register
Joel Rosdahl [Thu, 5 Jan 2023 10:38:55 +0000 (11:38 +0100)] 
enhance: Delay LongLivedLockFileManager thread start to first register

2 years agofix: Fix logging of inactive lock duration
Joel Rosdahl [Thu, 5 Jan 2023 10:16:28 +0000 (11:16 +0100)] 
fix: Fix logging of inactive lock duration

2 years agoenhance: Make it possible for LockFile::try_acquire to break the lock
Joel Rosdahl [Thu, 5 Jan 2023 10:07:06 +0000 (11:07 +0100)] 
enhance: Make it possible for LockFile::try_acquire to break the lock

If a long-lived lock is stale and has no alive file,
LockFile::try_acquire will never succeed to acquire the lock. Fix this
by creating the alive file for all lock types and making
LockFile::try_acquire exit when lock activity is seen instead of
immediately after failing to acquire the lock.

Another advantage is that a stale lock can now always be broken right
away if the alive file exists.

2 years agofeat: Consistently show cache size and max size with one decimal
Joel Rosdahl [Mon, 2 Jan 2023 19:46:25 +0000 (20:46 +0100)] 
feat: Consistently show cache size and max size with one decimal

2 years agoenhance: Make util::LockFile movable
Joel Rosdahl [Fri, 30 Dec 2022 21:00:17 +0000 (22:00 +0100)] 
enhance: Make util::LockFile movable

2 years agochore: Add missing explicit keywords to some constructors
Joel Rosdahl [Fri, 30 Dec 2022 20:59:18 +0000 (21:59 +0100)] 
chore: Add missing explicit keywords to some constructors

2 years agofix: Avoid sometimes too wide percent figure in --show-stats
Joel Rosdahl [Fri, 30 Dec 2022 20:49:23 +0000 (21:49 +0100)] 
fix: Avoid sometimes too wide percent figure in --show-stats

If the nominator is 99999 and the denominator is 100000, the percent
function in Statistics.cpp would return "(100.00%)" instead of the
wanted "(100.0%)". Fix this by using the alternate format string if the
result string overflows its target size.

2 years agoenhance: Add offsetted get/set/increment methods for StatisticsCounters
Joel Rosdahl [Wed, 28 Dec 2022 09:15:23 +0000 (10:15 +0100)] 
enhance: Add offsetted get/set/increment methods for StatisticsCounters

2 years agofeat: Activate logging for command mode options
Joel Rosdahl [Wed, 28 Dec 2022 09:11:55 +0000 (10:11 +0100)] 
feat: Activate logging for command mode options

This makes it possible to check ordinary log messages when debugging
"ccache -c" and similar options.

2 years agoenhance: Make storage::local::StatsFile movable
Joel Rosdahl [Wed, 14 Dec 2022 20:10:03 +0000 (21:10 +0100)] 
enhance: Make storage::local::StatsFile movable

2 years agodoc: Add note that "stats = false" will disable automatic cleanup
Joel Rosdahl [Wed, 14 Dec 2022 19:52:08 +0000 (20:52 +0100)] 
doc: Add note that "stats = false" will disable automatic cleanup

2 years agofeat: Do clean/clear/evict-style operations per level 2 directory
Joel Rosdahl [Tue, 29 Nov 2022 20:54:08 +0000 (21:54 +0100)] 
feat: Do clean/clear/evict-style operations per level 2 directory

Progress bars will now be smoother since the operations are now divided
into 256 instead of 16 "read files + act on files" steps. This is also
in preparation for future improvements related to cache cleanup.

2 years agorefactor: Merge LocalStorage implemention files
Joel Rosdahl [Tue, 29 Nov 2022 19:56:36 +0000 (20:56 +0100)] 
refactor: Merge LocalStorage implemention files

2 years agochore: Remove special logic for cleaning up legacy ccache files
Joel Rosdahl [Wed, 9 Nov 2022 20:36:03 +0000 (21:36 +0100)] 
chore: Remove special logic for cleaning up legacy ccache files

2 years agorefactor: Use std::size to compute array size
Joel Rosdahl [Tue, 10 Jan 2023 19:21:51 +0000 (20:21 +0100)] 
refactor: Use std::size to compute array size

2 years agochore: Clean up minor things after 95e6375813f7
Joel Rosdahl [Wed, 4 Jan 2023 14:17:11 +0000 (15:17 +0100)] 
chore: Clean up minor things after 95e6375813f7

2 years agofix: Use spinlocks for inode cache memory synchronization (#1229)
Oleg Sidorkin [Wed, 4 Jan 2023 13:53:21 +0000 (16:53 +0300)] 
fix: Use spinlocks for inode cache memory synchronization (#1229)

Changed the inode cache implementation to use spinlocks instead of pthread
mutexes. This makes the inode cache work on FreeBSD and other systems where the
pthread mutexes are destroyed when the last memory mapping containing the
mutexes is unmapped.

Also added tmpfs, ufs and zfs to the list of supported filesystems on macOS and
BSDs.

See also ccache discussion #1228.

2 years agoci: Test more compilers (#1234)
Raihaan Shouhell [Mon, 26 Dec 2022 11:48:55 +0000 (19:48 +0800)] 
ci: Test more compilers (#1234)

2 years agofix: Only use original umask when retrieving result
Joel Rosdahl [Fri, 23 Dec 2022 18:03:13 +0000 (19:03 +0100)] 
fix: Only use original umask when retrieving result

This fixes a problem where the original umask would be used when storing
a remote cache result in the local cache in from_cache.

Fixes #1235.

2 years agofix: Fix matching of base directory for MSVC
Joel Rosdahl [Wed, 21 Dec 2022 12:16:12 +0000 (13:16 +0100)] 
fix: Fix matching of base directory for MSVC

The base directory will now match case-insensitively with absolute paths
in preprocessed output, or from /showIncludes in the depend mode case,
when compiling with MSVC.

2 years agofix: Don't crash in TextTable for a single heading row
Joel Rosdahl [Wed, 21 Dec 2022 14:15:41 +0000 (15:15 +0100)] 
fix: Don't crash in TextTable for a single heading row

2 years agochore: Remove defunct LGTM badges
Joel Rosdahl [Fri, 23 Dec 2022 09:55:27 +0000 (10:55 +0100)] 
chore: Remove defunct LGTM badges

lgtm.com has been shut down.

2 years agofix: Do not escape backslashes in MSVC RSP files (#1233)
Raihaan Shouhell [Fri, 23 Dec 2022 09:52:45 +0000 (17:52 +0800)] 
fix: Do not escape backslashes in MSVC RSP files (#1233)

2 years agofix: Improve fix for local/remote cache misses in depend mode
Joel Rosdahl [Tue, 20 Dec 2022 20:57:33 +0000 (21:57 +0100)] 
fix: Improve fix for local/remote cache misses in depend mode

2 years agofix: Fix reporting of local/remote cache misses in depend mode
Joel Rosdahl [Tue, 13 Dec 2022 19:32:15 +0000 (20:32 +0100)] 
fix: Fix reporting of local/remote cache misses in depend mode

2 years agofix: Fix conditions for --show-stats
Joel Rosdahl [Mon, 12 Dec 2022 13:33:26 +0000 (14:33 +0100)] 
fix: Fix conditions for --show-stats

2 years agochore: Bump clang-format version requirement to 11+
Joel Rosdahl [Mon, 12 Dec 2022 18:46:01 +0000 (19:46 +0100)] 
chore: Bump clang-format version requirement to 11+

2 years agodoc: Fix markup
Joel Rosdahl [Mon, 12 Dec 2022 12:41:04 +0000 (13:41 +0100)] 
doc: Fix markup

2 years agoenhance: Extract lock keep-alive thread to a manager class
Joel Rosdahl [Mon, 5 Dec 2022 19:50:58 +0000 (20:50 +0100)] 
enhance: Extract lock keep-alive thread to a manager class

Instead of running one keep-alive thread per lock, a long-lived LockFile
now lets a separate LongLivedLockFileManager object handle keep-alive
for several locks in a single thread.

2 years agoenhance: Add AtomicFile::flush method
Joel Rosdahl [Sat, 3 Dec 2022 12:33:33 +0000 (13:33 +0100)] 
enhance: Add AtomicFile::flush method

2 years agochore: Refine ProgressBar value calculation
Joel Rosdahl [Sat, 26 Nov 2022 15:26:45 +0000 (16:26 +0100)] 
chore: Refine ProgressBar value calculation

2 years agochore: Improve description of --set-config
Joel Rosdahl [Sat, 26 Nov 2022 10:17:21 +0000 (11:17 +0100)] 
chore: Improve description of --set-config

2 years agorefactor: Make LockFile guard itself without a LockFileGuard
Joel Rosdahl [Sun, 13 Nov 2022 08:02:16 +0000 (09:02 +0100)] 
refactor: Make LockFile guard itself without a LockFileGuard

2 years agofix: Don't use copy of mutex/condition in long-lived lock thread
Joel Rosdahl [Wed, 23 Nov 2022 19:11:12 +0000 (20:11 +0100)] 
fix: Don't use copy of mutex/condition in long-lived lock thread

This was kind of due to a typo in
0babd33e84147e923a729ee07a3b85097ec8baa8. Since the LongLivedLockFile
class is not used yet, the bug does not affect any released code.

2 years agoenhance: Allow short-lived lock file to wait for long-lived
Joel Rosdahl [Thu, 10 Nov 2022 15:37:08 +0000 (16:37 +0100)] 
enhance: Allow short-lived lock file to wait for long-lived

2 years agochore: Add discussions badge
Joel Rosdahl [Thu, 24 Nov 2022 19:49:34 +0000 (20:49 +0100)] 
chore: Add discussions badge

2 years agodoc: Fix spelling of potentially
Joel Rosdahl [Mon, 21 Nov 2022 19:55:03 +0000 (20:55 +0100)] 
doc: Fix spelling of potentially

2 years agorefactor: Improve FileRecompressor to take a stat
Joel Rosdahl [Thu, 10 Nov 2022 09:07:33 +0000 (10:07 +0100)] 
refactor: Improve FileRecompressor to take a stat

This avoids extra stats in some scenarios.

2 years agorefactor: Remove CacheFile, using Stat with path member instead
Joel Rosdahl [Thu, 10 Nov 2022 08:38:37 +0000 (09:38 +0100)] 
refactor: Remove CacheFile, using Stat with path member instead

2 years agoenhance: Remember path in Stat
Joel Rosdahl [Thu, 10 Nov 2022 08:03:08 +0000 (09:03 +0100)] 
enhance: Remember path in Stat

2 years agoenhance: Only keep atime if needed
Joel Rosdahl [Thu, 10 Nov 2022 09:15:12 +0000 (10:15 +0100)] 
enhance: Only keep atime if needed

- For the --recompress case, only reset timestamps if mtime has changed
  since local cache LRU cleanup always uses mtime.
- For the --trim-dir/--trim-recompress case, always reset timestamps
  since atime may be used for LRU cleanup.

2 years agofeat: Add --trim-recompress and --trim-recompress-threads
Joel Rosdahl [Tue, 8 Nov 2022 07:48:07 +0000 (08:48 +0100)] 
feat: Add --trim-recompress and --trim-recompress-threads

Note: Reading the header to check the current compression level affects
atime, so we need to restore atime even when recompression is not
performed.

2 years agorefactor: Extract file recompression code to a class
Joel Rosdahl [Mon, 7 Nov 2022 20:46:25 +0000 (21:46 +0100)] 
refactor: Extract file recompression code to a class

2 years agoenhance: Add Util::format_human_readable_diff
Joel Rosdahl [Mon, 14 Nov 2022 08:55:09 +0000 (09:55 +0100)] 
enhance: Add Util::format_human_readable_diff

2 years agofeat: Improve Util::format_human_readable_size for small sizes
Joel Rosdahl [Mon, 7 Nov 2022 20:04:01 +0000 (21:04 +0100)] 
feat: Improve Util::format_human_readable_size for small sizes

2 years agofeat: Add --recompress-threads option
Joel Rosdahl [Mon, 7 Nov 2022 19:22:19 +0000 (20:22 +0100)] 
feat: Add --recompress-threads option

2 years agofix: Fix edge case where a non-temporal identifier is misidentified (#1227)
Erik Flodin [Sun, 27 Nov 2022 20:32:36 +0000 (21:32 +0100)] 
fix: Fix edge case where a non-temporal identifier is misidentified (#1227)

If a non-temporal identifier, that ends with a temporal macro, happens
to be at the end of the buffer with the temporal suffix starting on the
avx boundary, then it would be incorrectly classified as a temporal
macro. This since the helper function lacks the context to see that the
data before the match is something that invalidates the match.

2 years agochore: Update NEWS v4.7.4
Joel Rosdahl [Mon, 21 Nov 2022 18:53:32 +0000 (19:53 +0100)] 
chore: Update NEWS

2 years agochore: Fix typo
Joel Rosdahl [Sun, 20 Nov 2022 21:04:14 +0000 (22:04 +0100)] 
chore: Fix typo

2 years agobump: Upgrade to hiredis 1.1.0
Joel Rosdahl [Sun, 20 Nov 2022 19:46:16 +0000 (20:46 +0100)] 
bump: Upgrade to hiredis 1.1.0

2 years agofix: Avoid race condition in inode cache for quick updates
Joel Rosdahl [Thu, 17 Nov 2022 20:31:58 +0000 (21:31 +0100)] 
fix: Avoid race condition in inode cache for quick updates

The inode cache has a race condition that consists of these events:

1. A file is written with content C1, size S and timestamp (ctime/mtime)
   T.
2. Ccache hashes the file content and asks the inode cache to store the
   digest with a hash of S and T (and some other data) as the key.
3. The file is quickly thereafter written with content C2 without
   changing size S and timestamp T. The timestamp is not updated since
   the file writes are made within a time interval smaller than the
   granularity of the clock used for file system timestamps. At the time
   of writing, a common granularity on a Linux system is 0.004 s (250
   Hz).
4. The inode cache is asked for the file digest and the inode cache
   delivers a digest of C1 even though the file's content is C2.

To avoid the race condition, the inode cache now only caches inodes
whose timestamp was updated more than two seconds ago. This conservative
value is chosen since not all file systems have subsecond resolution.

Fixes #1215.

2 years agofix: Fall back to emulation for unsupported posix_fallocate (#1222)
Oleg Sidorkin [Mon, 14 Nov 2022 18:53:50 +0000 (21:53 +0300)] 
fix: Fall back to emulation for unsupported posix_fallocate (#1222)

posix_fallocate can return EINVAL if filesystem doesn't support it. Fall back to emulation in this case.

E.g. ZFS does so on FreeBSD (haven't tested with ZFS on linux).

This fixes Utill::fallocate unit tests on ZFS.

2 years agofix: Use $XDG_RUNTIME_DIR/ccache-tmp as the default temporary directory
Joel Rosdahl [Sun, 13 Nov 2022 13:43:35 +0000 (14:43 +0100)] 
fix: Use $XDG_RUNTIME_DIR/ccache-tmp as the default temporary directory

See discussion in #1221.

2 years agotest: Test TimePoint::nsec_decimal_part
Joel Rosdahl [Thu, 10 Nov 2022 15:28:08 +0000 (16:28 +0100)] 
test: Test TimePoint::nsec_decimal_part

2 years agofix: Fix bug in Duration arithmetic operators
Joel Rosdahl [Thu, 10 Nov 2022 15:29:25 +0000 (16:29 +0100)] 
fix: Fix bug in Duration arithmetic operators

The bug only affected LongLivedLockFile, which is not used yet.

2 years agoperf: Optimize util::write_file for empty data
Joel Rosdahl [Sun, 13 Nov 2022 08:48:10 +0000 (09:48 +0100)] 
perf: Optimize util::write_file for empty data

2 years agofix: Do not create /run directory on systems that don't have it (#1221)
Oleg Sidorkin [Sun, 13 Nov 2022 15:34:30 +0000 (18:34 +0300)] 
fix: Do not create /run directory on systems that don't have it (#1221)

2 years agodoc: Don't mention removed compiler type "pump"
Joel Rosdahl [Fri, 11 Nov 2022 21:50:06 +0000 (22:50 +0100)] 
doc: Don't mention removed compiler type "pump"

The implementation was removed in
2044fea84b86001b2976ecde946d3d6d0e88ec0a.

2 years agodoc: Add hint about using -fno-pch-timestamp for PCH with Clang
Joel Rosdahl [Fri, 11 Nov 2022 20:03:14 +0000 (21:03 +0100)] 
doc: Add hint about using -fno-pch-timestamp for PCH with Clang

2 years agodoc: Improve description of header file handling after 24cfb7998c27
Joel Rosdahl [Fri, 11 Nov 2022 19:53:09 +0000 (20:53 +0100)] 
doc: Improve description of header file handling after 24cfb7998c27

2 years agofix: Don't consider temporary files incompressible
Joel Rosdahl [Thu, 10 Nov 2022 10:17:26 +0000 (11:17 +0100)] 
fix: Don't consider temporary files incompressible

2 years agofix: Properly wait for recompression jobs if there is no f subdir
Joel Rosdahl [Thu, 10 Nov 2022 09:54:56 +0000 (10:54 +0100)] 
fix: Properly wait for recompression jobs if there is no f subdir

2 years agoenhance: Make subsequent calls to ThreadPool::shut_down NOPs
Joel Rosdahl [Thu, 10 Nov 2022 09:54:09 +0000 (10:54 +0100)] 
enhance: Make subsequent calls to ThreadPool::shut_down NOPs

2 years agodoc: Remove superfluous right parenthesis
Joel Rosdahl [Thu, 10 Nov 2022 10:11:13 +0000 (11:11 +0100)] 
doc: Remove superfluous right parenthesis

2 years agorefactor: Avoid changing loop variable in body of for loop
Joel Rosdahl [Wed, 9 Nov 2022 20:06:05 +0000 (21:06 +0100)] 
refactor: Avoid changing loop variable in body of for loop

This is to please CodeQL's "For loop variable changed in body" check.

2 years agorefactor: Remove empty if clause
Joel Rosdahl [Wed, 9 Nov 2022 20:02:19 +0000 (21:02 +0100)] 
refactor: Remove empty if clause

This is to please CodeQL's "Futile condition" check.

2 years agofix: Avoid duplicate magic header in --inspect
Joel Rosdahl [Tue, 8 Nov 2022 20:44:17 +0000 (21:44 +0100)] 
fix: Avoid duplicate magic header in --inspect

2 years agochore: Sort file list
Joel Rosdahl [Mon, 7 Nov 2022 20:11:36 +0000 (21:11 +0100)] 
chore: Sort file list

2 years agochore: Improve inode cache logging
Joel Rosdahl [Tue, 8 Nov 2022 20:31:32 +0000 (21:31 +0100)] 
chore: Improve inode cache logging

2 years agodoc: Fix indentation
Joel Rosdahl [Mon, 7 Nov 2022 19:16:31 +0000 (20:16 +0100)] 
doc: Fix indentation

2 years agofix(http-storage): Report connection timeout properly
Joel Rosdahl [Mon, 7 Nov 2022 08:16:15 +0000 (09:16 +0100)] 
fix(http-storage): Report connection timeout properly

2 years agoci: Don't run CodeQL on unit tests
Joel Rosdahl [Sun, 6 Nov 2022 08:27:52 +0000 (09:27 +0100)] 
ci: Don't run CodeQL on unit tests

Too many annoying false positives, like "Unused static function" for all
unit tests.

2 years agoci: Refactor ci/build script
Joel Rosdahl [Sun, 6 Nov 2022 08:26:56 +0000 (09:26 +0100)] 
ci: Refactor ci/build script

2 years agochore: Update NEWS v4.7.3
Joel Rosdahl [Sat, 5 Nov 2022 15:49:59 +0000 (16:49 +0100)] 
chore: Update NEWS

2 years agodoc: Mention the default value of keep_comments_cpp
Joel Rosdahl [Sat, 5 Nov 2022 12:13:58 +0000 (13:13 +0100)] 
doc: Mention the default value of keep_comments_cpp

2 years agochore: Fix grammar in comment
Joel Rosdahl [Sat, 5 Nov 2022 12:11:16 +0000 (13:11 +0100)] 
chore: Fix grammar in comment

2 years agofeat: Include I_MPI_CC/I_MPI_CXX in the input hash
Joel Rosdahl [Sat, 5 Nov 2022 12:03:22 +0000 (13:03 +0100)] 
feat: Include I_MPI_CC/I_MPI_CXX in the input hash

The I_MPI_CC and I_MPI_CXX variables affect which underlying compiler
ICC uses. Reference:
<https://www.intel.com/content/www/us/en/develop/documentation/
mpi-developer-reference-windows/top/environment-variable-reference/
compilation-environment-variables.html>.

Closes #1210.

2 years agochore: Improve inode cache logging
Joel Rosdahl [Sat, 5 Nov 2022 11:43:03 +0000 (12:43 +0100)] 
chore: Improve inode cache logging

- Only log inode cache hits/misses in debug mode.
- Always log accumulated inode statistics at program exit.

2 years agofeat: Support -Wp,-M[M]D with -o without -MMD/-MQ/-MT for GCC and Clang
Joel Rosdahl [Thu, 3 Nov 2022 20:47:59 +0000 (21:47 +0100)] 
feat: Support -Wp,-M[M]D with -o without -MMD/-MQ/-MT for GCC and Clang

Closes #1203.

2 years agotest: Silence progress messages from CCACHE_UMASK test
Joel Rosdahl [Thu, 3 Nov 2022 20:42:06 +0000 (21:42 +0100)] 
test: Silence progress messages from CCACHE_UMASK test

2 years agotest: Silence Clang warnings about unused arguments during compilation
Joel Rosdahl [Thu, 3 Nov 2022 20:39:37 +0000 (21:39 +0100)] 
test: Silence Clang warnings about unused arguments during compilation

2 years agotest: Remove left-over fi statement
Joel Rosdahl [Thu, 3 Nov 2022 20:06:46 +0000 (21:06 +0100)] 
test: Remove left-over fi statement

2 years agofix: Fix parsing of sloppiness with trailing delimiter
Joel Rosdahl [Thu, 3 Nov 2022 19:56:32 +0000 (20:56 +0100)] 
fix: Fix parsing of sloppiness with trailing delimiter

2 years agofix: Avoid redundant slash in HTTP storage URLs with subdirs
Joel Rosdahl [Thu, 3 Nov 2022 19:48:05 +0000 (20:48 +0100)] 
fix: Avoid redundant slash in HTTP storage URLs with subdirs

2 years agofix: Hash variables that affect Clang version on macOS
Joel Rosdahl [Thu, 3 Nov 2022 19:45:21 +0000 (20:45 +0100)] 
fix: Hash variables that affect Clang version on macOS

Fixes #1205.

2 years agochore: Tweak comments
Joel Rosdahl [Thu, 3 Nov 2022 19:28:18 +0000 (20:28 +0100)] 
chore: Tweak comments

2 years agochore: Improve logging of file read failures
Joel Rosdahl [Wed, 2 Nov 2022 18:18:21 +0000 (19:18 +0100)] 
chore: Improve logging of file read failures

2 years agochore: Update authors v4.7.2
Joel Rosdahl [Sat, 29 Oct 2022 11:17:57 +0000 (13:17 +0200)] 
chore: Update authors

2 years agochore: Update NEWS
Joel Rosdahl [Sat, 29 Oct 2022 08:10:45 +0000 (10:10 +0200)] 
chore: Update NEWS

2 years agofix: Process the argument following a -Xarch argument (#1199)
rblx-kbuck [Fri, 28 Oct 2022 18:41:28 +0000 (11:41 -0700)] 
fix: Process the argument following a -Xarch argument (#1199)

Since there are already checks enforcing that all -Xarch arguments match
each other and -arch, we can assume that the compiler would also
interpret the following argument, so ccache should interpret it too.

Fixes #1198.

2 years agofix: Use configured umask for command line operations like --zero-stats
Joel Rosdahl [Thu, 27 Oct 2022 20:23:50 +0000 (22:23 +0200)] 
fix: Use configured umask for command line operations like --zero-stats

Closes #1197.

2 years agotest: Disable flaky Windows profiling tests
Joel Rosdahl [Thu, 27 Oct 2022 20:05:39 +0000 (22:05 +0200)] 
test: Disable flaky Windows profiling tests

2 years agobuild: Include limits.h for PATH_MAX
Joel Rosdahl [Wed, 26 Oct 2022 19:00:31 +0000 (21:00 +0200)] 
build: Include limits.h for PATH_MAX

Note: The C++ climits header does not guarantee to define PATH_MAX.

Fixes #1193.

2 years agofix: Use separate 32-bit and 64-bit inode cache files
Joel Rosdahl [Tue, 25 Oct 2022 19:28:04 +0000 (21:28 +0200)] 
fix: Use separate 32-bit and 64-bit inode cache files

The memory layout of the shared region differs between 32-bit and 64-bit
ccache binaries, so use different inode cache files.

2 years agobuild: Apply standard settings and warnings to lockfile test (#1195)
Gregor Jasny [Mon, 24 Oct 2022 14:51:54 +0000 (16:51 +0200)] 
build: Apply standard settings and warnings to lockfile test (#1195)

This ensures the required include of `config.h` to get `mode_t` defined on Windows.

2 years agochore: Correct contributor in NEWS
Joel Rosdahl [Sat, 22 Oct 2022 18:06:08 +0000 (20:06 +0200)] 
chore: Correct contributor in NEWS

2 years agochore: Update NEWS v4.7.1
Joel Rosdahl [Sat, 22 Oct 2022 17:48:41 +0000 (19:48 +0200)] 
chore: Update NEWS