code wiki / _hdl_build / nx_studio_exceed_gate.nx
nx_studio_exceed_gate.nx
buildroot/runtime/_hdl_build/nx_studio_exceed_gate.nx
about
nx_studio_exceed_gate.nx -- MEASURED head-to-head EXCEED for the WYSIWYG EDITOR (nx_sitegen_studio) vs the
Wix/Webflow/WordPress visual editors, through the no-overclaim referee (nx_cms_exceed). This complements the
builder-output exceed gate (nx_sitegen_exceed_gate) by measuring the EDITOR itself, and -- per the no-wave law
-- it turns the previously hand-waved "editor maturity BEHIND" into a real MEASURED, mixed ledger: we run OUR
editor's actual /build decision (se_build_site) over a real corpus; the verdict is COMPUTED (cannot be
hand-set); the referee rejects any overclaim; and the gate reports our LOSSES honestly, refusing to log them
as wins. The incumbent oracle = the DOCUMENTED behavior of the incumbents (we cannot run real Wix -- cloud,
no sovereignty), anchored to citable facts, NOT fabricated:
AXIS A editor governance: Wix/WP/Webflow editors impose NO publish-time structural gate (anything-goes
canvas). OURS: the editor's /build (se_build_site) refuses a non-UX-compliant blueprint (0 bytes).
AXIS B editor-saved-document portability: the doc the editor saves IS portable rebuildable data (.site) ->
byte-identical off-platform rebuild. Wix = no export; Webflow = frozen static, no editable model.
AXIS C editor injection-safety: a hostile field typed into the editor is escaped by construction. Wix also
sanitizes -> measured PARITY (NOT claimed as a win).
AXIS D free-form drag-drop canvas: ours is a BLOCK editor, no pixel canvas -> COMPUTE BEHIND, honest.
AXIS E component/template breadth: ours is a small fixed palette -> COMPUTE BEHIND, honest.
AXIS F live preview: both have it -> measured PARITY.
license_tier: ORIGINAL
dependencies 3 imports · 0 importers
imports: nx_sitegen_studio.nxnx_cms_exceed.nxnx_syscalls.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| none |
functions
| 23 | func xs_w(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } |
| 24 | func xs_num(v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m}; let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48 as u8;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(1,bb,k); return 0 } |
| 25 | func xs_cat(dst: *u8, off: i64, s: *u8) -> i64 { var o: i64=off; var k: i64=0; while s[k]!=(0 as u8){dst[o]=s[k];o=o+1;k=k+1} return o } called by 1: main |
| 26 | func xs_catnum(dst: *u8, off: i64, v: i64) -> i64 { var o: i64=off; let t: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m}; var k: i64=0; if m==0{t[0]=48 as u8;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{dst[o]=t[k-1-i];o=o+1;i=i+1} return o } |
| 27 | func xs_row(id: i64, ok: i64, what: *u8) -> i64 { xs_w("XSROW " as *u8); xs_num(id); xs_w(" " as *u8); if ok==1 { xs_w("PASS " as *u8) } else { xs_w("FAIL " as *u8) } xs_w(what); xs_w("\n" as *u8); return ok } |
| 28 | func xs_len(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n } |
| 29 | func xs_contains(hay: *u8, hn: i64, needle: *u8) -> i64 called by 1: main |
| 36 | func xs_eq(a: *u8, an: i64, b: *u8, bn: i64) -> i64 { if an!=bn { return 0 } var i: i64=0; while i<an { if (a[i] as i64)!=(b[i] as i64){return 0} i=i+1 } return 1 } called by 1: main |
| 39 | func xs_editor_pub(blob: *u8, out: *u8, cap: i64) -> i64 |
| 45 | func main() -> i64 |