code wiki / _hdl_build / nx_dataplane_census.nx
nx_dataplane_census.nx source
↩ module page · 216 lines · 10881 B
1// nx_dataplane_census.nx -- FLAT-FILE DATA-PLANE CENSUS (operator 2026-07-16: "eat our debt for the
2// whole ecosystem" after the store-law correction). Measures the ecosystem-wide violation class the
3// arch-board just repaired for itself: organs whose DATA PLANE is a flat .tsv/.data/.reg/.conf/.csv
4// file instead of a knowledge/store/ seg-store key ([[feedback-sovereign-store-not-flat-files]]).
5// Scans every .nx in the two zones for QUOTED literal paths with a data-plane extension; skips
6// comment tails, knowledge/store/ paths (sovereign), /tmp + logs/ (scratch/diagnostics), and
7// *superseded* gravestones. Emits `DP|<organ>|<path>` rows + a parseable summary -- the arch board
8// composes this as its `flat_dataplanes` ratchet metric and banks the rows to its store.
9// nx_dataplane_census <core-dir> <organ-dir> -- census; exit 0
10// nx_dataplane_census gate -- self-test on planted fixtures; exit 0/1
11// license_tier: ORIGINAL module: nishi-core.architect.dataplane_census
12import "nx_syscalls.nx"
13const K_MAGIC_65536: i64 = 65536
14const K_MAGIC_1024: i64 = 1024
15const K_MAGIC_1048576: i64 = 1048576
16
17func dc_p(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
18func dc_pn(v: i64) -> i64 {
19 var m: i64 = v; if m < 0 { dc_p("-" as *u8); m = 0 - m }
20 let t: *u8 = sys_mmap(24); var k: i64 = 0; if m == 0 { t[0] = 48 as u8; k = 1 }
21 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
22 let o: *u8 = sys_mmap(24); var i: i64 = 0; while i < k { o[i] = t[k-1-i]; i = i + 1 } sys_write(1, o, k)
23 sys_munmap(t, 24); sys_munmap(o, 24); return 0
24}
25func dc_streq(a: *u8, b: *u8) -> i64 { var i: i64 = 0; while a[i] != (0 as u8) { if a[i] != b[i] { return 0 } i = i + 1 } if b[i] != (0 as u8) { return 0 } return 1 }
26// does buf[o..o+l) end with suffix?
27func dc_ends(a: *u8, o: i64, l: i64, suf: *u8) -> i64 {
28 var sl: i64 = 0; while suf[sl] != (0 as u8) { sl = sl + 1 }
29 if l < sl { return 0 }
30 var i: i64 = 0
31 while i < sl { if a[o+l-sl+i] != suf[i] { return 0 } i = i + 1 }
32 return 1
33}
34// does buf[o..o+l) contain NUL-terminated pat?
35func dc_has(a: *u8, o: i64, l: i64, pat: *u8) -> i64 {
36 var pl: i64 = 0; while pat[pl] != (0 as u8) { pl = pl + 1 }
37 if pl == 0 { return 0 }
38 var i: i64 = 0
39 while i + pl <= l {
40 var m: i64 = 1
41 var j: i64 = 0
42 while j < pl { if a[o+i+j] != pat[j] { m = 0; j = pl } else { j = j + 1 } }
43 if m == 1 { return 1 }
44 i = i + 1
45 }
46 return 0
47}
48// data-plane extension? (.txt deliberately EXCLUDED: doc-noise; .html/.log = views/diagnostics)
49func dc_is_dp(a: *u8, o: i64, l: i64) -> i64 {
50 if dc_ends(a, o, l, ".tsv" as *u8) == 1 { return 1 }
51 if dc_ends(a, o, l, ".data" as *u8) == 1 { return 1 }
52 if dc_ends(a, o, l, ".reg" as *u8) == 1 { return 1 }
53 if dc_ends(a, o, l, ".conf" as *u8) == 1 { return 1 }
54 if dc_ends(a, o, l, ".csv" as *u8) == 1 { return 1 }
55 return 0
56}
57// scan ONE source buffer; print DP rows (dedup within file via tiny linear list); returns pairs found
58func dc_scan_buf(name: *u8, buf: *u8, n: i64) -> i64 {
59 let seen_off: *i64 = sys_mmap(64 * 8) as *i64
60 let seen_len: *i64 = sys_mmap(64 * 8) as *i64
61 var nseen: i64 = 0
62 var pairs: i64 = 0
63 var i: i64 = 0
64 var incmt: i64 = 0
65 while i < n {
66 let c: i64 = buf[i] as i64
67 if c == 10 { incmt = 0 }
68 if incmt == 0 {
69 if c == 47 { if i + 1 < n { if buf[i+1] == (47 as u8) { incmt = 1 } } }
70 if incmt == 0 { if c == 34 {
71 // quoted span: find closing quote on this line
72 var e: i64 = i + 1
73 var go: i64 = 1
74 while go == 1 {
75 if e >= n { go = 0 } else {
76 if buf[e] == (34 as u8) { go = 0 } else { if buf[e] == (10 as u8) { go = 0 } else { e = e + 1 } }
77 }
78 }
79 if e < n { if buf[e] == (34 as u8) {
80 let so: i64 = i + 1
81 let sl: i64 = e - so
82 if sl > 4 { if sl < 200 { if dc_is_dp(buf, so, sl) == 1 {
83 var skip: i64 = 0
84 if dc_has(buf, so, sl, "knowledge/store/" as *u8) == 1 { skip = 1 }
85 if dc_has(buf, so, sl, "/tmp/" as *u8) == 1 { skip = 1 }
86 if dc_has(buf, so, sl, "logs/" as *u8) == 1 { skip = 1 }
87 if dc_has(buf, so, sl, "superseded" as *u8) == 1 { skip = 1 }
88 if skip == 0 {
89 // dedup within this file
90 var dup: i64 = 0
91 var d: i64 = 0
92 while d < nseen {
93 if seen_len[d] == sl {
94 var eq: i64 = 1
95 var q: i64 = 0
96 while q < sl { if buf[seen_off[d]+q] != buf[so+q] { eq = 0; q = sl } else { q = q + 1 } }
97 if eq == 1 { dup = 1; d = nseen }
98 }
99 d = d + 1
100 }
101 if dup == 0 {
102 if nseen < 64 { seen_off[nseen] = so; seen_len[nseen] = sl; nseen = nseen + 1 }
103 dc_p("DP|" as *u8); dc_p(name); dc_p("|" as *u8)
104 sys_write(1, ((buf as i64)+so) as *u8, sl)
105 dc_p("\n" as *u8)
106 pairs = pairs + 1
107 }
108 }
109 } } }
110 i = e
111 } }
112 } }
113 }
114 i = i + 1
115 }
116 sys_munmap(seen_off as *u8, 64 * 8)
117 sys_munmap(seen_len as *u8, 64 * 8)
118 return pairs
119}
120// scan a directory of .nx files; returns pairs; organs[0] += files-with-any
121func dc_scan_dir(dir: *u8, fbuf: *u8, fcap: i64, organs: *i64) -> i64 {
122 let fd: i64 = sys_openat_rd(dir)
123 if fd < 0 { return 0 - 1 }
124 let db: *u8 = sys_mmap(K_MAGIC_65536)
125 let pathb: *u8 = sys_mmap(512)
126 var pairs: i64 = 0
127 var nr: i64 = 1
128 while nr > 0 {
129 nr = sys_getdents64(fd, db, K_MAGIC_65536)
130 if nr > 0 {
131 var o: i64 = 0
132 while o < nr {
133 let rl: i64 = (db[o+16] as i64) + ((db[o+17] as i64) * 256)
134 if rl <= 0 { o = nr } else {
135 if db[o+18] != (4 as u8) {
136 var nl: i64 = 0
137 while db[o+19+nl] != (0 as u8) { nl = nl + 1 }
138 if nl > 3 { if dc_ends(db, o+19, nl, ".nx" as *u8) == 1 {
139 var po: i64 = 0
140 var t: i64 = 0
141 while dir[t] != (0 as u8) { pathb[po] = dir[t]; po = po + 1; t = t + 1 }
142 pathb[po] = 47 as u8
143 po = po + 1
144 t = 0
145 while t < nl { pathb[po] = db[o+19+t]; po = po + 1; t = t + 1 }
146 pathb[po] = 0 as u8
147 let ffd: i64 = sys_openat_rd(pathb)
148 if ffd >= 0 {
149 var fn: i64 = 0
150 var r: i64 = 1
151 while r > 0 { r = sys_read(ffd, (fbuf as i64 + fn) as *u8, fcap - 1 - fn); if r > 0 { fn = fn + r } if fn >= fcap - 1 { r = 0 } }
152 sys_close(ffd)
153 let got: i64 = dc_scan_buf(pathb, fbuf, fn)
154 if got > 0 { organs[0] = organs[0] + 1; pairs = pairs + got }
155 }
156 } }
157 }
158 o = o + rl
159 }
160 }
161 }
162 }
163 sys_close(fd)
164 sys_munmap(db, K_MAGIC_65536)
165 sys_munmap(pathb, 512)
166 return pairs
167}
168
169func dc_gate() -> i64 {
170 dc_p("=== nx_dataplane_census GATE (planted fixtures; the ruler must discriminate) ===\n" as *u8)
171 var fail: i64 = 0
172 // planted source: one real DP literal + one comment-only + one store-path (skip) + one /tmp (skip)
173 let src: *u8 = sys_mmap(K_MAGIC_1024)
174 var o: i64 = 0
175 let l1: *u8 = "let a: i64 = sys_openat_rd(zq) // reads \"commented.tsv\" in prose\n" as *u8
176 var i: i64 = 0
177 while l1[i] != (0 as u8) { src[o] = l1[i]; o = o + 1; i = i + 1 }
178 let l2: *u8 = "let p: *u8 = \"knowledge/registry/real_plane.tsv\" as *u8\n" as *u8
179 i = 0
180 while l2[i] != (0 as u8) { src[o] = l2[i]; o = o + 1; i = i + 1 }
181 let l3: *u8 = "let s: *u8 = \"knowledge/store/foo-x.data\" as *u8\n" as *u8
182 i = 0
183 while l3[i] != (0 as u8) { src[o] = l3[i]; o = o + 1; i = i + 1 }
184 let l4: *u8 = "let t: *u8 = \"/tmp/scratch.csv\" as *u8\n" as *u8
185 i = 0
186 while l4[i] != (0 as u8) { src[o] = l4[i]; o = o + 1; i = i + 1 }
187 // duplicate of the real literal (dedup tooth)
188 i = 0
189 while l2[i] != (0 as u8) { src[o] = l2[i]; o = o + 1; i = i + 1 }
190 let got: i64 = dc_scan_buf("fixture.nx" as *u8, src, o)
191 if got == 1 { dc_p(" [PASS] exactly 1 pair: real literal counted; comment/store/tmp/duplicate all excluded\n" as *u8) } else { dc_p(" [FAIL] expected 1 pair, got " as *u8); dc_pn(got); dc_p("\n" as *u8); fail = 1 }
192 // negative control: a clean buffer must yield zero
193 let clean: *u8 = "func main(argc: i64, argv: *i64) -> i64 { return 0 }\n" as *u8
194 var cl: i64 = 0
195 while clean[cl] != (0 as u8) { cl = cl + 1 }
196 if dc_scan_buf("clean.nx" as *u8, clean, cl) == 0 { dc_p(" [PASS] neg-control: clean source -> 0 pairs\n" as *u8) } else { dc_p(" [FAIL] clean source counted\n" as *u8); fail = 1 }
197 if fail == 0 { dc_p("=== GATE GREEN ===\n" as *u8); sys_exit(0); return 0 }
198 dc_p("=== GATE RED ===\n" as *u8); sys_exit(1); return 1
199}
200
201func main(argc: i64, argv: *i64) -> i64 {
202 if argc < 2 { return dc_gate() }
203 if dc_streq(argv[1] as *u8, "gate" as *u8) == 1 { return dc_gate() }
204 if argc < 3 { dc_p("usage: nx_dataplane_census <core-dir> <organ-dir> | gate\n" as *u8); return 2 }
205 let fbuf: *u8 = sys_mmap(K_MAGIC_1048576)
206 let organs: *i64 = sys_mmap(16) as *i64
207 organs[0] = 0
208 let p1: i64 = dc_scan_dir(argv[1] as *u8, fbuf, K_MAGIC_1048576, organs)
209 let p2: i64 = dc_scan_dir(argv[2] as *u8, fbuf, K_MAGIC_1048576, organs)
210 if p1 < 0 { dc_p("FLAT-DATAPLANES scan-fail core-dir\n" as *u8); return 1 }
211 if p2 < 0 { dc_p("FLAT-DATAPLANES scan-fail organ-dir\n" as *u8); return 1 }
212 dc_p("FLAT-DATAPLANES pairs=" as *u8); dc_pn(p1 + p2)
213 dc_p(" organs=" as *u8); dc_pn(organs[0])
214 dc_p(" (organ,path) flat-file data planes -- the store-law eat queue (rows above)\n" as *u8)
215 return 0
216}