code wiki / _hdl_build / nx_vsbench.nx
nx_vsbench.nx
buildroot/runtime/_hdl_build/nx_vsbench.nx
about
nx_vsbench.nx -- THE HEAD-TO-HEAD VS-RULER: are we BETTER than the reference titles, or do we merely
have the same feature LIST? nx_gamebench scores capability PRESENCE (HAVE/PARTIAL/GAP) against each
title's declared vector. Presence can prove PARITY OF FEATURE LIST and nothing more -- its own honest
block already says so: titles_reference_run = 0. This organ is the instrument that makes "better"
ARITHMETIC instead of opinion.
THE CONTRACT: a head-to-head CELL is (title, axis, ours_permil, theirs_permil, evidence_tier).
tier 3 EXT = measured from a captured artifact that EXISTS ON DISK (the only tier that counts)
tier 2 DOC = a published spec/manual figure
tier 1 DECL = our own declaration (weakest -- this is what a self-graded board is made of)
The headline beat_index_permil is computed over TIER-3 CELLS ONLY. Declarations can never raise it.
With ZERO ext cells the headline is 0 and the verdict is UNGROUNDED -- which is exactly what it must
say today, because we have never run a reference title head-to-head. Everything we BELIEVE about our
structural advantages is emitted as HYPOTHESIS-NOT-CLAIM until a cell carries real evidence.
That is the cynical-instruments law applied to the one number that could flatter us most.
A SECOND QUEUE, DELIBERATELY: nx_gamebench's gap_queue ranks by titles_blocked = a PARITY objective
("what unblocks the most titles"). It structurally cannot answer "what makes us BETTER" -- which is why
genetics-breeding sits near the bottom there (only Breeders needs it) while being one of the few axes
where a generative emitter can beat a hand-authored roster outright. vsbench publishes the ADVANTAGE
view beside it. Two objectives, two queues, both honest.
license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0
dependencies 1 imports · 0 importers
imports: nx_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
| 24 | const VS_MAGIC_1094: i64 = 1094 |
| 25 | const VS_MAGIC_2173: i64 = 2173 |
| 26 | const VS_MAGIC_3907: i64 = 3907 |
| 28 | const VS_OUT: i64 = 262144 |
| 29 | const VS_TIER_EXT: i64 = 3 |
| 30 | const VS_TIER_DOC: i64 = 2 |
| 31 | const VS_TIER_DECL: i64 = 1 |
| 32 | const VS_CELLCAP: i64 = 256 |
| 33 | const VS_UNMEASURED: i64 = 0 - 1 |
functions
| 35 | func ocat(o: *u8, at: i64, s: *u8) -> i64 { var i: i64=0; var a: i64=at; while s[i]!=(0 as u8){o[a]=s[i]; a=a+1; i=i+1} return a } called by 1: main |
| 36 | func onum(o: *u8, at: i64, v: i64) -> i64 |
| 48 | func slen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8) { n=n+1 } return n } called by 1: main |
| 51 | func vs_verdict(mine: i64, theirs: i64) -> *u8 called by 1: main |
| 56 | func vs_tierstr(t: i64) -> *u8 called by 1: main |
| 62 | func vs_clsstr(c: i64) -> *u8 called by 1: main |
| 67 | func main(argc: i64, argv: *i64) -> i64 |