code wiki / _hdl_build / nx_roadmap_test.nx
nx_roadmap_test.nx source
↩ module page · 39 lines · 3038 B
1// nx_roadmap_test.nx -- the team generates its OWN roadmap (L8->L0 toward a SOTA-beating quantizer)
2// and items CHECK THEMSELVES OFF as gates pass. Proves: progress is computed from gate status, the
3// next build is the deepest still-TODO item (bits-up, not cherry-picked), and completing an item flips
4// it to DONE automatically. Exit 0 if all hold. license_tier: ORIGINAL
5
6import "nx_roadmap.nx"
7import "nx_syscalls.nx"
8
9func rt_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
10func rt_num(v: i64) -> i64 { let bb: *u8 = sys_mmap(28); var m: i64=v; if m<0 {m=0-m}; let t: *u8 = sys_mmap(28); var k: i64=0; if m==0 {t[0]=48;k=1}; while m>0 {t[k]=48+(m%10); m=m/10; k=k+1}; var i: i64=0; while i<k {bb[i]=t[k-1-i]; i=i+1}; sys_write(1, bb, k); return 0 }
11
12func main() -> i64 {
13 rt_puts("=== TEAM ROADMAP (L8->L0): items check themselves off when gates pass ===\n" as *u8)
14 let n: i64 = 8
15 let layer: *i64 = sys_mmap(8*16) as *i64; let gate: *i64 = sys_mmap(8*16) as *i64
16 // i0 L8 Viterbi i1 L8 gate-prims i2 L7 trellis-smooth i3 L7 Ungerboeck-TCQ(next) i4 L6 ALU
17 // i5 L2 imatrix/VQ i6 L2 perception-spec i7 L0 SOTA-beating-quantizer
18 layer[0]=8; gate[0]=1; layer[1]=8; gate[1]=1; layer[2]=7; gate[2]=1; layer[3]=7; gate[3]=0
19 layer[4]=6; gate[4]=1; layer[5]=2; gate[5]=1; layer[6]=2; gate[6]=1; layer[7]=0; gate[7]=0
20 rt_puts(" progress=" as *u8); rt_num(rm_progress(n, gate)); rt_puts("/1000 L8-done=" as *u8); rt_num(rm_layer_done(n,layer,gate,8))
21 let nx: i64 = rm_next(n, layer, gate)
22 rt_puts(" NEXT build = item #" as *u8); rt_num(nx); rt_puts(" at L" as *u8); rt_num(layer[nx]); rt_puts(" (Ungerboeck set-partition TCQ -- deepest TODO)\n" as *u8)
23
24 // the team completes the TCQ; its gate passes -> the item checks itself off
25 gate[3] = 1
26 let nx2: i64 = rm_next(n, layer, gate)
27 rt_puts(" after TCQ gate green -> progress=" as *u8); rt_num(rm_progress(n, gate)); rt_puts("/1000 NEXT = item #" as *u8); rt_num(nx2); rt_puts(" at L" as *u8); rt_num(layer[nx2]); rt_puts(" (the L0 SOTA-beating quantizer)\n" as *u8)
28
29 let r: *i64 = sys_mmap(8*8) as *i64
30 r[0] = 0; if rm_progress(n, gate) == 875 { r[0] = 1 } // progress from gate status (after check-off)
31 r[1] = 0; if nx == 3 { r[1] = 1 } // next = deepest TODO (TCQ at L7)
32 r[2] = 0; if rm_layer_done(n, layer, gate, 8) == 1 { r[2] = 1 } // L8 fully checked off
33 r[3] = 0; if nx2 == 7 { r[3] = 1 } // after TCQ, next is the L0 goal
34 var pass: i64 = 0; var i: i64 = 0
35 while i < 4 { pass = pass + r[i]; i = i + 1 }
36 rt_puts("----\n passed " as *u8); rt_num(pass); rt_puts("/4\n" as *u8)
37 if pass == 4 { rt_puts(" ROADMAP LIVE: the team emits L8->L0, gates check items off, the deepest TODO is the next build. Claude watches + builds the next item, not the bookkeeping.\n" as *u8); sys_exit(0); return 0 }
38 rt_puts(" FAIL\n" as *u8); sys_exit(1); return 1
39}