nx_atlas_dedup.nx source
↩ module page · 33 lines · 1169 B
1// nx_atlas_dedup.nx -- atlas-hygiene SYNTACTIC DEDUP primitive (blueprint Layer A / F261).
2// Two content hashes: identical -> COLLAPSE (exit 5, duplicate nodes must merge); different -> KEEP
3// (exit 0). The atomic op the tri-layer dedup scan composes. Zero side effects. license_tier: ORIGINAL expect_exit: 0
4import "nx_syscalls.nx"
5func ad_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
6func ad_streq(a: *u8, b: *u8) -> i64 {
7 var i: i64 = 0
8 while a[i] != (0 as u8) {
9 if a[i] != b[i] { return 0 }
10 i = i + 1
11 }
12 if b[i] != (0 as u8) { return 0 }
13 return 1
14}
15func main(argc: i64, argv: *i64) -> i64 {
16 if argc < 3 {
17 sys_write(1, "ATLASDEDUP ERR need hashA hashB\n" as *u8, 32)
18 sys_exit(2)
19 return 2
20 }
21 let a: *u8 = argv[1] as *u8
22 let b: *u8 = argv[2] as *u8
23 if ad_streq(a, b) == 1 {
24 sys_write(1, "ATLASDEDUP COLLAPSE dup hash=" as *u8, 29)
25 sys_write(1, a, ad_slen(a))
26 sys_write(1, "\n" as *u8, 1)
27 sys_exit(5)
28 return 5
29 }
30 sys_write(1, "ATLASDEDUP KEEP distinct\n" as *u8, 25)
31 sys_exit(0)
32 return 0
33}