pecorino-botreleased this
1 committo main since this release
This release caches more of a real C/C++ compile: opt-in whole-program links, preprocessor -E to stdout, and the clang-cl flags Firefox Windows actually passes. Single-source nvcc -c is cached. A machine can set defaults under the job file, and a trusted node disk can isolate stores with KACHE_TRUST_DOMAIN.
cargo install kache --locked --version 0.21.0
Homebrew, Scoop, and the GitHub release binaries also ship 0.21.0.
Highlights #
- Links and
-E: C/C++ whole-program links cache when you opt in.-Ewithout-ostores the expansion and reprints it on stdout. - Windows C++: clang-cl
-Oy,-Zl,/fp:fast, and/clang:…are keyed, so those Firefox TUs stop passing through. - CUDA and the machine:
nvcc -cis cached./etc/kache/config.tomlis the host layer.KACHE_TRUST_DOMAINscopes a persistent local store.
Added #
cc: Whole-program links and their sidecars cache whenKACHE_CACHE_CC_LINKS is on. Off by default. Restored binaries are signed on macOS;.dSYM directories store as{name}.dsym.tar . Include search treats a file in the middle of a-I path like a missing directory. Closed-set-m flags are keyed. Windows cargo-linker wrappers followMOZ_CARGO_WRAP_(HOST_)LD . (#1040 ,#1044 by@jleni )
[cache]
cache_cc_links = true
export KACHE_CACHE_CC_LINKS=1
cc:-E without-o stores the expansion as astdout.i blob and writes it back to process stdout on a hit. Named-E -o file.i already cached.-o - still passes through. (#1053 by@jleni ) #
nvcc: Single-source-c compiles go through the local store and remote.-march=native ,-arch=native , and mode-changingNVCC_PREPEND_FLAGS /NVCC_APPEND_FLAGS refuse instead of sharing a key across machines. (#1038 ,#1042 ,#1050 by@jleni ) #
config:/etc/kache/config.toml is read under the chosen file. Env still wins.KACHE_HOST_CONFIG points at another host file; empty turns the layer off.kache doctor names which host key a job overrides. (#1039 by@jleni ) #
cache:KACHE_TRUST_DOMAIN isolates the store at$KACHE_CACHE_DIR/<label>/ . One path component ([A-Za-z0-9._-] ). Invalid labels leave the path unchanged. KeepKACHE_RUNTIME_DIR on job scratch. Do not set this on public or fork jobs. (#1046 by@jleni )
export KACHE_CACHE_DIR=/var/cache/kache
export KACHE_TRUST_DOMAIN=github.kunobi-ninja.kache
export KACHE_RUNTIME_DIR="$RUNNER_TEMP/kache-runtime"
telemetry:kache stats andkache telemetry write report index/WAL size and last GC.KACHE_RECORD_SESSIONS=1 appends session and GC logs under the cache dir. Off by default. (#1041 by@jleni )
Fixed #
- cc: clang-cl
-Oy(omit frame pointer),-Zl,/fp:fast,/clang:<flag>,-fcxx-exceptions, and-ffreestandingare classified. (#1048 ,#1049 by@jleni ) - shims: Homebrew compiler shims point at
opt/<formula>/bin/kache, so they survive formula upgrades. Legacy keg links migrate. (#1043 by@achembarpu ,#1045 by@jleni )
Docs #
- CUDA getting-started for
nvcc -c. (#1042 by@jleni ) - CI node-local store:
KACHE_TRUST_DOMAINandKACHE_RUNTIME_DIR. (#1046 by@jleni )
New Contributors #
- @achembarpu made their first contribution in#1043
Contributors #
Full changelog: v0.20.0...v0.21.0