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}