Milestone
M4 — bootstrap loop proves inventory-scale gen-1→gen-2 rebuild in CI (parent #1498, #1492)
Problem
./script/bootstrap-loop-gen1-full-spine-emit.sh is green on harness (2026-05-27): emit_path=native, gen-2 prints compiler_lib_spine_smoke bundle OK.
Default make bootstrap-loop-probe only runs the compile-smoke slice (bootstrap_loop_smoke bundle). Full spine emit requires opt-in:
BOOTSTRAP_M4_GEN1_COMPILE_FULL_SPINE=1 ./script/bootstrap-loop-probe.sh
CI does not run the inventory-scale path by default — regressions in 717-unit gen-1 emit can slip until manual probe.
Scope
| Path |
Work |
script/bootstrap-loop-probe.sh |
Run bootstrap-loop-gen1-full-spine-emit.sh when BOOTSTRAP_M4_GEN1_COMPILE_FULL_SPINE=1 (already wired); promote to default or separate make bootstrap-loop-full-spine-probe |
Makefile |
bootstrap-loop-full-spine-probe target (thin wrapper) |
script/ci-local.sh |
Opt-in BOOTSTRAP_M4_FULL_SPINE_PROBE_GATE=1 in llvm tail (heavy; document RAM/time) |
docs/bootstrap-selfhost.md |
Gate row for full-spine gen-1 emit |
Repro (green today, opt-in)
./script/docker-exec.sh -- bash -lc '
source script/php-env.sh
export PHP_COMPILER_LLVM_PATH=/opt/llvm9
BOOTSTRAP_M4_LINK_COMPILE_DRIVER=1 \
BOOTSTRAP_M4_COMPILE_DRIVER_REAL_LOWERING=1 \
BOOTSTRAP_M4_RUNTIME_COMPILE=1 \
./script/bootstrap-loop-gen1-full-spine-emit.sh
'
Default slice (also green):
./script/docker-exec.sh -- make bootstrap-loop-probe
Done when
Labels
suggested: self-host, bootstrap
Links
#2664 (closed — implementation green) · #1498 · #1492
Milestone
M4 — bootstrap loop proves inventory-scale gen-1→gen-2 rebuild in CI (parent #1498, #1492)
Problem
./script/bootstrap-loop-gen1-full-spine-emit.shis green on harness (2026-05-27):emit_path=native, gen-2 printscompiler_lib_spine_smoke bundle OK.Default
make bootstrap-loop-probeonly runs the compile-smoke slice (bootstrap_loop_smokebundle). Full spine emit requires opt-in:CI does not run the inventory-scale path by default — regressions in 717-unit gen-1 emit can slip until manual probe.
Scope
script/bootstrap-loop-probe.shbootstrap-loop-gen1-full-spine-emit.shwhenBOOTSTRAP_M4_GEN1_COMPILE_FULL_SPINE=1(already wired); promote to default or separatemake bootstrap-loop-full-spine-probeMakefilebootstrap-loop-full-spine-probetarget (thin wrapper)script/ci-local.shBOOTSTRAP_M4_FULL_SPINE_PROBE_GATE=1in llvm tail (heavy; document RAM/time)docs/bootstrap-selfhost.mdRepro (green today, opt-in)
Default slice (also green):
Done when
docs/bootstrap-selfhost.mdwith copy-paste commandmake bootstrap-loop-full-spine-probe(or default-on env) runs full-spine emit in CI opt-in without manual env varsLabels
suggested: self-host, bootstrapLinks
#2664 (closed — implementation green) · #1498 · #1492