Skip to main content

Module params_scope

Module params_scope 

Source
Expand description

SRD-107 — the consumed-params derivation.

Which workload params does a phase’s scope actually consume? The answer is DERIVED, never declared (a declaration surface would drift from the programs and reintroduce stale-skip bugs by hand):

  • GK backward closure — polydat owns every step of it (polydat::kernel::PolydatProgram::owned_extern_closure seeds from owned outputs; resolve_externs_through walks the scope chain; both are projections of the ONE construction-time node inventory). Names still unresolved past the workload root that match declared params are consumed from the params module. Aliasing through upstream rebindings (alias := run_tag at the root, phase reads alias) resolves correctly with no textual guessing.
  • Textual union — {name} interpolation sites in the phase’s canonical config (op statement text, governance fields like cycles:/timeout:) never enter compiled programs; a substring scan over the canonical config text covers them. False positives only over-invalidate, and only when that specific param changes — the safe direction.

The result maps each consumed name to a digest of its CURRENT raw value; equality of stored vs freshly computed digests is the per-param leg of SRD-107’s three-way skip-validity check.