code wiki / _hdl_build / nx_native_build.nx
nx_native_build.nx
buildroot/runtime/_hdl_build/nx_native_build.nx
about
nx_native_build.nx -- the Nishi ecosystem handling builds NATIVELY (operator: "build the nishi
ecosystem to handle these things natively like the s class and then build to exceed"). Two tiers:
S-CLASS (IMPLEMENTED + PROVEN): a native CONTENT-ADDRESSED build cache (_build_cached.sh) keyed on
the md5 of the source + ALL transitive imports -> a cache hit skips compile+link entirely
(measured cold 0.163s -> warm 0.003s, ~54x; ~instant vs minutes on the big daemon). This is
ccache's model, sovereign + correct-invalidating.
EXCEED (MODELED, the next build, Referee-judged): FUNCTION-LEVEL caching. ccache/file-level
recompiles the WHOLE translation unit on ANY edit; function-level recompiles ONLY the changed
function -> for a 1-function edit in an N-function file, N/1 less codegen. THAT beats ccache.
Honest: the exceed is NOT yet claimed (it needs compiler per-function codegen caching + a triangulated
benchmark vs ccache) -- the Referee blocks a self-graded exceed. license_tier: ORIGINAL
dependencies 1 imports · 1 importers
imports: nx_syscalls.nx
imported by: nx_native_build_test.nx
structs
| none |
consts
| 15 | const NB_MODELED: i64 = 0 // designed, not yet built/triangulated |
| 16 | const NB_IMPLEMENTED: i64 = 1 // built + proven by execution |
functions
| 19 | func nb_cache_hit(src_hash: i64, cached_hash: i64) -> i64 { if src_hash == cached_hash { return 1 } return 0 } called by 1: main |
| 20 | func nb_status_filelevel_cache() -> i64 { return NB_IMPLEMENTED } // _build_cached.sh, proven 54x called by 1: main |
| 23 | func nb_filelevel_recompiles(n_funcs: i64, changed: i64) -> i64 { if changed > 0 { return n_funcs } return 0 } called by 1: main |
| 25 | func nb_funclevel_recompiles(n_funcs: i64, changed: i64) -> i64 { return changed } called by 1: main |
| 28 | func nb_exceed_factor(n_funcs: i64, changed: i64) -> i64 { if changed <= 0 { return 1 } return n_funcs / changed } called by 1: main |
| 30 | func nb_status_funclevel_cache() -> i64 { return NB_MODELED } // the exceed path, not yet built called by 1: main |
| 33 | func nb_exceed_proven() -> i64 { return 0 } called by 1: main |
| 34 | func nb_exceed_is_path_not_claim(status: i64, proven: i64) -> i64 called by 1: main |