code wiki / _hdl_build / nx_featuremine.nx

nx_featuremine.nx

buildroot/runtime/_hdl_build/nx_featuremine.nx

18205 B395 linesdepth 3pulls 5 transitivereach 0 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_featuremine.nx -- FEATURES-CLASS MINER over the frontier- plane (miner-sota F1016, 2026-07-23). The census (nx_minecov MC05) measured features COVERED-but-UNMINED: nx_frontier_board derives CPM (ES/EF/float/critical-path/READY/BLOCKED) over the DAG, but nobody mines the BACKLOG ITSELF. The signal CPM does not give is DEPENDENCY IN-DEGREE: which feature BLOCKS THE MOST OTHERS. A row with float 0 is on the critical path; a row with in-degree 9 is a BOTTLENECK -- different questions, and the second is what tells a PM where to put people. Also: per-owner load with a real done-rate, status distribution, unowned rows, and BLOCKED (a dep that is not yet D) kept distinct from READY. ★HONEST LIMIT DECLARED IN THE OUTPUT: frontier ids are F-numbers, NOT epochs, so AGE IS NOT DERIVABLE from this plane -- the organ reports aging_available:0 rather than inventing a number. Composes nx_sovjson_lib (sj_*). Read-only. No hw writes (Rule 26). mine <source> [loader|-] [minsup] -> JSON: status/owner/dep-bottleneck/blocked + declared limits selftest <scratch-prefix> -> gate T1..T8 row cols: id TAB title TAB w TAB _ TAB owner TAB status(T|D|X) TAB deps TAB lane TAB milestone license_tier: ORIGINAL

dependencies 4 imports · 0 importers

nx_sovjson_lib.nx nx_syscalls.nx nx_gate_verdict.nx nx_tool_run.nx nx_featuremine.nx

imports: nx_sovjson_lib.nxnx_syscalls.nxnx_gate_verdict.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 sj_puts sys_write sys_exit sj_vlen sj_lit_eq fm_selftest gv_ctr sys_mmap gv_head gv_puts sys_write ↻ sys_mmap ↻ sj_cat sj_catn sys_mmap ↻ sys_now_realtime_sec sys_mmap ↻ sys_clock_gettime_real sys_openat_wr sys_write ↻ sys_close fm_mine_json sys_mmap ↻ fm_load sj_lit_eq ↻ sj_vlen ↻ fm_read sys_openat_rd sys_read sys_close ↻ sys_mmap ↻ fm_allow_path sj_allow_path sys_mmap ↻ sys_openat_rd ↻ sys_read ↻ sys_close ↻ sj_le sj_col

structs

none

consts

19const FM_MAGIC_4088: i64 = 4088
21const FM_CAP: i64 = 1048576
22const FM_OUT: i64 = 65536
23const FM_PATH: i64 = 512
24const FM_ROWS: i64 = 1024
25const FM_OWNERS: i64 = 256
26const FM_TOPN: i64 = 15
27const FM_ALLOW: i64 = 131072
28const FM_PERMIL: i64 = 1000
29const FM_NAME_MAX: i64 = 120
30const FM_MODE_644: i64 = 420

functions

32func fm_read(path: *u8, buf: *u8, cap: i64) -> i64
41func fm_find(q: *u8, n: i64, lit: *u8) -> i64
called by 1: fm_selftest calls 1: sj_vlen
55func fm_allow_path(name: *u8, outp: *u8) -> i64 { return sj_allow_path(name, outp) }
called by 1: fm_load calls 1: sj_allow_path
56func fm_key(d: *u8, o: i64, name: *u8) -> i64
called by 1: fm_mine_json calls 1: sj_cat
66func fm_absent(q: *u8, s: i64, e: i64) -> i64
called by 1: fm_mine_json
71func fm_span_eq(q: *u8, a: i64, ae: i64, b: i64, be: i64) -> i64
called by 1: fm_mine_json
77func fm_load(src: *u8, loader: *u8, buf: *u8, lcx: *i64) -> i64
98func fm_mine_json(src: *u8, loader: *u8, minsup: i64, d: *u8) -> i64
306func fm_selftest(prefix: *u8) -> i64
367func main(argc: i64, argv: *i64) -> i64