nx_coder_gen_nf.nx source
↩ module page · 112 lines · 3201 B
1// nx_coder_gen_nf.nx -- L3b runner: NO-FLOAT tower greedy generation on the CODER weights.
2// nsv_init(coder path) + nsv_generate (mode 0 = i32 lossless, temp 0 = greedy) on two fixed
3// prompts; writes NEUTRAL lines "GEN p<k> tl=<n> text=[<printable>]" to /tmp/coder_gen_nf.txt
4// (identical format to the f32 runner -> the fidelity gate whole-file byte-compares).
5// license_tier: ORIGINAL expect_exit: 0
6import "nx_nofloat_serve_core.nx"
7const K_MAGIC_8192: i64 = 8192
8const K_MAGIC_4000: i64 = 4000
9
10func cg_wb(fd: i64, p: *u8, n: i64) -> i64 {
11 var off: i64 = 0
12 while off < n {
13 let q: *u8 = p + off
14 let rem: i64 = n - off
15 let w: i64 = sys_write(fd, q, rem)
16 if w <= 0 { return 0 - 1 }
17 off = off + w
18 }
19 return 0
20}
21
22func cg_ws(fd: i64, s: *u8) -> i64 {
23 var n: i64 = 0
24 while s[n] != (0 as u8) { n = n + 1 }
25 let r: i64 = cg_wb(fd, s, n)
26 return r
27}
28
29func cg_wdec(fd: i64, v: i64) -> i64 {
30 let b: *u8 = sys_mmap(28) as *u8
31 let t: *u8 = sys_mmap(28) as *u8
32 var m: i64 = v
33 if m < 0 { cg_ws(fd, "-" as *u8); m = 0 - m }
34 var k: i64 = 0
35 if m == 0 { t[0] = 48 as u8; k = 1 }
36 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
37 var i: i64 = 0
38 while i < k { b[i] = t[k - 1 - i]; i = i + 1 }
39 cg_wb(fd, b, k)
40 return 0
41}
42
43// write text with non-printables replaced by '.' (one line stays one line)
44func cg_wtext(fd: i64, p: *u8, n: i64) -> i64 {
45 let o: *u8 = sys_mmap(K_MAGIC_8192) as *u8
46 var i: i64 = 0
47 var cap: i64 = n
48 if cap > K_MAGIC_4000 { cap = K_MAGIC_4000 }
49 while i < cap {
50 let c: i64 = p[i] as i64
51 var v: i64 = c
52 if c < 32 { v = 46 }
53 if c > 126 { v = 46 }
54 o[i] = v as u8
55 i = i + 1
56 }
57 cg_wb(fd, o, cap)
58 return 0
59}
60
61func cg_prompt(fd: i64, k: i64, prompt: *u8, plen: i64) -> i64 {
62 let gp: *i64 = sys_mmap(128) as *i64
63 let outb: *u8 = sys_mmap(K_MAGIC_8192) as *u8
64 let meta: *i64 = sys_mmap(64) as *i64
65 gp[0] = prompt as i64
66 gp[1] = plen
67 gp[2] = 8
68 gp[3] = 0
69 gp[4] = outb as i64
70 gp[5] = K_MAGIC_8192
71 gp[6] = meta as i64
72 let neg: i64 = 0 - 1
73 gp[7] = neg
74 gp[8] = 0
75 gp[9] = 0
76 gp[10] = 0
77 gp[11] = 1
78 let tl: i64 = nsv_generate(gp)
79 cg_ws(fd, "GEN p" as *u8)
80 cg_wdec(fd, k)
81 cg_ws(fd, " tl=" as *u8)
82 cg_wdec(fd, tl)
83 cg_ws(fd, " text=[" as *u8)
84 if tl > 0 { cg_wtext(fd, outb, tl) }
85 cg_ws(fd, "]\n" as *u8)
86 return tl
87}
88
89func main() -> i64 {
90 let ir: i64 = nsv_init("/home/elderwesto/nx_stage/nx_coder_model.gguf\x00" as *u8)
91 cg_ws(1, "NF init rc=" as *u8)
92 cg_wdec(1, ir)
93 cg_ws(1, "\n" as *u8)
94 let fd: i64 = sys_openat_wr("knowledge/forge/coder_gen_nf.txt" as *u8, 420)
95 if fd < 0 { sys_exit(2); return 2 }
96 let t1: i64 = cg_prompt(fd, 1, "Hi" as *u8, 2)
97 let t2: i64 = cg_prompt(fd, 2, "func add(a" as *u8, 10)
98 sys_close(fd)
99 cg_ws(1, "NF t1=" as *u8)
100 cg_wdec(1, t1)
101 cg_ws(1, " t2=" as *u8)
102 cg_wdec(1, t2)
103 cg_ws(1, "\n" as *u8)
104 if t1 > 0 {
105 if t2 > 0 {
106 sys_exit(0)
107 return 0
108 }
109 }
110 sys_exit(1)
111 return 1
112}