nx_measurement_binding_diagnostic.nx source
↩ module page · 71 lines · 3206 B
1// Read-only diagnosis of the complete real plan; no projection policy changes.
2// license_tier: ORIGINAL
3import "nx_measurement_binding_lib.nx"
4import "nx_gate_verdict.nx"
5import "nx_estate_path.nx"
6
7func pd_row(plan: *u8, p: i64, e: i64, fields: i64) -> i64 {
8 gv_puts("row_offset=" as *u8); gv_num(p)
9 gv_puts(" row_bytes=" as *u8); gv_num(e-p)
10 gv_puts(" fields=" as *u8); gv_num(fields); gv_puts("\n" as *u8)
11 sys_write(1, ((plan as i64)+p) as *u8, e-p); gv_puts("\n" as *u8)
12 return 0
13}
14func main() -> i64 {
15 if ep_anchor() < 0 { gv_puts("DIAGNOSTIC estate anchor unavailable\n" as *u8); return 3 }
16 let n: *i64 = sys_mmap(8) as *i64
17 let plan: *u8 = sys_read_file("buildroot/knowledge/compare/gameengine.plan" as *u8, n)
18 if (plan as i64) <= 0 { gv_puts("DIAGNOSTIC full plan unreadable\n" as *u8); return 3 }
19 gv_puts("full_plan_bytes=" as *u8); gv_num(n[0]); gv_puts("\n" as *u8)
20 var p: i64 = 0
21 while p < n[0] {
22 if plan[p] == (0 as u8) {
23 gv_puts("embedded_NUL_offset=" as *u8); gv_num(p); gv_puts("\n" as *u8); return 3
24 }
25 p = p+1
26 }
27 let capacity: i64 = bf_count_rows(plan, n[0], LD_RUNG_TAG)
28 let rows: *i64 = sys_mmap((capacity+1)*PB_ROW_SLOTS*8) as *i64
29 let stats: *i64 = sys_mmap(PB_STATS_SLOTS*8) as *i64
30 let scratch: *i64 = sys_mmap(8) as *i64
31 let parsed: i64 = pb_plan_scan(plan, n[0], rows, capacity, stats, scratch)
32 gv_puts("census_rung_rows=" as *u8); gv_num(capacity)
33 gv_puts(" parser_rc=" as *u8); gv_num(parsed); gv_puts("\n" as *u8)
34 // An independent format diagnostic inspects actual bytes; it does not accept them.
35 p = 0
36 while p < n[0] {
37 let raw: i64 = bf_line_end(plan, n[0], p)
38 let e: i64 = pb_trim_cr(plan, p, raw)
39 if bf_line_starts(plan, p, e, LD_RUNG_TAG) == 1 {
40 var fields: i64 = 0
41 while bf_field(plan, p, e, fields, scratch) >= 0 { fields = fields+1 }
42 let il: i64 = bf_field(plan, p, e, LD_F_R_ID, scratch)
43 let io: i64 = scratch[0]
44 let sl: i64 = bf_field(plan, p, e, PB_F_SYMBOL, scratch)
45 var invalid: i64 = 0
46 if fields != PB_PLAN_FIELDS { invalid = 1 }
47 if il <= 0 { invalid = 1 }
48 if sl <= 0 { invalid = 1 }
49 if invalid == 1 {
50 gv_puts("FIRST_UNSUPPORTED_ROW\n" as *u8); pd_row(plan, p, e, fields); return 3
51 }
52 var q: i64 = 0
53 while q < p {
54 let qr: i64 = bf_line_end(plan, n[0], q)
55 let qe: i64 = pb_trim_cr(plan, q, qr)
56 if bf_line_starts(plan, q, qe, LD_RUNG_TAG) == 1 {
57 let ql: i64 = bf_field(plan, q, qe, LD_F_R_ID, scratch)
58 if pb_equal(plan, io, il, plan, scratch[0], ql) == 1 {
59 gv_puts("FIRST_DUPLICATE_PAIR\n" as *u8); pd_row(plan, q, qe, PB_PLAN_FIELDS); pd_row(plan, p, e, fields); return 3
60 }
61 }
62 q = qr+1
63 }
64 }
65 p = raw+1
66 }
67 gv_puts("NO_FORMAT_OR_DUPLICATE_DEFECT_FOUND\n" as *u8)
68 sys_free_file(plan, n[0])
69 if parsed != capacity { return 3 }
70 return 0
71}