code wiki / _hdl_build / nx_dep_retire_test.nx

nx_dep_retire_test.nx source

↩ module page · 41 lines · 3176 B

1// nx_dep_retire_test.nx -- the real retirement scoreboard. grep -> nx_grep (RETIRED), bash -> the 2// NishiLang build orchestrator (RETIRED), gcc-as-assembler -> REMAINING (owed a sovereign assembler), 3// Linux kernel -> SUBSTRATE. Remaining real dependency count drops to 1 (just gcc). Exit 0 on 6/6. 4// license_tier: ORIGINAL 5 6import "nx_dep_retire.nx" 7import "nx_syscalls.nx" 8 9func dt_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 dt_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 dt_puts("=== DEPENDENCY RETIREMENT (sovereign replacements -> tools become benchmark-only) ===\n" as *u8) 14 // grep, bash now have sovereign replacements; gcc does not yet; kernel is substrate. 15 let grep: i64 = dr_status(1, 0) // nx_grep 16 let bash: i64 = dr_status(1, 0) // nx_build_orchestrator 17 let gcc: i64 = dr_status(0, 0) // no sovereign assembler yet 18 let kern: i64 = dr_status(0, 1) // Linux kernel = substrate 19 20 let n: i64 = 4 21 let st: *i64 = sys_mmap(8*8) as *i64; st[0]=grep; st[1]=bash; st[2]=gcc; st[3]=kern 22 let remaining: i64 = dr_remaining_deps(st, n) 23 let retired: i64 = dr_count(st, n, DR_RETIRED) 24 25 dt_puts(" grep -> " as *u8); dt_num(grep); dt_puts(" (1=RETIRED, nx_grep) bash -> " as *u8); dt_num(bash); dt_puts(" (1=RETIRED, nx_build_orchestrator)\n" as *u8) 26 dt_puts(" gcc-assembler -> " as *u8); dt_num(gcc); dt_puts(" (2=REMAINING, owed a sovereign assembler) kernel -> " as *u8); dt_num(kern); dt_puts(" (3=SUBSTRATE)\n" as *u8) 27 dt_puts(" REAL dependencies remaining = " as *u8); dt_num(remaining); dt_puts(" (just gcc) retired+benchmark-only = " as *u8); dt_num(retired); dt_puts("\n" as *u8) 28 29 let r: *i64 = sys_mmap(8*8) as *i64 30 r[0] = 0; if grep == DR_RETIRED { if bash == DR_RETIRED { r[0] = 1 } } // grep + bash RETIRED 31 r[1] = 0; if gcc == DR_REMAINING { r[1] = 1 } // gcc the last real dependency 32 r[2] = 0; if kern == DR_SUBSTRATE { r[2] = 1 } // kernel = substrate (floor) 33 r[3] = 0; if remaining == 1 { r[3] = 1 } // down to 1 real dependency 34 r[4] = 0; if retired == 2 { r[4] = 1 } // 2 retired this thread 35 r[5] = 0; if dr_benchmark_only(grep) == 1 { if dr_benchmark_only(gcc) == 0 { r[5] = 1 } } // retired=benchmark-only; remaining isn't 36 var pass: i64 = 0; var i: i64 = 0 37 while i < 6 { pass = pass + r[i]; i = i + 1 } 38 dt_puts("----\n passed " as *u8); dt_num(pass); dt_puts("/6\n" as *u8) 39 if pass == 6 { dt_puts(" RETIRING THE STACK: grep + bash replaced by sovereign NishiLang (kept only as benchmarks); ONE real dependency left = gcc, to be retired by a sovereign assembler. The team is closing on an all-sovereign stack.\n" as *u8); sys_exit(0); return 0 } 40 dt_puts(" FAIL\n" as *u8); sys_exit(1); return 1 41}