code wiki / _hdl_build / nx_drysweep.nx

nx_drysweep.nx

buildroot/runtime/_hdl_build/nx_drysweep.nx

11699 B228 linesdepth 5pulls 6 transitivereach 0 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_drysweep.nx -- WHAT DOES nx_gate_dry_apply ACTUALLY SAY ABOUT EVERY GATE? The D001 lane has been sized from a constant nobody measured: dry_apply's own SKIP text asserts "the fails==0 family, 36 gates" and nothing in the tree derives it (debt 1786236085). dry_apply has NO sweep verb -- its usage is `<gate> <out-candidate-path>` -- so the census could not be taken. This is that census. ★COMPOSES THE RULER, NEVER RE-IMPLEMENTS IT. It FORKS nx_gate_dry_apply per gate and only TALLIES the answer, exactly as nx_forkgrade forks nx_srcdiff per pair so that exactly ONE line-differ exists in the estate. Re-deriving dry_apply's classification here would create a second, silently-diverging judge -- and a census that disagrees with the tool it describes is worse than no census. ★DURABLE AS IT GOES. Rows APPEND to knowledge/status/drysweep.log per gate, before any summary. A long sweep that buffers its output has NO partial results: an interruption costs everything, not the remainder. Resume with <skip>. ★NO SILENT CAPS: <max> bounds the run and the DEFERRED remainder is printed. A cap reached in silence becomes a measurement nobody knows is partial. nx_drysweep <max> [skip] [dir] exit: 0 swept clean | 1 at least one ERROR/TIMEOUT (the tally is still printed) | 2 usage 3 NO-CONCLUSION (dry_apply unresolvable, or the gate dir cannot be opened) license_tier: ORIGINAL No hw writes (Rule 26).

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_artifact_root.nx nx_tool_run.nx nx_drysweep.nx

imports: nx_syscalls.nxnx_artifact_root.nxnx_tool_run.nx

imported by: nobody (leaf or entry point)

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

main ds_puts sys_write sys_exit 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 ↻ ar_resolve ar_resolve_with ar_exists sys_openat_rd sys_close sys_mmap ↻ ar_read sys_openat_rd ↻ sys_read sys_close ↻ sys_openat_rd ↻ sys_openat_append sys_getdents64 dirent_reclen dirent_name ds_is_gate tr_run_capture_to tr_run_capture_tr tr_run_capture_core tr_run_capture_core_owned tr_run_capture_core_eviden

structs

none

consts

25const DS_DIR: *u8 = "buildroot/runtime/_hdl_build"
26const DS_LOG: *u8 = "knowledge/status/drysweep.log"
27const DS_CAND: *u8 = "/tmp/drysweep_cand.nx"
28const DS_OUTCAP: i64 = 65536
29const DS_TIMEOUT: i64 = 20000
30const DS_DIRBUF: i64 = 1048576
31const DS_NAMECAP: i64 = 512

functions

33func ds_puts(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
called by 1: main calls 1: sys_write
34func ds_w(fd: i64, s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(fd,s,n); return 0 }
called by 1: main calls 1: sys_write
35func ds_n(fd: i64, v: i64) -> i64
called by 1: main calls 2: sys_writesys_mmap
48func ds_has(buf: *u8, n: i64, pat: *u8) -> i64
called by 1: main
64func ds_is_gate(nm: *u8) -> i64
called by 1: main
74func main(argc: i64, argv: *i64) -> i64