Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# NOW -- Answer nothing-to-check before the-tool-is-missing (2026-08-28)

## Answer nothing-to-check before the-tool-is-missing (Refs #2161)

- #2746 ordered the compiler requirement first, so an empty tree reported the wrong diagnosis
- caught by check_gate_preconditions.py one commit later -- the loud-failure gate doing its job
19 changes: 15 additions & 4 deletions tools/check_seal_coverage.py
Original file line number Diff line number Diff line change
Expand Up @@ -521,16 +521,27 @@ def main():
# compiler, and they exercise the ledger, not the gen_hash comparison.
skip_gen = os.environ.get("T27_SEAL_SKIP_GEN") == "1"
t27c = None if skip_gen else _find_t27c(ROOT)

# NOTHING TO CHECK is answered before MISSING TOOL. An empty tree needs no
# compiler -- there is nothing to recompute -- and the loud-failure gate
# asks this file what it says when handed one. Ordering the compiler check
# first made it answer "the compiler is not built", which is true and is
# not the diagnosis: the path is wrong. Found by fpga-conformance on the
# commit after #2746, which is the gate doing exactly its job.
if t27c is None and not skip_gen:
import glob as _g
total, bad = len(_g.glob(str(ROOT / ".trinity/seals/*.json"))), []
else:
total, bad = scan(t27c=t27c)
if total == 0:
print("FAIL: no seals found at all -- the path is wrong, not the tree")
return 1
if t27c is None and not skip_gen:
print("check_seal_coverage: the compiler is not built, so the four")
print(" gen_hashes in every seal could not be recomputed. Reporting")
print(" nothing rather than reporting a pass this run did not earn:")
print(" build it with `cargo build --release -p t27c` and run again.")
return 2
total, bad = scan(t27c=t27c)
if total == 0:
print("FAIL: no seals found at all -- the path is wrong, not the tree")
return 1

if "--update-baseline" in sys.argv:
BASELINE.write_text(
Expand Down
Loading