code wiki / _hdl_build / nx_census_to_bg.nx
nx_census_to_bg.nx source
↩ module page · 87 lines · 4104 B
1// nx_census_to_bg.nx -- generic adapter: a RICH census (id\tcategory\tfeature\tstatus\tweight, the
2// nx_math_census/nx_sci_census/nx_wolfram_census output format) -> the nx_backlog_gen CONTRACT
3// (status\tfeature\tunion\tevidence, ABSENT-keyed). So ANY rich census's gaps flow into the self-feed
4// -> GEN-<rung>-<id> queue tasks -> the swarm/clones build them (hardware-rung-up, sovereign, EXCEED).
5// Reusable (operator: "get functionalities from across LOTS of systems ... S-class exceed, time the only
6// limit") -- one adapter serves every incumbent catalog. argv[1]=input rich census, argv[2]=output bg.
7//
8// module: nishi-core.meta.census_to_bg
9// depends: nishi-core.sys.syscalls
10// capability: RICH_CENSUS_TO_BACKLOG_CONTRACT_ADAPTER
11// license_tier: ORIGINAL
12import "nx_syscalls.nx"
13const K_MAGIC_262144: i64 = 262144
14
15func cb_w(fd: i64, s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(fd,s,n); return 0 }
16func cb_wn(fd: i64, v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m;sys_write(fd,"-" as *u8,1)}; 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)) as u8;m=m/10;k=k+1}; var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1}; sys_write(fd,bb,k); return 0 }
17func cb_len(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n }
18
19func cb_read(path: *u8, buf: *u8, cap: i64) -> i64 {
20 let fd: i64 = sys_openat_rd(path)
21 if fd < 0 { return 0 }
22 var n: i64 = 0
23 var r: i64 = sys_read(fd, buf, cap - 1)
24 while r > 0 { n = n + r; if n >= cap - 1 { r = 0 } else { r = sys_read(fd, buf + n, cap - 1 - n) } }
25 sys_close(fd)
26 return n
27}
28
29func cb_field(buf: *u8, ls: i64, le: i64, f: i64, dst: *u8, cap: i64) -> i64 {
30 var col: i64 = 0
31 var p: i64 = ls
32 var k: i64 = 0
33 while p < le {
34 if buf[p] == (9 as u8) { if col == f { dst[k] = 0 as u8; return k } col = col + 1; if col == f { k = 0 } }
35 else { if col == f { if k < cap - 1 { dst[k] = buf[p]; k = k + 1 } } }
36 p = p + 1
37 }
38 dst[k] = 0 as u8
39 return k
40}
41
42func main(argc: i64, argv: *i64) -> i64 {
43 if argc < 3 { cb_w(1, "usage: nx_census_to_bg <in-rich-census> <out-bg>\n" as *u8); sys_exit(2); return 2 }
44 let inp: *u8 = argv[1] as *u8
45 let outp: *u8 = argv[2] as *u8
46 let buf: *u8 = sys_mmap(K_MAGIC_262144)
47 let n: i64 = cb_read(inp, buf, K_MAGIC_262144)
48 if n <= 0 { cb_w(1, "CENSUS2BG verdict=RED reason=no-input\n" as *u8); sys_exit(11); return 11 }
49 let ofd: i64 = sys_openat_wr(outp, 0x1a4)
50 if ofd < 0 { cb_w(1, "CENSUS2BG verdict=RED reason=no-output\n" as *u8); sys_exit(12); return 12 }
51 cb_w(ofd, "# AUTHORED by nx_census_to_bg -- rich census -> backlog_gen contract. columns: status\tfeature\tunion\tevidence\n" as *u8)
52
53 let idf: *u8 = sys_mmap(128)
54 let feat: *u8 = sys_mmap(256)
55 let stat: *u8 = sys_mmap(64)
56 var rows: i64 = 0
57 var absent: i64 = 0
58 var ls: i64 = 0
59 var i: i64 = 0
60 while i <= n {
61 var eol: i64 = 0
62 if i == n { eol = 1 } else { if buf[i] == (10 as u8) { eol = 1 } }
63 if eol == 1 {
64 if i > ls { if buf[ls] != (35 as u8) {
65 let il: i64 = cb_field(buf, ls, i, 0, idf, 128)
66 let sl: i64 = cb_field(buf, ls, i, 3, stat, 64)
67 if il > 0 { if sl > 0 {
68 cb_field(buf, ls, i, 2, feat, 256)
69 // emit: status \t feature(=id slug) \t union(=desc) \t evidence
70 cb_w(ofd, stat); cb_w(ofd, "\t" as *u8); cb_w(ofd, idf); cb_w(ofd, "\t" as *u8)
71 cb_w(ofd, feat); cb_w(ofd, "\tsovereign-hw-rung-up-research-not-copy-exceed\n" as *u8)
72 rows = rows + 1
73 // ABSENT? (first byte 'A')
74 if stat[0] == (65 as u8) { absent = absent + 1 }
75 } }
76 } }
77 ls = i + 1
78 }
79 i = i + 1
80 }
81 sys_close(ofd)
82 cb_w(1, "CENSUS2BG rows=" as *u8); cb_wn(1, rows)
83 cb_w(1, " absent=" as *u8); cb_wn(1, absent)
84 cb_w(1, " verdict=GREEN\n" as *u8)
85 sys_exit(0)
86 return 0
87}