code wiki / (root) / nx_nxa_morf_gate.nx

nx_nxa_morf_gate.nx

buildroot/runtime/nx_nxa_morf_gate.nx

19332 B414 linesdepth 3pulls 6 transitivereach 0 importersview sourcekind gate/prooftopic nxa
docsdependenciesstructsconstsfunctions

about

nx_nxa_morf_gate.nx -- FACE AND MORF ARE GEOMETRY, NOT TAGS. The subject organ closes the last two ABSENT rows on nx_asset_floor_gate. That gate's own law is the reason this one exists: PRESENCE OF A SECTION IS NOT PRESENCE OF THE CAPABILITY. A FACE section holding zero indices and a MORF section holding zero deltas would flip the floor score to 7/7 while the character remained exactly as expressionless as before. So every tooth here asks a question a tag cannot answer: - does FACE carry real vertex membership, and is every index inside the mesh - does MORF carry a displacement set for every declared channel, each with a NON-EMPTY support - does full weight produce EXACTLY the stored vertex deltas, including unchanged non-FACE vertices, independently of the subject's stdout (zero taper at a support edge is allowed) - is a zero weight BYTE-IDENTICAL to the input (a no-op morph must be provably a no-op; size equality would not do, so this compares every byte) - is derive DETERMINISTIC (two runs, byte-identical) The negative controls are real artifacts, not fixtures invented to fail: the banked pre-change asset (which genuinely lacks both sections) and a malformed channel spec. This gate re-declares the section layout rather than importing it from the subject. That is deliberate: an independent reader is a witness, whereas sharing the subject's own accessor would let one bug agree with itself. license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0

dependencies 5 imports · 0 importers

nx_syscalls.nx nx_gate_verdict.nx nx_gatekit_lib.nx nx_nxa.nx nx_estate_path.nx nx_nxa_morf_gate.nx

imports: nx_syscalls.nxnx_gate_verdict.nxnx_gatekit_lib.nxnx_nxa.nxnx_estate_path.nx

imported by: nobody (leaf or entry point)

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

main ep_anchor sys_openat_rd sys_close sys_chdir 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_puts sys_write ↻ mg_pathlen mg_basename mg_join sys_mmap ↻ mg_pathlen ↻ gk_cat sys_mkdir gv_ctr sys_mmap ↻ gv_head gv_puts ↻ sys_mmap ↻ gk_exists sys_openat_rd ↻ sys_close ↻ gv_check gv_puts ↻ gv_verdict

structs

none

consts

29const MG_ELF: *u8 = "./nx_nxa_morf.elf"
30const MG_DIR: *u8 = "/tmp/nxmorfgate"
31const MG_PRE: *u8 = "knowledge/bank/ref9d.nxa.premorf-20260823"
32const MG_D1: *u8 = "/tmp/nxmorfgate/d1.nxa"
33const MG_D2: *u8 = "/tmp/nxmorfgate/d2.nxa"
34const MG_E0: *u8 = "/tmp/nxmorfgate/e0.nxa"
35const MG_EU: *u8 = "/tmp/nxmorfgate/eu.nxa"
36const MG_EBAD: *u8 = "/tmp/nxmorfgate/ebad.nxa"
37const MG_CAP: i64 = 65536
38const MG_MODE: i64 = 493
41const MG_HDR: i64 = 32
42const MG_TOCE: i64 = 32
43const MG_W: i64 = 8
45const MG_FACE_HDR: i64 = 4
47const MG_MORF_HDR: i64 = 4
48const MG_CHANREC: i64 = 2
49const MG_CONF: *u8 = "knowledge/facs_au.conf"
50const MG_UNIT: i64 = 1000
52const MG_SPEC_ZERO: *u8 = "0:0"
53const MG_SPEC_BAD: *u8 = "notaspec"

functions

58func mg_pathlen(p: *u8) -> i64
called by 2: mg_joinmain
63func mg_join(a: *u8,b: *u8) -> *u8
called by 1: main calls 3: sys_mmapmg_pathlengk_cat
70func mg_basename(p: *u8) -> i64
called by 1: main
84func mg_rd(b: *u8, off: i64) -> i64
88func mg_tageq(b: *u8, off: i64, t: *u8) -> i64
called by 2: mg_secmg_words
94func mg_sec(b: *u8, ns: i64, t: *u8) -> i64
called by 2: mg_eval_exactmain calls 2: mg_tageqmg_rd
103func mg_nsec(b: *u8) -> i64 { return mg_rd(b, 16) }
107func mg_same(a: *u8, b: *u8) -> i64
called by 1: main calls 2: sys_mmapsys_read_file
126func mg_conf_tags(tags: *i64, b: *u8, n: i64) -> i64
called by 1: main
150func mg_container(b: *u8, n: i64) -> i64
167func mg_words(b: *u8, tag: *u8) -> i64
179func mg_eval_exact(d: *u8, fo: i64, mo: i64, vo: i64, nv: i64, nf: i64, nc: i64, ch: i64, path: *u8) -> i64
213func main(argc: i64, argv: *i64) -> i64