code wiki / (root) / nx_linecont_gate.nx

nx_linecont_gate.nx

buildroot/runtime/nx_linecont_gate.nx

12243 B231 linesdepth 3pulls 4 transitivereach 0 importersview sourcekind gate/proof
docsdependenciesstructsconstsfunctions

about

nx_linecont_gate.nx -- LN15 FREE MULTI-LINE EXPRESSIONS: does a continuation line opening with a binary operator JOIN the expression above it? WHAT THIS MEASURES THAT THE EQUIVALENCE NET CANNOT. nx_cc_equiv_gate proves a candidate compiler BROKE NOTHING (10 rows byte-identical + self-host fixpoint). It is structurally incapable of proving a new capability WORKS: none of its ten corpus rows contains a line continuation, so it would report GREEN for a compiler in which LN15 was never implemented. A green from a subject that could never go red is decoration. This gate is the half that can go red. HOW IT IS BITE-PROVEN, AND WHY THAT IS STRONGER THAN A SOURCE MUTANT. The gate takes the compiler to test as argv[1]. Run it against the LN15 challenger and the join teeth must PASS; run the SAME binary against the pre-LN15 live compiler and those same teeth must FAIL. Two real compilers, not a synthesised mutant. NO SILENT DEFAULT COMPILER. nx_cc_equiv_gate learned this the expensive way on 2026-08-14: with no argument it fell back to a default path, found a STALE binary left by an earlier run, and returned a fully-formed verdict about the wrong artifact. A gate whose instrument is missing must REFUSE, not guess.

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_gate_verdict.nx nx_ccbuild_lib.nx nx_linecont_gate.nx

imports: nx_syscalls.nxnx_gate_verdict.nxnx_ccbuild_lib.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main sys_ignore_sigpipe sys_mmap nxa_die sys_write sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable sys_write ↻ nxa_dump_sizes sys_write ↻ lc_puts sys_write ↻ sys_exit ↻ cb_anchor_root sys_openat_rd sys_close sys_chdir sys_mmap ↻ sys_mkdir sys_mmap ↻ sys_openat_wr lc_putn lc_puts ↻ sys_mmap ↻ cb_fsize sys_openat_rd ↻ sys_lseek sys_close ↻ gv_ctr sys_mmap ↻ lc_case lc_tmp lc_path

structs

none

consts

25const LC_EXIT_USAGE: i64 = 2
26const LC_EXIT_NOTREE: i64 = 4

functions

28func lc_puts(s: *u8) -> i64
called by 3: lc_putnlc_casemain calls 1: sys_write
35func lc_putn(v: i64) -> i64
called by 2: lc_casemain calls 2: lc_putssys_mmap
51func lc_cat(dst: *u8, off: i64, s: *u8) -> i64
called by 1: lc_path
58func lc_catn(dst: *u8, off: i64, v: i64) -> i64
called by 1: lc_path calls 1: sys_mmap
74func lc_path(pre: *u8, idx: i64, suf: *u8) -> *u8
called by 2: lc_tmplc_bld calls 3: sys_mmaplc_catlc_catn
94func lc_tmp(idx: i64, suf: *u8) -> *u8
called by 1: lc_case calls 1: lc_path
98func lc_bld(idx: i64, suf: *u8) -> *u8
called by 1: lc_case calls 1: lc_path
102func lc_write_src(path: *u8, s: *u8) -> i64
116func lc_case(cc: *u8, idx: i64, src: *u8, envp: *i64, devnull: i64, out: *i64) -> i64
136func main(argc: i64, argv: *i64) -> i64