code wiki / (root) / nx_verdictlog_gate.nx

nx_verdictlog_gate.nx

buildroot/runtime/nx_verdictlog_gate.nx

19796 B278 linesdepth 4pulls 5 transitivereach 0 importersview sourcekind gate/proof
docsdependenciesstructsconstsfunctions

about

nx_verdictlog_gate.nx -- THE REFEREE FOR FM3 AND FM4 OF /compare/failmodes. ONE GATE FOR TWO RUNGS BECAUSE THEY SHARE ONE RULER. Splitting it would put two referees on nx_verdictlog_lib, and two guards for one invariant is the duplicate-ruler defect this campaign exists to stop. Every tooth below names which accept rule it enforces. FM3 ACCEPT RULE, QUOTED VERBATIM FROM failmodes.plan BEFORE THE WORK BEGAN: "run it over the EXISTING detector fleet and publish the four numbers per detector; the rung is accepted only if at least one currently-shipping detector is shown to score badly enough to justify changing or retiring it. A scorer that flatters every incumbent has measured nothing." FM4 ACCEPT RULE, QUOTED VERBATIM FROM failmodes.plan BEFORE THE WORK BEGAN: "the organ must report DISAGREE only when the two vantages are observed within a bounded window of each other, and must emit UNOBSERVABLE rather than AGREE when either vantage is missing -- an axis that cannot see must abstain, not acquit." FIXTURES ARE ASSEMBLED AT RUNTIME under /tmp/nx_verdictlog_gate/, never checked in and never written as source literals: a detector that scans a directory will find its own test fixture, and a gate that shares a fixture with a production beat reports on the FIXTURE and not on the code. Setup REMOVES every artifact it is about to assert on, so the gate is idempotent -- one that is not reports honestly on its first run and lies about every run after. THE CLASSIFIER IS COMPOSED IN-PROCESS, NEVER FORKED. Handing a directory walker a file path once produced files=0 and a GREEN verdict elsewhere in this estate; composing vl_* directly means the gate exercises the same functions the census calls, and every tooth that asserts an outcome first asserts the call examined something.

dependencies 2 imports · 0 importers

nx_gate_verdict.nx nx_verdictlog_lib.nx nx_verdictlog_gate.nx

imports: nx_gate_verdict.nxnx_verdictlog_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_head gv_puts sys_write 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 ↻ vg_setup gk_write sys_openat_wr gk_len gk_write_all sys_write ↻ sys_close vg_p vg_join gk_cat gk_rm sys_unlinkat vl_conf_load sys_read_file sys_openat_rd sys_lseek sys_mmap ↻ sys_read sys_munmap sys_close ↻

structs

none

consts

31const VG_DIR: *u8 = "/tmp/nx_verdictlog_gate/"
32const VG_STREAMS: *u8 = "/tmp/nx_verdictlog_gate/streams/"
33const VG_EMPTY: *u8 = "/tmp/nx_verdictlog_gate/emptydir/"
34const VG_PATH: i64 = 4096
35const VG_MODE_0755: i64 = 493
39const VG_SC_RUNS: i64 = 5 // sc.log: GREEN GREEN RED RED GREEN
40const VG_SC_GREEN: i64 = 3
41const VG_SC_RED: i64 = 2
42const VG_SC_RESET: i64 = 2 // the episode opens at run index 2 and closes at run index 4
43const VG_SC_MAXGAP: i64 = 240 // stamps 100 160 220 280 520 -> gaps 60 60 60 240
44const VG_NG_RUNS: i64 = 3
45const VG_GR_RUNS: i64 = 3
46const VG_FIX_FILES: i64 = 8 // sc ng lat gr unk unklatch snap nov
47const VG_FIX_SCORED: i64 = 2 // sc lat
48const VG_FIX_LATCH: i64 = 2 // ng lat
49const VG_FIX_OFFEND: i64 = 2 // ng (constant-nongreen) and lat (latched) -- gr is NOT one
50const VG_VAN_ROWS: i64 = 8

functions

52func vg_join(dst: *u8, dir: *u8, name: *u8) -> i64
called by 1: vg_p calls 1: gk_cat
59func vg_p(dir: *u8, name: *u8) -> *u8
called by 3: vg_setupvg_series_ofmain calls 1: vg_join
67func vg_setup() -> i64
called by 1: main calls 3: gk_writevg_pgk_rm
106func vg_series_of(conf: *u8, voc: *i64, name: *u8, sr: *i64) -> *u8
called by 1: main calls 2: vl_seriesvg_p
110func main(argc: i64, argv: *i64) -> i64