code wiki / (root) / nx_dupname_gate.nx

nx_dupname_gate.nx

buildroot/runtime/nx_dupname_gate.nx

6686 B124 linesdepth 3pulls 4 transitivereach 0 importersview sourcekind gate/proof
docsdependenciesstructsconstsfunctions

about

nx_dupname_gate.nx -- THE ENTRY POINT nx_janitor_dupname NEVER HAD. nx_janitor_dupname.nx carries a complete, careful shadow-collision census (jdn_scan / jdn_collisions / jdn_pair_differs) and NO `func main`, so nothing in the ecosystem could ever run it: building it standalone answers nxasm rc=102 "UNDEFINED label: main". A capability with no entry point is indistinguishable from a capability that does not exist -- it greps as present, it reviews as done, and it can never fire. LAW: A LIB WITH NO IMPORTER IS AN UNRUNNABLE CAPABILITY THAT SCORES AS A BUILT ONE. TWO THINGS THIS DRIVER MUST SUPPLY, both of which the lib legitimately leaves to its caller: 1. CWD. jdn_scan opens the literal paths "runtime/_hdl_build" and "runtime", which only resolve with cwd=buildroot -- the working directory nx_sov_build_run uses. /api/gate_run executes from the nishihost root, so without the chdir both opens fail, jdn_collect returns 0, and the census would report ZERO collisions: a VACUOUS GREEN produced by looking at nothing. 2. A NON-VACUITY REFUSAL. So this gate REFUSES unless it sees files in BOTH dirs. An instrument that cannot find its corpus must say so, never report zero (the rule nx_routeguard and nx_gatebuilt_gate already follow). WHY THE COLLISION SET IS SPLIT BY CONTENT, not just counted: nx_sov_build_run probes _hdl_build FIRST, so a duplicated basename means the runtime copy NEVER COMPILES. If the two files are byte-identical that is merely redundant (COPY); if they DIFFER, you edit one and build the other, which is the bug that shipped TWO nx_sovereignty_audit.nx. Only DIFFERING pairs are a defect, so only they set the verdict. I NEEDED THIS MEASUREMENT AND GOT IT WRONG TWICE BY HAND FIRST (2026-08-07): nx_shelltool glob RECURSES, so intersecting buildroot/runtime against runtime/_hdl_build compared a set with its own superset (97pc, absurd); and the second attempt read a list the tool had honestly marked NX-TRUNCATED at capture_cap=163840 while my own filter discarded the warning line. ★A DECLARED TRUNCATION YOU FILTER OUT OF YOUR VIEW IS A SILENT ONE. license_tier: ORIGINAL Read-only: getdents + reads, writes nothing. (Rule 26) expect_exit: 0

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_janitor_dupname.nx nx_gate_verdict.nx nx_dupname_gate.nx

imports: nx_syscalls.nxnx_janitor_dupname.nxnx_gate_verdict.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_chdir sys_mmap ↻ gv_puts ↻ gv_check gv_puts ↻ gv_verdict gv_note_bare_rate gv_bare_rate gv_at gv_obj_has_n gv_at ↻ gv_puts ↻ gv_num sys_mmap ↻ sys_write ↻ sys_munmap gv_puts ↻ gv_num ↻ gv_journal sys_openat_append

structs

none

consts

31const DG_BUILDROOT: *u8 = "/volume1/homes/elderwesto/nishihost/buildroot"
32const DG_FN_BYTES: i64 = 2097152
33const DG_FN_MAX: i64 = 30000
34const DG_RDCAP: i64 = 262144
35const DG_MAXSHOW: i64 = 20 // capped list of DIFFERING pairs; the cap is printed
36const DG_CMP_CAP: i64 = 600 // max content comparisons; declared, never silent

functions

38func main(argc: i64, argv: *i64) -> i64