nx_accept_gate.nx
buildroot/runtime/nx_accept_gate.nx
about
nx_accept_gate.nx -- THE GATE FOR THE THREE-PARTY ACCEPTANCE LEDGER (2026-08-31).
Two subjects, one gate: IN-PROCESS over nx_accept_lib + nx_accept_ref_lib (the classifier, its named negatives,
the deterministic emitter, the shape ruler) and END-TO-END over the built nx_accept binary (its verbs, its
composition of the incumbent writer, its refusals). Everything runs on fixture planes seeded under
/tmp/nx_accept_gate/r<usec>/ -- a fresh directory per run, so nothing measured here was inherited from an
earlier run and the production planes are never read or written.
argv[1] = the subject elf (nx_gate_bite subject mode passes the freshly built one); default
buildroot/_build/nx_accept.sov.elf -- the artifact the ship loop just built -- then ./nx_accept.elf. An
absent subject SKIPS the end-to-end teeth (a precondition, never a RED); the in-process teeth still run.
It also IMPORTS buildroot/runtime/nx_accept_decl.nx, the file `nx_accept emit` regenerates, so every build of
this gate is a compile proof of the live emitted declarations. SCOPE, stated: as of THIS gate's build time;
the emitted fixture buffer is proven by the shape ruler on every run.
license_tier: ORIGINAL No hw writes (Rule 26).
dependencies 7 imports · 0 importers
imports: nx_syscalls.nxnx_gate_verdict.nxnx_tool_run.nxnx_store_seed_lib.nxnx_accept_lib.nxnx_accept_ref_lib.nxnx_accept_decl.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 23 | const ACG_DIR: *u8 = "/tmp/nx_accept_gate" |
| 24 | const ACG_RUNPFX: *u8 = "/tmp/nx_accept_gate/r" |
| 25 | const ACG_SUBJECT_A: *u8 = "buildroot/_build/nx_accept.sov.elf" |
| 26 | const ACG_SUBJECT_B: *u8 = "nx_accept.elf" |
| 27 | const ACG_WRITER: *u8 = "nx_store_put.elf" |
| 28 | const ACG_MODE_DIR: i64 = 493 |
| 29 | const ACG_MODE_FILE: i64 = 420 |
| 30 | const ACG_FLOOR: i64 = 151 // the panel's admitted textured floor (cjc_panel.conf, 2026-08-27) -- the fixture bar |
| 31 | const ACG_MARGIN: i64 = 49 // fixture percepts sit this far above and below the bar; neither can pass by an off-by-one |
| 32 | const ACG_TAB: i64 = 9 |
| 33 | const ACG_CAP: i64 = 65536 |
| 34 | const ACG_PATH: i64 = 512 |
| 35 | const ACG_ARGV: i64 = 16 |
| 36 | const ACG_LP: i64 = 16 |
| 37 | const ACG_TMO_MS: i64 = 130000 // the organ's own writer ceiling (nx_seg_store lock ceiling 120 s + margin) |
| 38 | const ACG_DATE: *u8 = "2026-08-30" |
| 39 | const ACG_DATE_EARLIER: *u8 = "2026-08-29" |
| 40 | const ACG_OP: *u8 = "operator" |
| 41 | const ACG_NONOP: *u8 = "seat-x" |
| 42 | const ACG_SEAT: *u8 = "seat-fixture" |
| 43 | const ACG_TIER: *u8 = "textured" |
| 44 | const ACG_TIER_BAD: *u8 = "photoreal" |
| 45 | const ACG_WORDS: *u8 = "fixture words" |
| 46 | const ACG_STAMP: *u8 = "fixturestamp" |
| 47 | const ACG_FRAME: *u8 = "fixtureframe" |
| 48 | const ACG_ART_BODY: *u8 = "fixture artifact bytes\n" |
| 49 | const ACG_EXPECT_SUBJECTS: i64 = 11 |
| 50 | const ACG_EXPECT_AGREED: i64 = 2 |
| 51 | const ACG_EXPECT_ACC_ROWS: i64 = 12 |
| 52 | const ACG_EXPECT_REF_ROWS: i64 = 8 |
| 53 | const ACG_EXPECT_ATT_ROWS: i64 = 8 |
| 54 | const ACG_EXPECT_UNMAPPED: i64 = 1 |
| 55 | const ACG_EXPECT_PLANES: i64 = 3 |
| 56 | const ACG_EXPECT_BOARD_ROWS: i64 = 2 |
| 57 | const ACG_EXPECT_DECLS_AFTER_ATTEST: i64 = 3 |
functions
| 59 | func acg_eq(a: i64, b: i64) -> i64 { if a == b { return 1 } return 0 } called by 1: main |
| 60 | func acg_tab(b: *u8, o: i64) -> i64 { b[o] = ACG_TAB as u8; return o + 1 } |
| 61 | func acg_nl(b: *u8, o: i64) -> i64 { b[o] = AL_NL as u8; return o + 1 } |
| 62 | func acg_num(v: i64) -> *u8 { let t: *u8 = sys_mmap(AL_NUMCAP); let n: i64 = al_catn(t, 0, v); t[n] = 0 as u8; return t } |
| 63 | func acg_path(dir: *u8, leaf: *u8) -> *u8 { let p: *u8 = sys_mmap(ACG_PATH); var o: i64 = al_cat(p, 0, dir); p[o] = AL_SLASH as u8; o = o + 1; o = al_cat(p, o, leaf); p[o] = 0 as u8; return p } |
| 64 | func acg_write(path: *u8, content: *u8) -> i64 |
| 78 | func acg_find(b: *u8, n: i64, needle: *u8) -> i64 |
| 91 | func acg_has(b: *u8, n: i64, needle: *u8) -> i64 { if acg_find(b, n, needle) >= 0 { return 1 } return 0 } |
| 93 | func acg_row7(b: *u8, o0: i64, f0: *u8, f1: *u8, f2: *u8, f3: *u8, f4: *u8, f5: *u8, f6: *u8) -> i64 |
| 104 | func acg_row8(b: *u8, o0: i64, f0: *u8, f1: *u8, f2: *u8, f3: *u8, f4: *u8, f5: *u8, f6: *u8, f7: *u8) -> i64 |
| 116 | func acg_book(acc: *u8, ref: *u8, att: *u8, conf: *u8, boards: *u8, cfout: *i64, planes_out: *i64, doms: *u8, orgs: *u8) -> *i64 |
| 126 | func acg_party_of(bk: *i64, cf: *i64, name: *u8, why: *i64) -> i64 |
| 132 | func acg_run(subject: *u8, rootarg: *u8, verb: *u8, a1: *u8, a2: *u8, a3: *u8, a4: *u8, out: *u8, ol: *i64) -> i64 |
| 152 | func acg_nil() -> *u8 { return 0 as *u8 } called by 1: main |
| 154 | func main(argc: i64, argv: *i64) -> i64 |