Skip to content

Enable ccache, with its cache outside the build env - #11

Merged
fingolfin merged 4 commits into
mainfrom
mh-claude/ccache
Oct 20, 2026
Merged

fingolfin merged 4 commits into
mainfrom
mh-claude/ccache

Conversation

@fingolfin

Copy link
Copy Markdown
Member

Install ccache in the build env, which activates the existing gcc/g++ symlinks, and point it at a ccache/ directory next to envs/. The build env's path contains the GAP version, so a cache inside it would never be reused; outside it, CI can persist it across builds.

Building the packages takes 40-70 of the 55-90 minutes the gap-system/gap CI job needs, almost all of it in libsemigroups, semigroups, Normaliz and CARAT, which change rarely.

Assisted-by: Claude Code (Opus 5.5)

Install ccache in the build env, which activates the existing gcc/g++
symlinks, and point it at a ccache/ directory next to envs/. The build
env's path contains the GAP version, so a cache inside it would never be
reused; outside it, CI can persist it across builds.

Building the packages takes 40-70 of the 55-90 minutes the gap-system/gap
CI job needs, almost all of it in libsemigroups, semigroups, Normaliz and
CARAT, which change rarely.

Assisted-by: Claude Code (Opus 5.5)
From the host Cygwin, `[ -x .../usr/bin/ccache ]` is false although
setup installed ccache there, so the ccache setup never ran. Test for
ccache.exe instead, and create /usr/local/bin before linking into it.

Assisted-by: Generative AI
The build env mounts its bin/ directory as /usr/bin, so setup installs
ccache.exe into envs/build-*/bin. The test on envs/build-*/usr/bin never
succeeded, whatever the file name, and the ccache setup never ran.

Assisted-by: Generative AI
subcyg follows the command's output file with tail -F, which starts at
its last 10 lines. Whatever a command prints before tail starts, a
second after the command, was cut to those 10 lines, such as the hit
and miss counts of `ccache -s`. Start at the first line instead.

Assisted-by: Generative AI
@fingolfin fingolfin closed this Oct 19, 2026
@fingolfin fingolfin reopened this Oct 19, 2026
@fingolfin
fingolfin merged commit 8a5d49b into main Oct 20, 2026
1 of 3 checks passed
@fingolfin
fingolfin deleted the mh-claude/ccache branch October 20, 2026 20:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant