code wiki / _hdl_build / nx_product_bar_gate.nx
nx_product_bar_gate.nx source
↩ module page · 129 lines · 5986 B
1// nx_product_bar_gate.nx -- instrument roadmap R1: PRODUCT BARS banked from full-stack OSS ground truth
2// (operator doctrine: OSS repos show frontend+backend+infra+networking+mobile). Verifies the games bars
3// (Godot / Luanti / Veloren) banked by nx_swcompare_research from knowledge/compare/games_products.q:
4// LAYER FINGERPRINTS from repo top-level contents (editor/servers/platform = the full-stack evidence),
5// as-of-today RELEASE markers (tag_name + published_at = the living-compare date), README feature text.
6// These files are what census U/L axes must CITE (coach C2: dated named bars). expect_exit: 0
7// license_tier: ORIGINAL
8import "nx_syscalls.nx"
9
10func pg2_w(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
11func pg2_n(v: i64) -> i64 {
12 let bb: *u8 = sys_mmap(28)
13 var m: i64 = v
14 if m < 0 { pg2_w("-" as *u8); m = 0 - m }
15 let t: *u8 = sys_mmap(28)
16 var k: i64 = 0
17 if m == 0 { t[0] = 48 as u8; k = 1 }
18 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
19 var i: i64 = 0
20 while i < k { bb[i] = t[k - 1 - i]; i = i + 1 }
21 sys_write(1, bb, k)
22 return 0
23}
24func pg2_find(buf: *u8, n: i64, pat: *u8) -> i64 {
25 var pl: i64 = 0
26 while pat[pl] != (0 as u8) { pl = pl + 1 }
27 if pl == 0 { return 0 - 1 }
28 var i: i64 = 0
29 while i + pl <= n {
30 var j: i64 = 0
31 var ok: i64 = 1
32 while j < pl {
33 if buf[i + j] != pat[j] { ok = 0; j = pl } else { j = j + 1 }
34 }
35 if ok == 1 { return i }
36 i = i + 1
37 }
38 return 0 - 1
39}
40func pg2_read(path: *u8, buf: *u8, cap: i64) -> i64 {
41 let fd: i64 = sys_openat_rd(path)
42 if fd < 0 { return 0 - 1 }
43 var tot: i64 = 0
44 var going: i64 = 1
45 while going == 1 {
46 if tot >= cap { going = 0 } else {
47 let r: i64 = sys_read(fd, ((buf as i64) + tot) as *u8, cap - tot)
48 if r <= 0 { going = 0 } else { tot = tot + r }
49 }
50 }
51 sys_close(fd)
52 return tot
53}
54func pg2_tooth(name: *u8, pass: i64, fails: *i64) -> i64 {
55 pg2_w(" " as *u8)
56 pg2_w(name)
57 pg2_w(" -> " as *u8)
58 if pass == 1 { pg2_w("PASS\n" as *u8); return 0 }
59 pg2_w("FAIL\n" as *u8)
60 fails[0] = fails[0] + 1
61 return 0
62}
63// check a layers file for two structural dir markers; returns 1 ok
64func pg2_layers(path: *u8, buf: *u8, m1: *u8, m2: *u8) -> i64 {
65 let n: i64 = pg2_read(path, buf, 1048576)
66 if n < 500 { return 0 }
67 if pg2_find(buf, n, m1) < 0 { return 0 }
68 if pg2_find(buf, n, m2) < 0 { return 0 }
69 return 1
70}
71// check a release file for tag_name + published_at with a 202x date; returns 1 ok
72func pg2_release(path: *u8, buf: *u8) -> i64 {
73 let n: i64 = pg2_read(path, buf, 2097152)
74 if n < 200 { return 0 }
75 if pg2_find(buf, n, "tag_name" as *u8) < 0 { return 0 }
76 if pg2_find(buf, n, "published_at" as *u8) < 0 { return 0 }
77 if pg2_find(buf, n, "202" as *u8) < 0 { return 0 }
78 return 1
79}
80
81func main() -> i64 {
82 pg2_w("=== nx_product_bar_gate -- R1: full-stack OSS product bars (games) banked + citable ===\n" as *u8)
83 let fails: *i64 = sys_mmap(8) as *i64
84 fails[0] = 0
85 let buf: *u8 = sys_mmap(2097152)
86
87 // T1 GODOT layer fingerprint: engine repo exposes editor + servers (+platform/modules) at top level
88 let g1: i64 = pg2_layers("knowledge/library/pb_godot_layers.txt" as *u8, buf, "editor" as *u8, "servers" as *u8)
89 pg2_tooth("T1 Godot LAYER fingerprint (editor + servers dirs = full-stack evidence)" as *u8, g1, fails)
90
91 // T2 LUANTI layer fingerprint: src + android (MOBILE layer -- the operator's point about OSS showing mobile)
92 let g2: i64 = pg2_layers("knowledge/library/pb_luanti_layers.txt" as *u8, buf, "android" as *u8, "src" as *u8)
93 pg2_tooth("T2 Luanti LAYER fingerprint incl MOBILE (android dir) " as *u8, g2, fails)
94
95 // T3 VELOREN layer fingerprint: voxygen (its UI client) + server
96 let g3: i64 = pg2_layers("knowledge/library/pb_veloren_layers.txt" as *u8, buf, "voxygen" as *u8, "server" as *u8)
97 pg2_tooth("T3 Veloren LAYER fingerprint (voxygen UI client + server)" as *u8, g3, fails)
98
99 // T4 as-of-today RELEASE markers on all three (tag_name + published_at + 202x)
100 let r1: i64 = pg2_release("knowledge/library/pb_godot_release.txt" as *u8, buf)
101 let r2: i64 = pg2_release("knowledge/library/pb_luanti_release.txt" as *u8, buf)
102 let r3: i64 = pg2_release("knowledge/library/pb_veloren_release.txt" as *u8, buf)
103 var t4: i64 = 0
104 if r1 == 1 { if r2 == 1 { if r3 == 1 { t4 = 1 } } }
105 pg2_tooth("T4 dated RELEASE markers on 3/3 (tag_name + published_at = living-compare date)" as *u8, t4, fails)
106
107 // T5 READMEs carry feature text (game/engine terms)
108 let n5: i64 = pg2_read("knowledge/library/pb_godot_readme.txt" as *u8, buf, 1048576)
109 var t5: i64 = 0
110 if n5 > 1000 { if pg2_find(buf, n5, "engine" as *u8) >= 0 { t5 = 1 } }
111 pg2_tooth("T5 README feature text banked (godot: engine claims present)" as *u8, t5, fails)
112
113 // T6 determinism: re-read godot layers -> same byte count
114 let a1: i64 = pg2_read("knowledge/library/pb_godot_layers.txt" as *u8, buf, 1048576)
115 let a2: i64 = pg2_read("knowledge/library/pb_godot_layers.txt" as *u8, buf, 1048576)
116 var t6: i64 = 0
117 if a1 == a2 { if a1 > 500 { t6 = 1 } }
118 pg2_tooth("T6 deterministic bank reads" as *u8, t6, fails)
119
120 pg2_w("\nR1 LANDED: the researcher banks ENTIRE PRODUCTS (zero new code -- a .q spec per domain) over sovereign\n" as *u8)
121 pg2_w("TLS at zero token cost. These pb_* files are the NAMED+DATED bars the coach (C2) requires censuses to\n" as *u8)
122 pg2_w("cite. NEXT R2: axis DISCOVERY from >=3 banked products (extend gapmap) -> regenerate the game census.\n" as *u8)
123 pg2_w("\nfails=" as *u8)
124 pg2_n(fails[0])
125 pg2_w("\n" as *u8)
126 if fails[0] == 0 { pg2_w("GREEN -- product bars banked + citable (games: Godot/Luanti/Veloren)\n" as *u8); return 0 }
127 pg2_w("RED\n" as *u8)
128 return 1
129}