code wiki / (root) / nx_measurement_binding_diagnostic.nx

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}