code wiki / _hdl_build / nx_janitor_caps_gate.nx

nx_janitor_caps_gate.nx

buildroot/runtime/_hdl_build/nx_janitor_caps_gate.nx

4131 B48 linesdepth 3pulls 4 transitivereach 0 importersview sourcekind gate/prooftopic janitor
docsdependenciesstructsconstsfunctions

about

nx_janitor_caps_gate.nx -- proves the silent-truncation CAP detector (nx_cap_detect_lib) has TEETH and NO false positives on its discriminators. In-memory fixtures (no /tmp): one POSITIVE that MUST flag, and four NEG-CONTROLS that MUST NOT -- data-driven size, no-source, byte-buffer(no '*'), and shift-not-bound. The fixtures are code-representing strings passed straight to the CORE scan (the gate does NOT strip -- the sweep strips real files; here the string IS the simulated code). GREEN iff all six checks pass. MIGRATED ONTO THE BASE CLASS 2026-09-05: the hand-rolled "--- 6/6 GREEN" line was unreadable to every rollup, and the compare evidence census read this gate as GREEN at pass=0/0 -- a vacuous row, a green with no visible teeth. gv_check_eq asserts AND emits actual/expected in one call so the published number and the tested number cannot drift; the neg-controls are NAMED so the census can count them; the exit code carries the verdict. license_tier: ORIGINAL | genealogy_id: nishi_janitor_caps_gate_2026_07_15

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_gate_verdict.nx nx_cap_detect_lib.nx nx_janitor_caps_gate.nx

imports: nx_syscalls.nxnx_gate_verdict.nxnx_cap_detect_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 ↻ gv_check_eq gv_check gv_puts ↻ gv_puts ↻ gv_num sys_mmap ↻ sys_write ↻ sys_munmap gg_would_flag gg_slen jc_mmap_scan jc_match_at jc_has_bound jc_lit_after jc_has_src jc_find_sub jc_match_at ↻ jc_mmap_scan ↻ gg_slen ↻ gv_verdict

structs

none

consts

none

functions

15func gg_slen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n }
called by 2: gg_would_flagmain
18func gg_would_flag(buf: *u8) -> i64
called by 1: main calls 3: gg_slenjc_mmap_scanjc_has_src
24func main(argc: i64, argv: *i64) -> i64