]> git.ipfire.org Git - thirdparty/ccache.git/log
thirdparty/ccache.git
3 years agofix: handle newlines on Windows properly 968/head
Luboš Luňák [Mon, 1 Nov 2021 12:37:11 +0000 (12:37 +0000)] 
fix: handle newlines on Windows properly

3 years agofix: Use default object file extension .obj for MSVC (#964)
Luboš Luňák [Tue, 23 Nov 2021 18:35:46 +0000 (19:35 +0100)] 
fix: Use default object file extension .obj for MSVC (#964)

3 years agofix: Make AVX2 code work also with MSVC (#963)
Luboš Luňák [Tue, 23 Nov 2021 18:33:34 +0000 (19:33 +0100)] 
fix: Make AVX2 code work also with MSVC (#963)

3 years agochore: Improve language in NEWS
Joel Rosdahl [Wed, 17 Nov 2021 19:49:40 +0000 (20:49 +0100)] 
chore: Improve language in NEWS

3 years agochore: Update NEWS
Joel Rosdahl [Wed, 17 Nov 2021 19:31:58 +0000 (20:31 +0100)] 
chore: Update NEWS

(cherry picked from commit 764dc83795d9a05c2a9d69f267ed86f61a253d09)

3 years agofix: Correct error handling for unconstructible storage backend
Joel Rosdahl [Wed, 17 Nov 2021 16:00:34 +0000 (17:00 +0100)] 
fix: Correct error handling for unconstructible storage backend

This fixes a crash when using a secondary storage backend that throws on
construction, for instance the Redis backend with an unreachable server.

Closes #966.

3 years agofix: Remove extraneous space in log message
Joel Rosdahl [Wed, 17 Nov 2021 15:59:55 +0000 (16:59 +0100)] 
fix: Remove extraneous space in log message

3 years agofix: Correct entry_size field for result entries
Joel Rosdahl [Wed, 17 Nov 2021 15:47:41 +0000 (16:47 +0100)] 
fix: Correct entry_size field for result entries

The entry_size field in result entries created by ccache 4.5 are off by
one. Fix this by properly accounting for the new format_ver field in
result payload data.

Note: This bug only affects the recompression feature (-X/--recompress)
and not other ccache usage.

Closes #965.

3 years agofix: Store actual compression level in cache entry header
Joel Rosdahl [Wed, 17 Nov 2021 15:45:25 +0000 (16:45 +0100)] 
fix: Store actual compression level in cache entry header

This detail got lost in e83ac28d74dcb60af9ceaa58d92e706ded089ea3.

3 years agofeat: Visual C/C++ compiler support (#506)
Cristian Adam [Mon, 15 Nov 2021 19:06:16 +0000 (20:06 +0100)] 
feat: Visual C/C++ compiler support (#506)

3 years agochore: Update NEWS v4.5
Joel Rosdahl [Sat, 13 Nov 2021 09:38:46 +0000 (10:38 +0100)] 
chore: Update NEWS

3 years agochore: Update authors
Joel Rosdahl [Fri, 12 Nov 2021 19:07:09 +0000 (20:07 +0100)] 
chore: Update authors

3 years agodoc: Tweak preposition
Joel Rosdahl [Fri, 12 Nov 2021 18:54:07 +0000 (19:54 +0100)] 
doc: Tweak preposition

3 years agofeat: Pretty-print entry type in --dump-{manifest,result}
Joel Rosdahl [Tue, 9 Nov 2021 18:20:07 +0000 (19:20 +0100)] 
feat: Pretty-print entry type in --dump-{manifest,result}

3 years agofeat: Add namespace support
Joel Rosdahl [Mon, 8 Nov 2021 18:38:35 +0000 (19:38 +0100)] 
feat: Add namespace support

If a namespace configured, the namespace string will be added to the
hashed data for each compilation. This will make the associated cache
entries logically separate from cache entries with other namespaces, but
they will still share the same storage space. Cache entries can also be
selectively removed from the primary cache with the command line option
--evict-namespace, potentially in combination with --evict-older-than.

Closes #870.

3 years agofix: Disable hard link and file clone with enabled secondary storage
Joel Rosdahl [Sun, 7 Nov 2021 12:37:47 +0000 (13:37 +0100)] 
fix: Disable hard link and file clone with enabled secondary storage

3 years agorefactor: Rename tag header field to namespace
Joel Rosdahl [Sat, 6 Nov 2021 18:44:52 +0000 (19:44 +0100)] 
refactor: Rename tag header field to namespace

3 years agofeat: Support rewriting absolute path to Clang option --gcc-toolchain
Joel Rosdahl [Sat, 6 Nov 2021 18:25:32 +0000 (19:25 +0100)] 
feat: Support rewriting absolute path to Clang option --gcc-toolchain

Closes #889.

3 years agostyle: Add curly braces around if statement body
Joel Rosdahl [Sat, 6 Nov 2021 15:29:34 +0000 (16:29 +0100)] 
style: Add curly braces around if statement body

3 years agodoc: Fix description of --checksum-file
Joel Rosdahl [Sat, 6 Nov 2021 15:22:48 +0000 (16:22 +0100)] 
doc: Fix description of --checksum-file

3 years agofix: Correct debug dir handling on Windows (#955)
Luboš Luňák [Sat, 6 Nov 2021 15:28:01 +0000 (16:28 +0100)] 
fix: Correct debug dir handling on Windows (#955)

3 years agofeat: Improve cache entry format
Joel Rosdahl [Thu, 4 Nov 2021 07:20:33 +0000 (08:20 +0100)] 
feat: Improve cache entry format

Cache entry header changes:

* Changed magic bytes to represent a generic “ccache entry” instead of a
  specific result/manifest entry.
* Added a payload type field (currently manifest or result) separate
  from the magic bytes. This allows code that only operates on the
  “container” (e.g. recompression) to be ignorant of payload types and
  changes to payload formats.
* Added a creation timestamp field. This can be useful when debugging,
  for instance to match the timestamp with a build start/end.
* Added a field for the ccache version that created the cache entry.
  This can be useful for debugging, and it also makes it possible for
  future ccache versions to refuse using results from previous buggy
  ccache versions.
* Added a tag field to be used by a future feature.

Cache entry epilogue changes:

* Use 128-bit XXH3 instead of 64-bit XXH3 for the checksum since those
  extra bits are computed by the algorithm anyway.

Manifest/result entry changes:

* Added manifest/result format version fields. This means that the
  payload version can be stepped without stepping the outer format
  version, thereby making it possible for older ccache versions to for
  instance recompress the cache even though the payload format has
  changed.

Other improvements:

* Added generic Reader and Writer interfaces to decouple code from using
  FILE* directly.
* Refactored checksum handling into ChecksummingReader and
  ChecksummingWriter.

3 years agoenhance: Add util::XXH3_128
Joel Rosdahl [Tue, 19 Oct 2021 18:38:54 +0000 (20:38 +0200)] 
enhance: Add util::XXH3_128

3 years agorefactor: Rename Checksum to util::XXH3_64
Joel Rosdahl [Tue, 19 Oct 2021 18:34:24 +0000 (20:34 +0200)] 
refactor: Rename Checksum to util::XXH3_64

3 years agobump: Upgrade to BLAKE3 1.2.0
Joel Rosdahl [Sat, 6 Nov 2021 07:54:46 +0000 (08:54 +0100)] 
bump: Upgrade to BLAKE3 1.2.0

3 years agobump: Upgrade to cpp-httplib 0.9.7
Joel Rosdahl [Wed, 3 Nov 2021 20:38:50 +0000 (21:38 +0100)] 
bump: Upgrade to cpp-httplib 0.9.7

3 years agobump: Upgrade to optional-lite 3.5.0
Joel Rosdahl [Wed, 3 Nov 2021 20:35:05 +0000 (21:35 +0100)] 
bump: Upgrade to optional-lite 3.5.0

3 years agobump: Upgrade to fmt 8.0.1
Joel Rosdahl [Wed, 3 Nov 2021 20:33:08 +0000 (21:33 +0100)] 
bump: Upgrade to fmt 8.0.1

3 years agoci: Add job for testing Clang 12
Joel Rosdahl [Wed, 3 Nov 2021 20:28:53 +0000 (21:28 +0100)] 
ci: Add job for testing Clang 12

3 years agofix: Correct win32 log messages about file locks (#953)
Luboš Luňák [Wed, 3 Nov 2021 20:19:54 +0000 (21:19 +0100)] 
fix: Correct win32 log messages about file locks (#953)

3 years agobump: Upgrade to Hiredis 1.0.2 (#949)
Alexander Falkenstern [Thu, 28 Oct 2021 18:42:12 +0000 (20:42 +0200)] 
bump: Upgrade to Hiredis 1.0.2 (#949)

3 years agofix: Support special characters in URL user info
Joel Rosdahl [Wed, 6 Oct 2021 19:37:31 +0000 (21:37 +0200)] 
fix: Support special characters in URL user info

Bump CxxUrl to v0.3 to fix a URL parsing bug, as suggested by Russell
McClellan.

Fixes #941.

3 years agodoc: Tweak AsciiDoc bullet indentation
Joel Rosdahl [Wed, 6 Oct 2021 19:29:25 +0000 (21:29 +0200)] 
doc: Tweak AsciiDoc bullet indentation

3 years agoMerge pull request #934 from gjasny/no-keep-alive
Joel Rosdahl [Wed, 6 Oct 2021 19:27:07 +0000 (21:27 +0200)] 
Merge pull request #934 from gjasny/no-keep-alive

3 years agofeat(http-storage): Make HTTP keep-alive configurable 934/head
Gregor Jasny [Fri, 1 Oct 2021 06:54:38 +0000 (08:54 +0200)] 
feat(http-storage): Make HTTP keep-alive configurable

3 years agofix(http-storage): Disable broken connection keep-alive
Gregor Jasny [Sun, 5 Sep 2021 17:55:27 +0000 (19:55 +0200)] 
fix(http-storage): Disable broken connection keep-alive

After ignoring SIGPIPE (b2a88e7) keep-alive support has been
re-enabled for HTTP Storage. Unfortunately it's still broken
but does not crash ccache, anymore.

This is the tcpdump of a (cache miss) compilation that takes longer
than the server keep-alive timeout:

```
10:51:17.214678 IP 10.34.129.62.37468 > 10.34.132.45.webcache: Flags [S], seq 1018344313, win 62727, options [mss 8961,sackOK,TS val 1638189791 ecr 0,nop,wscale 7], length 0
10:51:17.216386 IP 10.34.132.45.webcache > 10.34.129.62.37468: Flags [S.], seq 2695216843, ack 1018344314, win 26847, options [mss 8645,sackOK,TS val 1598789083 ecr 1638189791,nop,wscale 9], length 0
10:51:17.216424 IP 10.34.129.62.37468 > 10.34.132.45.webcache: Flags [.], ack 1, win 491, options [nop,nop,TS val 1638189793 ecr 1598789083], length 0
10:51:17.216534 IP 10.34.129.62.37468 > 10.34.132.45.webcache: Flags [P.], seq 1:143, ack 1, win 491, options [nop,nop,TS val 1638189793 ecr 1598789083], length 142: HTTP: GET /cache/ff87vlgke3poou7uq1ma2m3hh000gckmq HTTP/1.1
10:51:17.217393 IP 10.34.132.45.webcache > 10.34.129.62.37468: Flags [.], ack 143, win 55, options [nop,nop,TS val 1598789084 ecr 1638189793], length 0
10:51:17.217433 IP 10.34.132.45.webcache > 10.34.129.62.37468: Flags [P.], seq 1:309, ack 143, win 55, options [nop,nop,TS val 1598789085 ecr 1638189793], length 308: HTTP: HTTP/1.1 404 Not Found
10:51:17.217456 IP 10.34.129.62.37468 > 10.34.132.45.webcache: Flags [.], ack 309, win 489, options [nop,nop,TS val 1638189794 ecr 1598789085], length 0
10:51:17.538819 IP 10.34.129.62.37468 > 10.34.132.45.webcache: Flags [P.], seq 143:285, ack 309, win 489, options [nop,nop,TS val 1638190115 ecr 1598789085], length 142: HTTP: GET /cache/135di89r02vv5fgopbtsopfjllo01b8lg HTTP/1.1
10:51:17.539838 IP 10.34.132.45.webcache > 10.34.129.62.37468: Flags [P.], seq 309:617, ack 285, win 57, options [nop,nop,TS val 1598789407 ecr 1638190115], length 308: HTTP: HTTP/1.1 404 Not Found
10:51:17.539876 IP 10.34.129.62.37468 > 10.34.132.45.webcache: Flags [.], ack 617, win 487, options [nop,nop,TS val 1638190117 ecr 1598789407], length 0

10:52:32.536322 IP 10.34.132.45.webcache > 10.34.129.62.37468: Flags [F.], seq 617, ack 285, win 57, options [nop,nop,TS val 1598864404 ecr 1638190117], length 0
10:52:32.577893 IP 10.34.129.62.37468 > 10.34.132.45.webcache: Flags [.], ack 618, win 487, options [nop,nop,TS val 1638265155 ecr 1598864404], length 0

10:52:42.173135 IP 10.34.129.62.37468 > 10.34.132.45.webcache: Flags [P.], seq 285:492, ack 618, win 487, options [nop,nop,TS val 1638274750 ecr 1598864404], length 207: HTTP: PUT /cache/135di89r02vv5fgopbtsopfjllo01b8lg HTTP/1.1
10:52:42.173153 IP 10.34.129.62.37468 > 10.34.132.45.webcache: Flags [.], seq 492:9125, ack 618, win 487, options [nop,nop,TS val 1638274750 ecr 1598864404], length 8633: HTTP
10:52:42.173159 IP 10.34.129.62.37468 > 10.34.132.45.webcache: Flags [P.], seq 9125:17758, ack 618, win 487, options [nop,nop,TS val 1638274750 ecr 1598864404], length 8633: HTTP
10:52:42.173165 IP 10.34.129.62.37468 > 10.34.132.45.webcache: Flags [.], seq 17758:26391, ack 618, win 487, options [nop,nop,TS val 1638274750 ecr 1598864404], length 8633: HTTP
10:52:42.174049 IP 10.34.132.45.webcache > 10.34.129.62.37468: Flags [R], seq 2695217461, win 0, length 0
10:52:42.174056 IP 10.34.132.45.webcache > 10.34.129.62.37468: Flags [R], seq 2695217461, win 0, length 0
10:52:42.174057 IP 10.34.132.45.webcache > 10.34.129.62.37468: Flags [R], seq 2695217461, win 0, length 0
```

The PUT error due to the closed socket is also logged:
```
[2021-09-14T10:52:42.068112 2089 ] Storing result file modules/asyncly/Test/Unit/CMakeFiles/test_asyncly.dir/future/FutureTest.cpp.o
[2021-09-14T10:52:42.068118 2089 ] Storing embedded file #0 .o (36847216 bytes) from modules/asyncly/Test/Unit/CMakeFiles/test_asyncly.dir/future/FutureTest.cpp.o
[2021-09-14T10:52:42.154930 2089 ] Storing result file modules/asyncly/Test/Unit/CMakeFiles/test_asyncly.dir/future/FutureTest.cpp.o.d
[2021-09-14T10:52:42.154951 2089 ] Storing embedded file #1 .d (122626 bytes) from modules/asyncly/Test/Unit/CMakeFiles/test_asyncly.dir/future/FutureTest.cpp.o.d
[2021-09-14T10:52:42.155260 2089 ] Stored 135di89r02vv5fgopbtsopfjllo01b8lg in primary storage (/cache/ccache/1/3/5di89r02vv5fgopbtsopfjllo01b8lgR)
[2021-09-14T10:52:42.175445 2089 ] Failed to put /cache/135di89r02vv5fgopbtsopfjllo01b8lg to http storage: Unknown (1)
[2021-09-14T10:52:42.175999 2089 ] Adding result key to /cache/ccache/f/f/87vlgke3poou7uq1ma2m3hh000gckmqM
[2021-09-14T10:52:42.179375 2089 ] Using default compression level 1
[2021-09-14T10:52:42.180306 2089 ] Stored ff87vlgke3poou7uq1ma2m3hh000gckmq in primary storage (/cache/ccache/f/f/87vlgke3poou7uq1ma2m3hh000gckmqM)
[2021-09-14T10:52:42.180341 2089 ] Not putting in http://jenkins3-bazelcache.ec2.getgotools.net:8080/cache since it failed earlier
```

I believe a 90s compilation is worth caching and more important than
skipping the TCP three-way handshake.

3 years agodocs: Remove stray heading in NEWS
Joel Rosdahl [Tue, 28 Sep 2021 19:47:22 +0000 (21:47 +0200)] 
docs: Remove stray heading in NEWS

3 years agochore: Update authors v4.4.2
Joel Rosdahl [Tue, 28 Sep 2021 19:36:30 +0000 (21:36 +0200)] 
chore: Update authors

3 years agoUpdate NEWS
Joel Rosdahl [Tue, 28 Sep 2021 19:36:16 +0000 (21:36 +0200)] 
Update NEWS

3 years agofix: Don’t update manifest on preprocessed hit with disabled direct mode
Joel Rosdahl [Tue, 28 Sep 2021 18:36:17 +0000 (20:36 +0200)] 
fix: Don’t update manifest on preprocessed hit with disabled direct mode

After c7c0837a23fe9dc79613bf3dd4ddd8d91c58d541, update_manifest_file can
be called erroneously if the direct mode is disabled when there has been
a preprocessed hit.

Fix this by asserting that update_manifest_file is only called when
direct mode is enabled, fixing the call site and adding the test case
that should already have existed.

Fixes #935.

3 years agoci: Pin macOS to 10.15
Joel Rosdahl [Mon, 27 Sep 2021 19:08:56 +0000 (21:08 +0200)] 
ci: Pin macOS to 10.15

macOS-latest now means macOS-11.

3 years agorefactor: Pass const Context to process_arg
Joel Rosdahl [Sun, 26 Sep 2021 19:56:14 +0000 (21:56 +0200)] 
refactor: Pass const Context to process_arg

This narrows down what process_arg is allowed to do.

3 years agorefactor: Move included_pch_file from Context to ArgsInfo
Joel Rosdahl [Sun, 26 Sep 2021 19:54:03 +0000 (21:54 +0200)] 
refactor: Move included_pch_file from Context to ArgsInfo

3 years agoenhance: Add util::replace_all function
Joel Rosdahl [Wed, 22 Sep 2021 19:58:47 +0000 (21:58 +0200)] 
enhance: Add util::replace_all function

3 years agotest: Cope with CC being a wrapper script that uses ccache
Joel Rosdahl [Mon, 20 Sep 2021 05:38:27 +0000 (07:38 +0200)] 
test: Cope with CC being a wrapper script that uses ccache

Fixes #914.

3 years agotest: Silence stray output
Joel Rosdahl [Mon, 20 Sep 2021 05:36:51 +0000 (07:36 +0200)] 
test: Silence stray output

3 years agotest: Use shell builtin pwd for basedir test (#933)
Kira Bruneau [Mon, 13 Sep 2021 17:05:44 +0000 (13:05 -0400)] 
test: Use shell builtin pwd for basedir test (#933)

3 years agochore: Update news v4.4.1
Joel Rosdahl [Sat, 11 Sep 2021 07:00:33 +0000 (09:00 +0200)] 
chore: Update news

3 years agofeat: Show separate statistics counters for misses
Joel Rosdahl [Sat, 11 Sep 2021 06:51:33 +0000 (08:51 +0200)] 
feat: Show separate statistics counters for misses

3 years agofix(http-storage): Enable keep-alive again after fixing SIGPIPE issue
Joel Rosdahl [Thu, 9 Sep 2021 19:35:46 +0000 (21:35 +0200)] 
fix(http-storage): Enable keep-alive again after fixing SIGPIPE issue

See #931.

3 years agofix(redis-storage): Ignore SIGPIPE
Joel Rosdahl [Thu, 9 Sep 2021 18:55:53 +0000 (20:55 +0200)] 
fix(redis-storage): Ignore SIGPIPE

libhiredis doesn’t pass MSG_NOSIGNAL to send to ccache can die from
SIGPIPE. Disable SIGPIPE so that the socket code receives EPIPE
correctly.

This should also fix a similar problem with the HTTP storage backend.

Fixes #931.

3 years agobump: Upgrade to cpp-httplib 0.9.4
Joel Rosdahl [Fri, 3 Sep 2021 06:21:52 +0000 (08:21 +0200)] 
bump: Upgrade to cpp-httplib 0.9.4

3 years agorefactor: Improve compatibility definition of DLLIMPORT
Joel Rosdahl [Sun, 29 Aug 2021 19:36:28 +0000 (21:36 +0200)] 
refactor: Improve compatibility definition of DLLIMPORT

3 years agofix: Always store configuration origin value (#928)
Gregor Jasny [Tue, 7 Sep 2021 17:22:51 +0000 (19:22 +0200)] 
fix: Always store configuration origin value (#928)

3 years agofix(http-storage): Disable broken connection keep-alive (#927)
Gregor Jasny [Sun, 5 Sep 2021 17:55:27 +0000 (19:55 +0200)] 
fix(http-storage): Disable broken connection keep-alive (#927)

3 years agoFix build errors with clang on Windows (#924)
Orgad Shaneh [Wed, 1 Sep 2021 17:40:02 +0000 (20:40 +0300)] 
Fix build errors with clang on Windows (#924)

3 years agoMerge pull request #918 from gjasny/ipo
Joel Rosdahl [Sun, 29 Aug 2021 18:52:50 +0000 (20:52 +0200)] 
Merge pull request #918 from gjasny/ipo

3 years agofeat(cmake): Disable IPO for mingw 918/head
Gregor Jasny [Sun, 22 Aug 2021 11:09:47 +0000 (13:09 +0200)] 
feat(cmake): Disable IPO for mingw

On mingw IPO seems to be broken (out-of-diskspace errors
and lacking linker module support), therefore IPO support is being
deactivated.

3 years agofeat(cmake): Use standard linker for LTO scenarios
Gregor Jasny [Sun, 22 Aug 2021 10:49:09 +0000 (12:49 +0200)] 
feat(cmake): Use standard linker for LTO scenarios

3 years agofeat(cmake): Use the matching lld for clang
Gregor Jasny [Sun, 22 Aug 2021 10:47:04 +0000 (12:47 +0200)] 
feat(cmake): Use the matching lld for clang

Otherwise one could end up on Ubuntu with clang-11 calling lld-10
which breaks IPO.

3 years agofix(test): Pass all three required arguments to expect_file_count (#925)
Gregor Jasny [Sun, 29 Aug 2021 17:50:22 +0000 (19:50 +0200)] 
fix(test): Pass all three required arguments to expect_file_count (#925)

3 years agofix(test): Fix basedir suite failure with symlinked PWD
Joel Rosdahl [Tue, 24 Aug 2021 17:43:30 +0000 (19:43 +0200)] 
fix(test): Fix basedir suite failure with symlinked PWD

Fixes #916.

3 years agotest: Improve output of differing text files on failure
Joel Rosdahl [Tue, 24 Aug 2021 17:40:35 +0000 (19:40 +0200)] 
test: Improve output of differing text files on failure

3 years agochore: Remove asciidoctor package from CentOS 8 Dockerfile
Joel Rosdahl [Tue, 24 Aug 2021 16:58:43 +0000 (18:58 +0200)] 
chore: Remove asciidoctor package from CentOS 8 Dockerfile

Asciidoctor is apparently not packaged for CentOS 8.

3 years agochore: Sort LICENSE.adoc entries properly
Joel Rosdahl [Fri, 20 Aug 2021 19:02:25 +0000 (21:02 +0200)] 
chore: Sort LICENSE.adoc entries properly

3 years agofeat: Only show secondary storage stats if non-empty or with -vv
Joel Rosdahl [Fri, 20 Aug 2021 18:12:29 +0000 (20:12 +0200)] 
feat: Only show secondary storage stats if non-empty or with -vv

3 years agofix(test): Fix .incbin test with newer binutils
Joel Rosdahl [Fri, 20 Aug 2021 17:56:17 +0000 (19:56 +0200)] 
fix(test): Fix .incbin test with newer binutils

The assembler in binutils 2.37 doesn’t want to include /dev/null with
a .incbin directive:

    /tmp/ccbGWiew.s: Assembler messages:
    /tmp/ccbGWiew.s:4: Error: unable to include `/dev/null'
    incbin.s: Assembler messages:
    incbin.s:1: Error: unable to include `/dev/null'

3 years agodocs: Fix grammar
Joel Rosdahl [Thu, 19 Aug 2021 19:52:44 +0000 (21:52 +0200)] 
docs: Fix grammar

3 years agochore: Update release date v4.4
Joel Rosdahl [Thu, 19 Aug 2021 18:43:30 +0000 (20:43 +0200)] 
chore: Update release date

3 years agobuild: Improve detection av Ccache version from source repo
Joel Rosdahl [Thu, 19 Aug 2021 18:34:43 +0000 (20:34 +0200)] 
build: Improve detection av Ccache version from source repo

When running CMake outside the source repository a plain git command
naturally won’t find the repository. Fix this by pointing git towards
the repository.

3 years agochore: Fix Cppcheck warnings
Joel Rosdahl [Thu, 19 Aug 2021 17:57:13 +0000 (19:57 +0200)] 
chore: Fix Cppcheck warnings

3 years agodocs: Improve contributor notes in NEWS
Joel Rosdahl [Wed, 18 Aug 2021 19:43:35 +0000 (21:43 +0200)] 
docs: Improve contributor notes in NEWS

3 years agochore: Update authors
Joel Rosdahl [Wed, 18 Aug 2021 18:11:34 +0000 (20:11 +0200)] 
chore: Update authors

3 years agodocs: Update NEWS for ccache 4.4
Joel Rosdahl [Tue, 17 Aug 2021 18:04:24 +0000 (20:04 +0200)] 
docs: Update NEWS for ccache 4.4

3 years agochore: Add Ryan Burns to .mailmap
Joel Rosdahl [Tue, 17 Aug 2021 18:03:57 +0000 (20:03 +0200)] 
chore: Add Ryan Burns to .mailmap

3 years agochore: Use official debian:11 Docker tag
Joel Rosdahl [Tue, 17 Aug 2021 16:52:21 +0000 (18:52 +0200)] 
chore: Use official debian:11 Docker tag

3 years agodocs: Use consistent casing of “Ccache” in NEWS
Joel Rosdahl [Tue, 17 Aug 2021 16:34:36 +0000 (18:34 +0200)] 
docs: Use consistent casing of “Ccache” in NEWS

3 years agofeat(tracing): Add more trace points
Joel Rosdahl [Mon, 16 Aug 2021 19:17:16 +0000 (21:17 +0200)] 
feat(tracing): Add more trace points

3 years agofix(tracing): Always call MTR_END for each MTR_BEGIN
Joel Rosdahl [Mon, 16 Aug 2021 19:16:18 +0000 (21:16 +0200)] 
fix(tracing): Always call MTR_END for each MTR_BEGIN

3 years agorefactor(tracing): Use MTR_SCOPE
Joel Rosdahl [Mon, 16 Aug 2021 19:15:56 +0000 (21:15 +0200)] 
refactor(tracing): Use MTR_SCOPE

3 years agobump: Upgrade minitrace to latest master
Joel Rosdahl [Mon, 16 Aug 2021 19:05:30 +0000 (21:05 +0200)] 
bump: Upgrade minitrace to latest master

3 years agofeat: Improve statistics summary
Joel Rosdahl [Mon, 16 Aug 2021 06:10:21 +0000 (08:10 +0200)] 
feat: Improve statistics summary

The number of statistics counters has become very large, making the
output “ccache -s” hard to overview.

Improvements:

- The -s/--show-stats option now prints a more condensed overview where
  the counters representing “uncacheable calls” are summed as
  “uncacheable” and “errors” counters. Note: Scripts should use
  --print-stats instead of trying to parse the output of --show-stats.
- Added hit rate for direct/preprocessed hits/misses as well.
- Added a new -v/--verbose option, which makes --show-stats and
  --show-log-stats show more details.

3 years agostyle: Use uppercase literal suffixes
Joel Rosdahl [Sun, 15 Aug 2021 20:06:29 +0000 (22:06 +0200)] 
style: Use uppercase literal suffixes

3 years agofeat: Print statistics IDs instead of descriptions to debug log
Joel Rosdahl [Sun, 15 Aug 2021 19:41:03 +0000 (21:41 +0200)] 
feat: Print statistics IDs instead of descriptions to debug log

This is in preparation for future statistics counters that won’t have
human-readable descriptions. (The statistics IDs are human-readable
enough.)

3 years agorefactor: Return from process_main_options instead of exiting
Joel Rosdahl [Sun, 15 Aug 2021 19:29:40 +0000 (21:29 +0200)] 
refactor: Return from process_main_options instead of exiting

3 years agofix: Don’t print “unrecognized option” twice
Joel Rosdahl [Sun, 15 Aug 2021 19:27:36 +0000 (21:27 +0200)] 
fix: Don’t print “unrecognized option” twice

Fixes an issue introduced in 513c83faaafc3a9848cb4492961104e4f4768247.

3 years agoenhance: Let TextTable::add_row take a vector
Joel Rosdahl [Sun, 15 Aug 2021 18:45:59 +0000 (20:45 +0200)] 
enhance: Let TextTable::add_row take a vector

3 years agoenhance: Add TextTable support for cells spanning several columns
Joel Rosdahl [Sat, 14 Aug 2021 19:44:51 +0000 (21:44 +0200)] 
enhance: Add TextTable support for cells spanning several columns

3 years agorefactor: Simplify TextTable usage
Joel Rosdahl [Wed, 11 Aug 2021 10:38:45 +0000 (12:38 +0200)] 
refactor: Simplify TextTable usage

3 years agoenhance: Add util::TextTable::TextTable(const char*)
Joel Rosdahl [Wed, 11 Aug 2021 10:36:46 +0000 (12:36 +0200)] 
enhance: Add util::TextTable::TextTable(const char*)

3 years agoenhance: Add TextTable support for right-aligned integers
Joel Rosdahl [Wed, 11 Aug 2021 10:29:22 +0000 (12:29 +0200)] 
enhance: Add TextTable support for right-aligned integers

3 years agobuild: Link ws2_32 to third_party instead of ccache_framework (#913)
R. Voggenauer [Sun, 15 Aug 2021 18:32:27 +0000 (20:32 +0200)] 
build: Link ws2_32 to third_party instead of ccache_framework (#913)

3 years agofix(test): Fix typos in trim_dir suite
Joel Rosdahl [Tue, 10 Aug 2021 18:35:11 +0000 (20:35 +0200)] 
fix(test): Fix typos in trim_dir suite

3 years agofeat: Support subsecond mtime/atime for --cleanup and --trim-dir
Joel Rosdahl [Tue, 10 Aug 2021 18:32:43 +0000 (20:32 +0200)] 
feat: Support subsecond mtime/atime for --cleanup and --trim-dir

3 years agoenhance: Detect support for st_atim field in struct stat
Joel Rosdahl [Tue, 10 Aug 2021 18:30:19 +0000 (20:30 +0200)] 
enhance: Detect support for st_atim field in struct stat

3 years agofeat: Rename --directory option to --dir
Joel Rosdahl [Tue, 10 Aug 2021 18:04:39 +0000 (20:04 +0200)] 
feat: Rename --directory option to --dir

Other options use abbreviated forms (e.g. “config” and “max”), so this
makes things more consistent.

3 years agofeat: Add --trim-dir option for usage with secondary storage directories
Joel Rosdahl [Tue, 10 Aug 2021 15:44:30 +0000 (17:44 +0200)] 
feat: Add --trim-dir option for usage with secondary storage directories

3 years agofeat: Make --config-path and --directory affect whole command line
Joel Rosdahl [Tue, 10 Aug 2021 13:32:07 +0000 (15:32 +0200)] 
feat: Make --config-path and --directory affect whole command line

Command line options are processed strictly in order, which means that

    ccache -d dir -s

is not the same as

    ccache -s -d dir

which is not very intuitive. There are also planned features where is
doesn’t make sense to have to put “non-command options” before the
“command options”.

Improve this by processing command line options in two passes: first
non-command options and then command options (still in order).

3 years agorefactor: Move static getopt data to global level
Joel Rosdahl [Tue, 10 Aug 2021 13:21:34 +0000 (15:21 +0200)] 
refactor: Move static getopt data to global level

3 years agodoc: Describe interaction between primary and secondary storage
Joel Rosdahl [Mon, 9 Aug 2021 19:40:38 +0000 (21:40 +0200)] 
doc: Describe interaction between primary and secondary storage