Skip to content

epic(cc): transparent compile-to-link cache coverage #762

Description

@jleni

Goal

Make Kache a practical, transparent C/C++ compiler cache: ordinary build-system recompiles remain cacheable, compiler-name shims can intercept builds without per-project configuration, and opt-in link caching safely covers the largest remaining passthrough class.

Active workstreams

Delivery order

  1. Fix Existing output path check from #664 also disables caching for ordinary object compiles #744 without regressing special-file and symlink write semantics.
  2. Add the transparent compiler entry point in Support compiler-name shims on PATH for transparent, config-free interception #310.
  3. Build opt-in link caching in Linker caching: cache whole-program link outputs (the largest passthrough category) #259 after determinism and portability gates are proven.

Completed context

#337 established compiler-driver conformance, launcher scenarios, structured passthrough reasons and coverage gates. It remains closed; this epic tracks only the concrete remaining product path.

Exit criteria

  • CMake configuration changes can recompile into existing regular object paths while still reading from and writing to Kache.
  • /dev/null, device, FIFO, directory and symlink behavior remains compatible with the real compiler.
  • A POSIX compiler-name shim resolves and invokes the real compiler without re-entering Kache; unsupported platforms and missing compilers fail clearly.
  • Link keys cover ordered objects, archives, libraries, response files, linker flags and linker identity.
  • Binary, import-library, map and debug sidecars are stored and restored atomically.
  • Link caching stays opt-in until path portability and reproducibility negative controls pass.
  • Representative isolated-checkout CMake/Firefox scenarios demonstrate object and link hits without false hits or path leakage.

Non-goals

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:localLocal cache engine: cache-key, store, hardlink/reflink restore, RUSTC_WRAPPER hot path (no daemon)enhancementNew feature or requestfeat: C/C++

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions