code wiki / _hdl_build / nx_debt_view.nx

nx_debt_view.nx

buildroot/runtime/_hdl_build/nx_debt_view.nx

9612 B167 linesdepth 3pulls 3 transitivereach 0 importersview sourcekind tooltopic debt
docsdependenciesstructsconstsfunctions

about

nx_debt_view.nx -- loop lane (eats debt seq215 visibility half). The debt ledger outgrew the 64KB MCP transport (221 rows, ~130KB list output) so tail rows -- including sev-8/7 most-important debt -- were UNREADABLE and eat-by-index was blind. This organ is the bounded VIEW: it fork-captures the canonical reader (nx_debt.elf list -- composition via tr_run1, NO schema reimplementation = no drift) and serves paged / severity-filtered / substring views that always fit the transport. Read-only; the eat stays in nx_debt (verify a row's content HERE, then eat its index THERE = verified-eat procedure). nx_debt_view page <offset> <count> | sev <minsev> | find <substr> ENVELOPE (declared in output): shown cap 40 rows/call, 700 bytes/row (truncation marked), capture cap 512KB. sev = open rows only, sev-field heuristic: first 1-char digit TAB field. exit: 0 | 2 usage | 4 capture-fail. license_tier: ORIGINAL expect_exit: 0

dependencies 1 imports · 0 importers

nx_tool_run.nx nx_debt_view.nx

imports: nx_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 dv_w tr_run1 sys_mmap tr_run_capture sys_mmap ↻ sys_pipe2 sys_fork sys_close sys_dup3 sys_execve_clean sys_close ↻ sys_execve sys_exit sys_read sys_wait4 wait_exit_code dv_atoi dv_b dv_bn dv_line dv_b ↻ dv_has dv_sev dv_slen sys_openat_wr sys_renameat

structs

none

consts

18const DV_OUTMAX: i64 = 60000
19const DV_CAPTURE_CAP: i64 = 4194304
20const DV_MAXROWS: i64 = 16384
21const DV_OUTBUF: i64 = 65536

functions

23func dv_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
24func dv_b(rep: *u8, pos: i64, s: *u8) -> i64 { var p: i64 = pos; var i: i64 = 0; while s[i] != (0 as u8) { if p < DV_OUTMAX { rep[p] = s[i]; p = p + 1 } i = i + 1 } return p }
called by 2: dv_linemain
25func dv_bn(rep: *u8, pos: i64, v: i64) -> i64 { var p: i64 = pos; var m: i64 = v; if m < 0 { if p < DV_OUTMAX { rep[p] = 45 as u8; p = p + 1 } m = 0 - m } let t: *u8 = sys_mmap(28); var k: i64 = 0; if m == 0 { t[0] = 48 as u8; k = 1 } while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } var i: i64 = 0; while i < k { if p < DV_OUTMAX { rep[p] = t[k - 1 - i]; p = p + 1 } i = i + 1 } return p }
called by 1: main
26func dv_atoi(s: *u8) -> i64 { var v: i64 = 0; var i: i64 = 0; while s[i] != (0 as u8) { let c: i64 = s[i]; if c < 48 { i = i + 1 } else { if c > 57 { i = i + 1 } else { v = v * 10 + (c - 48); i = i + 1 } } } return v }
called by 1: main
27func dv_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
called by 1: main
28func dv_has(buf: *u8, s: i64, e: i64, pat: *u8, pl: i64) -> i64
called by 1: main
41func dv_sev(buf: *u8, s: i64, e: i64) -> i64
called by 1: main
57func dv_line(rep: *u8, pos: i64, buf: *u8, s: i64, e: i64) -> i64
called by 1: main calls 1: dv_b
68func main(argc: i64, argv: *i64) -> i64