code wiki / (root) / nx_atlas_sweep.nx

nx_atlas_sweep.nx source

↩ module page · 124 lines · 4860 B

1// nx_atlas_sweep.nx -- atlas-hygiene AUTO-SWEEP: judges EVERY real node in a plane, not hand-passed args. 2// Forks nx_store_put.elf to load a seg-store plane, parses each row, applies the confidence+provenance 3// guards to the node's OWN stored values, emits a per-node verdict + tally. Read-only (never-brick). 4// The guards run over the REAL graph automatically -- via fork-capture, no store-lib import needed. 5// argv: [plane-prefix] default knowledge/store/atlashyg- . license_tier: ORIGINAL expect_exit: 0 6import "nx_syscalls.nx" 7import "nx_tool_run.nx" 8const K_MAGIC_2097152: i64 = 2097152 9func sw_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } 10func sw_puts(s: *u8) -> i64 { sys_write(1, s, sw_slen(s)); return 0 } 11func sw_streq(a: *u8, b: *u8) -> i64 { 12 var i: i64 = 0 13 while a[i] != (0 as u8) { 14 if a[i] != b[i] { return 0 } 15 i = i + 1 16 } 17 if b[i] != (0 as u8) { return 0 } 18 return 1 19} 20func sw_puti(v: i64) -> i64 { 21 if v == 0 { sys_write(1, "0" as *u8, 1); return 0 } 22 let b: *u8 = sys_mmap(24) 23 var m: i64 = v 24 var nd: i64 = 0 25 var t: i64 = m 26 while t > 0 { nd = nd + 1; t = t / 10 } 27 var i: i64 = nd - 1 28 while i >= 0 { b[i] = (48 + (m % 10)) as u8; m = m / 10; i = i - 1 } 29 sys_write(1, b, nd) 30 return 0 31} 32func sw_conf_permille(s: *u8) -> i64 { 33 var i: i64 = 0 34 var found: i64 = 0 35 while s[i] != (0 as u8) && found == 0 { 36 if s[i] == (46 as u8) { found = 1 } else { i = i + 1 } 37 } 38 if found == 0 { return 0 } 39 i = i + 1 40 var pm: i64 = 0 41 var place: i64 = 100 42 var c: i64 = 0 43 while c < 3 { 44 let ch: i64 = s[i] as i64 45 if ch >= 48 { if ch <= 57 { pm = pm + (ch - 48) * place; i = i + 1 } } 46 place = place / 10 47 c = c + 1 48 } 49 return pm 50} 51func main(argc: i64, argv: *i64) -> i64 { 52 var plane: *u8 = "knowledge/store/atlashyg-" as *u8 53 if argc >= 2 { plane = argv[1] as *u8 } 54 let path: *u8 = "./nx_store_put.elf" as *u8 55 let av: *i64 = sys_mmap(256) as *i64 56 av[0] = path as i64 57 av[1] = plane as i64 58 av[2] = "load" as *u8 as i64 59 av[3] = 0 60 let out: *u8 = sys_mmap(K_MAGIC_2097152) 61 let olen: *i64 = sys_mmap(16) as *i64 62 tr_run_capture(path, av, out, K_MAGIC_2097152, olen) 63 let n: i64 = olen[0] 64 sw_puts("ATLASSWEEP plane=" as *u8); sw_puts(plane); sw_puts("\n" as *u8) 65 let idbuf: *u8 = sys_mmap(512) 66 let srcbuf: *u8 = sys_mmap(512) 67 let confbuf: *u8 = sys_mmap(64) 68 var nodes: i64 = 0 69 var admit: i64 = 0 70 var reject: i64 = 0 71 var p: i64 = 0 72 while p < n { 73 var q: i64 = 0 74 while p < n && out[p] != (9 as u8) && out[p] != (10 as u8) { 75 if q < 511 { idbuf[q] = out[p]; q = q + 1 } 76 p = p + 1 77 } 78 idbuf[q] = 0 as u8 79 var d0: i64 = 10 80 if p < n { d0 = out[p] as i64; p = p + 1 } 81 if d0 == 9 { 82 var q1: i64 = 0 83 while p < n && out[p] != (9 as u8) && out[p] != (10 as u8) { 84 if q1 < 511 { srcbuf[q1] = out[p]; q1 = q1 + 1 } 85 p = p + 1 86 } 87 srcbuf[q1] = 0 as u8 88 var d1: i64 = 10 89 if p < n { d1 = out[p] as i64; p = p + 1 } 90 if d1 == 9 { 91 var q2: i64 = 0 92 while p < n && out[p] != (9 as u8) && out[p] != (10 as u8) { 93 if q2 < 63 { confbuf[q2] = out[p]; q2 = q2 + 1 } 94 p = p + 1 95 } 96 confbuf[q2] = 0 as u8 97 var d2: i64 = 10 98 if p < n { d2 = out[p] as i64; p = p + 1 } 99 if d2 == 9 { 100 var done: i64 = 0 101 while p < n && done == 0 { 102 let ch: i64 = out[p] as i64 103 p = p + 1 104 if ch == 10 { done = 1 } 105 } 106 } 107 if sw_streq(idbuf, "COL-SCHEMA" as *u8) == 0 { 108 let pm: i64 = sw_conf_permille(confbuf) 109 var ok: i64 = 0 110 if pm >= 750 { 111 if sw_streq(srcbuf, "PRIMARY_HUMAN" as *u8) == 1 { ok = 1 } 112 if sw_streq(srcbuf, "PRIMARY_EMPIRICAL" as *u8) == 1 { ok = 1 } 113 } 114 nodes = nodes + 1 115 sw_puts(" " as *u8); sw_puts(idbuf); sw_puts(" conf=" as *u8); sw_puti(pm); sw_puts(" src=" as *u8); sw_puts(srcbuf) 116 if ok == 1 { sw_puts(" -> ADMIT\n" as *u8); admit = admit + 1 } else { sw_puts(" -> REJECT\n" as *u8); reject = reject + 1 } 117 } 118 } 119 } 120 } 121 sw_puts("ATLASSWEEP nodes=" as *u8); sw_puti(nodes); sw_puts(" admit=" as *u8); sw_puti(admit); sw_puts(" reject=" as *u8); sw_puti(reject); sw_puts("\n" as *u8) 122 sys_exit(0) 123 return 0 124}