0%

macOS LLVM fingerprinting (D1b)

Goal

On macos an unchanged rebuild is a cache hit and a swapped llvm installation is a cache miss.

Implementation Sketch

Derived from compiler_repo/docs/ori_lang/proposals/approved/cache-lifecycle-proposal.md. Implement the work items below in order; each maps to a design bullet in the approved proposal.

Spec References

  • Approved proposal: compiler_repo/docs/ori_lang/proposals/approved/cache-lifecycle-proposal.md
  • Umbrella invariant T4: compiler_repo/docs/ori_lang/proposals/approved/toolchain-philosophy-proposal.md

Work Items

  • Add the macOS arm to llvm_runtime_digest() via _dyld_image_count() / _dyld_get_image_name(), selecting libLLVM-prefixed images and folding library-path / library-size / library-sha256 under the identical Linux domain string
  • Return Err (bypass) when no libLLVM image is found — never infer static linkage from a missing image, since the shipped build force-dynamically links LLVM on all cfg(not(windows)); assert quiescent enumeration
  • Verification: a macOS build hits the cache on an unchanged rebuild and misses after swapping the LLVM installation