code wiki / _hdl_build / nx_eqtmp_reap.nx

nx_eqtmp_reap.nx source

↩ module page · 57 lines · 2309 B

1// nx_eqtmp_reap.nx -- ONE-SHOT: unlink the LEGACY fixed-path equiv-gate temps orphaned by the 2// 2026-08-05 per-run-nonce change (nx_cc_equiv_gate now names temps eqa_<nonce>.* and cleans up 3// after itself; the old fixed names below are never written or overwritten again, so the final 4// set would sit on disk forever). Idempotent: a missing path counts as already-clean. 5// Run from nishihost CWD (nx_job_run default): /tmp absolute, _build via buildroot/. 6// license_tier: ORIGINAL expect_exit: 0 7import "nx_syscalls.nx" 8func rp_putn(v: i64) -> i64 { 9 let t: *u8 = sys_mmap(28) 10 let o: *u8 = sys_mmap(28) 11 var m: i64 = v 12 var k: i64 = 0 13 if m == 0 { t[0] = 48 as u8; k = 1 } 14 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 15 var i: i64 = 0 16 while i < k { o[i] = t[k - 1 - i]; i = i + 1 } 17 sys_write(1, o, k) 18 return 0 19} 20func reap(path: *u8, removed: *i64, missing: *i64) -> i64 { 21 if sys_unlinkat(path) == 0 { *removed = *removed + 1 } else { *missing = *missing + 1 } 22 return 0 23} 24func main(argc: i64, argv: *i64) -> i64 { 25 let r_raw: *u8 = sys_mmap(16) 26 let m_raw: *u8 = sys_mmap(16) 27 let r: *i64 = r_raw as *i64 28 let m: *i64 = m_raw as *i64 29 *r = 0 30 *m = 0 31 reap("/tmp/eqa.s\x00" as *u8, r, m) 32 reap("/tmp/eqa.o\x00" as *u8, r, m) 33 reap("/tmp/eqa.out\x00" as *u8, r, m) 34 reap("/tmp/eqb.s\x00" as *u8, r, m) 35 reap("/tmp/eqb.o\x00" as *u8, r, m) 36 reap("/tmp/eqb.out\x00" as *u8, r, m) 37 reap("/tmp/eqg2.s\x00" as *u8, r, m) 38 reap("/tmp/eqg2.o\x00" as *u8, r, m) 39 reap("/tmp/eqpr.s\x00" as *u8, r, m) 40 reap("/tmp/eqpr.o\x00" as *u8, r, m) 41 reap("/tmp/eqpr.out\x00" as *u8, r, m) 42 reap("/tmp/eq_cc_a.log\x00" as *u8, r, m) 43 reap("/tmp/eq_cc_b.log\x00" as *u8, r, m) 44 reap("/tmp/eq_nxasm.log\x00" as *u8, r, m) 45 reap("buildroot/_build/eqa.elf\x00" as *u8, r, m) 46 reap("buildroot/_build/eqb.elf\x00" as *u8, r, m) 47 reap("buildroot/_build/eqg2.elf\x00" as *u8, r, m) 48 reap("buildroot/_build/eqpr.elf\x00" as *u8, r, m) 49 reap("buildroot/_build/_eq_asm_out.elf\x00" as *u8, r, m) 50 sys_write(1, "EQTMP-REAP removed=" as *u8, 19) 51 rp_putn(*r) 52 sys_write(1, " already_clean=" as *u8, 15) 53 rp_putn(*m) 54 sys_write(1, " of=19\n" as *u8, 7) 55 sys_exit(0) 56 return 0 57}