code wiki / _hdl_build / nx_layered_backlog.nx
nx_layered_backlog.nx
buildroot/runtime/_hdl_build/nx_layered_backlog.nx
about
nx_layered_backlog.nx -- next moves must NOT be random (operator). The work is a LAYERED stack:
L8 = hardware / machine code (the base), up to L0 = the frontier output (the goal). A desired L0
output PUSHES its required work DOWN to L8 (decompose top-down); the team then BUILDS BACK UP
L8->L0 (execute bottom-up). The next move is therefore DETERMINISTIC, never ad-hoc:
- the BUILD FRONTIER = the deepest still-incomplete layer (highest layer number with a TODO).
- an item is BUILDABLE only when every layer BELOW it (more foundational, higher number) is
complete -- you cannot skip layers (no building L3 on an unfinished L5).
- all buildable items AT the frontier have no inter-layer dependency, so they run in PARALLEL.
So "what's next" is always: the parallel batch of buildable items at the deepest unfinished layer.
RACI: the CONDUCTOR reads this to dispatch; the RESEARCHER/CRITIC feed L0 desires that push the
backlog down; BUILDER/ENGINEER execute the frontier batch. license_tier: ORIGINAL
dependencies 1 imports · 4 importers
imports: nx_syscalls.nx
imported by: nx_andelinwest.nxnx_andelinwest_crew.nxnx_layered_backlog_test.nxnx_research_pipeline.nx
structs
| none |
consts
| 15 | const BL_BASE_LAYER: i64 = 8 // machine code / hardware |
| 16 | const BL_FRONTIER_LAYER: i64 = 0 // the desired output |
functions
| 19 | func bl_layer_done(n: i64, layer: *i64, done: *i64, L: i64) -> i64 called by 1: bl_lower_complete |
| 26 | func bl_lower_complete(n: i64, layer: *i64, done: *i64, L: i64) -> i64 |
| 33 | func bl_buildable(n: i64, layer: *i64, done: *i64, i: i64) -> i64 |
| 39 | func bl_frontier(n: i64, layer: *i64, done: *i64) -> i64 |
| 47 | func bl_parallel_batch(n: i64, layer: *i64, done: *i64, out: *i64) -> i64 |