Skip to content

Self-host M4: default-on full-spine gen-1 emit in bootstrap-loop-probe / ci-local #2770

@PurHur

Description

@PurHur

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

  • Documented gate in docs/bootstrap-selfhost.md with copy-paste command
  • make bootstrap-loop-full-spine-probe (or default-on env) runs full-spine emit in CI opt-in without manual env vars
  • Probe failure prints first compile error file/symbol (not silent skip)

Labels

suggested: self-host, bootstrap

Links

#2664 (closed — implementation green) · #1498 · #1492

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions