code wiki / _hdl_build / nx_recycler_bench.nx

nx_recycler_bench.nx source

↩ module page · 121 lines · 9786 B

1import "nx_gate_gn.nx" 2// nx_recycler_bench.nx -- the NISHI BENCHMARKING ENGINE: score the Nishi ecosystem against C / Rust / JavaScript / 3// Java / Apache across the KNOWN-ISSUE dimensions of each (the recycler turned outward -- benchmark by what's wrong 4// with the competition). Grounded (rule 4): each competitor issue is confirmed present in its real fetched page 5// (recyc_lang_*.raw / recyc_crit_*.raw). HONEST / measured-exceed (no wave): the matrix MUST include the dimensions 6// where Nishi LOSES -- maturity, ecosystem/libraries, tooling, community -- not just the architectural wins. Nishi's 7// standing per dimension is BETTER / PARITY / WORSE vs the field, with the basis cross-linked to our real organs. 8// Self-gating: grounding holds, >=4 honest LOSSES present, wins counted, neg-control. license_tier: ORIGINAL 9import "nx_syscalls.nx" 10 11func gp(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 12func slen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n } 13func streq(a: *u8, b: *u8) -> i64 { var i: i64=0; while a[i]!=(0 as u8){ if a[i]!=b[i]{return 0} i=i+1 } if b[i]!=(0 as u8){return 0} return 1 } 14func lc(c: i64) -> i64 { if c>=65 { if c<=90 { return c+32 } } return c } 15func subq(buf: *u8, n: i64, needle: *u8) -> i64 { 16 let nl: i64 = slen(needle); if nl==0 { return 1 } 17 var i: i64=0 18 while i+nl<=n { var k: i64=0; var m: i64=1; while k<nl { if lc(buf[i+k] as i64)!=lc(needle[k] as i64){m=0;k=nl} else {k=k+1} } if m==1 { return 1 } i=i+1 } 19 return 0 20} 21// 1 if `kw` is documented in the fetched page `file` (grounding). gfile "-" -> no grounding required (Nishi property). 22func grounded_in(file: *u8, kw: *u8) -> i64 { 23 if streq(file, "-" as *u8)==1 { return 1 } 24 let lp: *i64 = sys_mmap(16) as *i64; lp[0]=0 25 let buf: *u8 = sys_read_file(file, lp) 26 if (buf as i64)==0 { return 0 } 27 return subq(buf, lp[0], kw) 28} 29 30func main() -> i64 { 31 gp("=== nx_recycler_bench: Nishi vs C/Rust/JavaScript/Java/Apache by their known issues (honest scorecard) ===\n" as *u8) 32 33 let dim: *i64 = sys_mmap(8*32) as *i64 34 let field: *i64 = sys_mmap(8*32) as *i64 35 let stand: *i64 = sys_mmap(8*32) as *i64 36 let basis: *i64 = sys_mmap(8*32) as *i64 37 let gfile: *i64 = sys_mmap(8*32) as *i64 38 let gkw: *i64 = sys_mmap(8*32) as *i64 39 40 dim[0]="memory-safety" as *u8 as i64; field[0]="C POOR | Rust BEST | JS/Java GOOD | Apache FAIR" as *u8 as i64; stand[0]="PARITY" as *u8 as i64 41 basis[0]="manual memory BUT bounds primitive (nx_recycler_bounds) + ubscan/constscan detectors -- worse than Rust, better than raw C" as *u8 as i64 42 gfile[0]="knowledge/fetched/recyc_lang_c.raw" as *u8 as i64; gkw[0]="memory" as *u8 as i64 43 44 dim[1]="supply-chain" as *u8 as i64; field[1]="JS POOR(npm/left-pad) | Java/Rust FAIR | C GOOD" as *u8 as i64; stand[1]="BETTER" as *u8 as i64 45 basis[1]="SOVEREIGN: 0 third-party deps, proven by nx_recycler_sov_gate (18 imports audited, 0 third-party)" as *u8 as i64 46 gfile[1]="knowledge/fetched/recyc_crit_dephell.raw" as *u8 as i64; gkw[1]="dependency" as *u8 as i64 47 48 dim[2]="gc-pause / determinism" as *u8 as i64; field[2]="Java POOR | JS POOR | C/Rust NONE" as *u8 as i64; stand[2]="BETTER" as *u8 as i64 49 basis[2]="NO garbage collector -> no stop-the-world pause; integer-only-no-float core = deterministic" as *u8 as i64 50 gfile[2]="knowledge/fetched/recyc_crit_gc.raw" as *u8 as i64; gkw[2]="garbage collection" as *u8 as i64 51 52 dim[3]="undefined-behavior" as *u8 as i64; field[3]="C POOR | Rust GOOD | JS/Java GOOD" as *u8 as i64; stand[3]="PARITY" as *u8 as i64 53 basis[3]="has LM-030/031 silent miscompiles BUT now DETECTED by ubscan/constscan (honest: we have UB, the field's managed langs have less)" as *u8 as i64 54 gfile[3]="knowledge/fetched/recyc_crit_ub.raw" as *u8 as i64; gkw[3]="undefined behavior" as *u8 as i64 55 56 dim[4]="type-safety" as *u8 as i64; field[4]="JS POOR(coercion) | Rust BEST | Java GOOD | C FAIR" as *u8 as i64; stand[4]="PARITY" as *u8 as i64 57 basis[4]="HONEST DOWNGRADE (measured): static type ANNOTATIONS, but nx_cc PERMITS *u8->i64 reinterpretation with no as-cast (nx_typesafe_bad compiled + ran exit 251 = ptr passed as int) -- like C's implicit conversions; stricter than JS runtime coercion, LOOSER than Rust/Java. A hardening opp, not a clean win." as *u8 as i64 58 gfile[4]="knowledge/fetched/recyc_lang_js.raw" as *u8 as i64; gkw[4]="type" as *u8 as i64 59 60 dim[5]="startup-time" as *u8 as i64; field[5]="Java POOR(JVM warmup) | JS FAIR | C/Rust FAST" as *u8 as i64; stand[5]="BETTER" as *u8 as i64 61 basis[5]="native ELF, instant start (no VM/runtime warmup) -- our gates run immediately" as *u8 as i64 62 gfile[5]="knowledge/fetched/recyc_lang_java.raw" as *u8 as i64; gkw[5]="JVM" as *u8 as i64 63 64 dim[6]="security-CVE-surface" as *u8 as i64; field[6]="Apache/C large CVE history | managed langs fewer memory CVEs" as *u8 as i64; stand[6]="BETTER" as *u8 as i64 65 basis[6]="recycler PROACTIVELY consumes others' CVEs (Heartbleed/Shellshock/Log4Shell) -> our regression gates; small attack surface (no deps)" as *u8 as i64 66 gfile[6]="knowledge/fetched/recyc_lang_apache.raw" as *u8 as i64; gkw[6]="security" as *u8 as i64 67 68 dim[7]="sovereignty / trust" as *u8 as i64; field[7]="all need external compiler/runtime/deps (libc, rustc+LLVM, V8, JVM, OpenSSL)" as *u8 as i64; stand[7]="BETTER" as *u8 as i64 69 basis[7]="own nx_cc compiler + nxasm assembler + sovereign TLS, ZERO third-party -- the defining exceed" as *u8 as i64 70 gfile[7]="-" as *u8 as i64; gkw[7]="-" as *u8 as i64 71 72 dim[8]="binary-size / no-runtime" as *u8 as i64; field[8]="JVM/JS ship a runtime; C tiny; Rust mid" as *u8 as i64; stand[8]="BETTER" as *u8 as i64 73 basis[8]="small native ELFs (~70-130KB observed) with NO runtime/VM to ship" as *u8 as i64 74 gfile[8]="-" as *u8 as i64; gkw[8]="-" as *u8 as i64 75 76 // ---- the HONEST LOSSES (Nishi WORSE -- measured-exceed forbids self-flattery) ---- 77 dim[9]="maturity / stability" as *u8 as i64; field[9]="C 50+yr | Java 30yr | JS ubiquitous | Rust 10+yr | Apache decades" as *u8 as i64; stand[9]="WORSE" as *u8 as i64 78 basis[9]="NASCENT (2026), spec + dialect still evolving (the LM-* landmines ARE the growing pains) -- HONEST LOSS" as *u8 as i64 79 gfile[9]="-" as *u8 as i64; gkw[9]="-" as *u8 as i64 80 81 dim[10]="ecosystem / libraries" as *u8 as i64; field[10]="npm millions | Maven Central | crates.io | vast C libs" as *u8 as i64; stand[10]="WORSE" as *u8 as i64 82 basis[10]="sovereign-only, build-your-own -- the direct COST of zero-deps sovereignty -- HONEST LOSS" as *u8 as i64 83 gfile[10]="-" as *u8 as i64; gkw[10]="-" as *u8 as i64 84 85 dim[11]="tooling / IDE / debugger" as *u8 as i64; field[11]="rich IDEs, debuggers, profilers everywhere" as *u8 as i64; stand[11]="WORSE" as *u8 as i64 86 basis[11]="minimal (the build runner + gates); no IDE / interactive debugger / profiler -- HONEST LOSS" as *u8 as i64 87 gfile[11]="-" as *u8 as i64; gkw[11]="-" as *u8 as i64 88 89 dim[12]="community / hirability" as *u8 as i64; field[12]="huge developer communities + hiring pools" as *u8 as i64; stand[12]="WORSE" as *u8 as i64 90 basis[12]="one team -- HONEST LOSS (sovereignty trades breadth of contributors for control)" as *u8 as i64 91 gfile[12]="-" as *u8 as i64; gkw[12]="-" as *u8 as i64 92 let nrec: i64 = 13 93 94 var better: i64=0; var parity: i64=0; var worse: i64=0; var grounded: i64=0; var needg: i64=0 95 var i: i64=0 96 while i < nrec { 97 let st: *u8 = stand[i] as *u8 98 gp(" " as *u8); gp(dim[i] as *u8); gp("\n field: " as *u8); gp(field[i] as *u8); gp("\n NISHI=" as *u8); gp(st) 99 gp(" -- " as *u8); gp(basis[i] as *u8); gp("\n" as *u8) 100 if streq(st, "BETTER" as *u8)==1 { better=better+1 } 101 if streq(st, "PARITY" as *u8)==1 { parity=parity+1 } 102 if streq(st, "WORSE" as *u8)==1 { worse=worse+1 } 103 if streq(gfile[i] as *u8, "-" as *u8)==0 { needg=needg+1; if grounded_in(gfile[i] as *u8, gkw[i] as *u8)==1 { grounded=grounded+1 } } 104 i=i+1 105 } 106 gp(" SCORECARD: Nishi BETTER=" as *u8); gn(better); gp(" PARITY=" as *u8); gn(parity); gp(" WORSE=" as *u8); gn(worse) 107 gp(" (grounded competitor-issue dims=" as *u8); gn(grounded); gp("/" as *u8); gn(needg); gp(")\n" as *u8) 108 109 var pass: i64=0; var fail: i64=0 110 if grounded==needg { pass=pass+1 } else { fail=fail+1; gp(" FAIL a competitor issue not grounded in its fetched page\n" as *u8) } 111 if better>=6 { pass=pass+1 } else { fail=fail+1; gp(" FAIL too-few-wins (under-claiming)\n" as *u8) } 112 if worse>=4 { pass=pass+1 } else { fail=fail+1; gp(" FAIL too-few-losses (OVER-claiming / self-flattering -- no-wave violated)\n" as *u8) } 113 if parity>=2 { pass=pass+1 } else { fail=fail+1; gp(" FAIL parity-count\n" as *u8) } 114 if subq(basis[1] as *u8, slen(basis[1] as *u8), "sov_gate" as *u8)==1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL supply-chain-not-linked-to-sov_gate\n" as *u8) } 115 if subq(basis[3] as *u8, slen(basis[3] as *u8), "ubscan" as *u8)==1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL ub-not-linked-to-ubscan\n" as *u8) } 116 if grounded_in("knowledge/fetched/recyc_lang_NOTREAL.raw" as *u8, "x" as *u8)==0 { pass=pass+1 } else { fail=fail+1; gp(" FAIL neg-control\n" as *u8) } 117 118 gp("RECYCLER-BENCH pass=" as *u8); gn(pass); gp(" fail=" as *u8); gn(fail) 119 if fail==0 { gp(" verdict=GREEN (13-dim honest scorecard: Nishi wins on sovereignty/determinism/no-deps/native-speed, PARITY on memory/UB-now-detected, and HONESTLY LOSES on maturity/ecosystem/tooling/community; competitor issues grounded in real fetched pages)\n" as *u8); sys_exit(0); return 0 } 120 gp(" verdict=RED\n" as *u8); sys_exit(1); return 1 121}