code wiki / _hdl_build / nx_gk_fixture_gate.nx

nx_gk_fixture_gate.nx

buildroot/runtime/_hdl_build/nx_gk_fixture_gate.nx

4128 B72 linesdepth 3pulls 4 transitivereach 0 importersview sourcekind gate/proof
docsdependenciesstructsconstsfunctions

about

nx_gk_fixture_gate.nx -- THE REFEREE FOR gk_fixture_dir, the per-RUN gate fixture directory (2026-09-03). THE DEFECT IT GUARDS, measured the day it shipped. Two runs of nx_bck_elide_gate launched in the same second against two DIFFERENT compilers BOTH returned verdict=SKIP with "the named compiler built none of the fixtures". Neither run was faulty; the pass under test was working (its own log showed BCK-ELIDE sites=4 elided=2 throughout). They had overwritten each other's fixtures in the single directory both had hardcoded. Run sequentially, the same gate on the same box is 13/13 GREEN. The estate already enforced the PER-GATE half of this law (gate scratch in /tmp/<gate>/, never shared with a production beat). The PER-RUN half did not exist, and its absence fails in the ABSTAINING direction -- a false SKIP acquits nothing and alarms nobody, it just deletes the evidence. THE ANTI-VACUITY PROBLEM THIS GATE HAD TO SOLVE. A tooth saying "gk_fixture_dir returned a path" passes for a function that returns a CONSTANT, which is precisely the broken shape. So the load-bearing tooth is that TWO calls differ, and it is paired with a NEGATIVE CONTROL that builds the OLD constant-path shape by hand and asserts it COLLIDES. Without that control a reader cannot tell a working discriminator from a test that could never fail. exit: 0 GREEN . 1 RED license_tier: ORIGINAL No hw writes.

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_gate_verdict.nx nx_gatekit_lib.nx nx_gk_fixture_gate.nx

imports: nx_syscalls.nxnx_gate_verdict.nxnx_gatekit_lib.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main gv_ctr sys_mmap nxa_die sys_write sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable sys_write ↻ nxa_dump_sizes sys_write ↻ gv_head gv_puts sys_write ↻ sys_mmap ↻ gk_fixture_dir gk_cat gk_catn sys_mmap ↻ sys_clock_now_us sys_now_us sys_mmap ↻ sys_clock_gettime_mono gk_mkdir sys_mkdir gv_puts ↻ gv_check gv_puts ↻ gk_exists sys_openat_rd sys_close gv_check_eq gv_check ↻ gv_puts ↻

structs

none

consts

24const GF_PATH: i64 = 1024
25const GF_SUBJECT: *u8 = "nx_gk_fixture_gate_subject"

functions

27func gf_streq(a: *u8, b: *u8) -> i64
called by 1: main
34func main(argc: i64, argv: *i64) -> i64