Module closure

Module closure 

Source
Expand description

2026-09-26: Excuse a kernel-only diff when every affected target still hashes to the closure its record attests.

A record stores, per target, the closure hash and the arch, compiler and nvcc flags it was computed under. The check recomputes with the record’s own stored arch, compiler and flags, so only a change to the target’s sources, the headers they include or its config files (taxon::configs) moves the hash, not the toolchain of the machine running CI.

Owner: bench gate. Invariants:

  • excuses only narrows the path boundary in super::coverage: it returns false unless every path is under kernels/.
  • It returns false for an empty path list or attestation, a tree the resolver cannot enumerate, paths that reach no target, and any target that is not attested, whose sources do not resolve (super::taxon::sources is None), whose hash cannot be computed, or whose hash changed.

Structs§

TargetClosure
2026-09-26: What one target compiled to, and under what. The flags are stored per target because a model’s KERNEL.toml can add extra_nvcc_flags.

Functions§

attest
2026-09-26: Compute an attestation for every target from the working tree.
changed_targets
2026-09-26: The targets paths affects whose closure changed, for reporting. A target that is not attested, or whose hash cannot be recomputed, is listed as changed.
excuses
2026-09-26: Whether an unchanged closure excuses every one of paths, the paths that survived the path boundary. true only when all are under kernels/ and every target they affect still hashes to what the record attests.

Type Aliases§

Attestation
2026-09-26: Per-target attestations carried by a record, keyed by hw/model/quant.