code wiki / _hdl_build / nx_wiki_vplist_probe.nx

nx_wiki_vplist_probe.nx source

↩ module page · 30 lines · 1392 B

1// nx_wiki_vplist_probe.nx -- independent durability probe: list retained rollback points for a slug 2// (argv[1], default nist_stem) read from the DURABLE WAR_PREFIX store in a FRESH process -- proves the 3// version index survives across process boundaries / runs. license_tier: ORIGINAL 4import "nx_wiki_versioned_publish.nx" 5import "nx_syscalls.nx" 6 7func p_w(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 8func p_num(v: i64) -> i64 { 9 let bb: *u8 = sys_mmap(28); var m: i64 = v; if m < 0 { m = 0 - m } 10 let t: *u8 = sys_mmap(28); var k: i64 = 0 11 if m == 0 { t[0] = 48 as u8; k = 1 } 12 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 13 var i: i64 = 0; while i < k { bb[i] = t[k - 1 - i]; i = i + 1 } 14 sys_write(1, bb, k); return 0 15} 16 17func main(argc: i64, argv: *i64) -> i64 { 18 var slug: *u8 = "nist_stem" as *u8 19 if argc >= 2 { slug = argv[1] as *u8 } 20 let vers: *i64 = sys_mmap(8 * 64) as *i64 21 let cidbuf: *u8 = sys_mmap(72 * 64) 22 let n: i64 = vp_list(slug, vers, cidbuf, 64) 23 p_w("vp_list(" as *u8); p_w(slug); p_w(") retained_points=" as *u8); p_num(n); p_w("\n" as *u8) 24 var i: i64 = 0 25 while i < n { 26 p_w(" v" as *u8); p_num(vers[i]); p_w(" cid=" as *u8); p_w((cidbuf as i64 + i * 72) as *u8); p_w("\n" as *u8) 27 i = i + 1 28 } 29 sys_exit(0); return 0 30}