Milestone
M5 — bootstrap driver uses compiled bin/compile.php for emit/link steps (parent #1521, #1492)
Problem
M3/M4 native emit is green on harness (2026-05-27): make bootstrap-selfhost-helloworld, bootstrap-selfhost-cli-driver-emit, and PHP_COMPILER_M3_SOURCE=bin/compile.php ./script/bootstrap-selfhost-helloworld-compile-bin.sh all succeed with emit_path=native.
Bootstrap scripts still invoke php bin/compile.php (Zend) for routine link/emit — e.g. script/bootstrap-selfhost-link.sh, script/bootstrap-wave-check.sh, bin/compile.php inside Docker tar-copy probes.
There is no Makefile target / probe that proves the gen-1 compiled driver can run the next wave-check slice without Zend on the emit path.
Scope
| Path |
Work |
script/bootstrap-selfhost-driver-smoke.sh |
New — gen-0 link → gen-1 emits tiny fixture → gen-1 runs compile.php -l on probe bundle |
Makefile |
bootstrap-selfhost-driver-smoke target |
script/bootstrap-wave-check.sh |
Optional --with-driver-smoke step after gen-0 link |
script/ci-local.sh |
Opt-in BOOTSTRAP_M5_DRIVER_SMOKE_GATE=1 in llvm tail |
docs/bootstrap-selfhost.md |
Row: Bootstrap driver = compiled path ✅ |
Depends on stable gen-1 artifact path (build/selfhost-helloworld-compile or dedicated build/selfhost-compile-driver).
Repro (today — no driver-smoke target)
# Emit works but still via Zend orchestration:
./script/docker-exec.sh -- make bootstrap-selfhost-link
# Uses: php bin/compile.php internally
# Green native driver emit (not yet wired as default bootstrap driver):
./script/docker-exec.sh -- bash -lc '
export PHP_COMPILER_M3_SOURCE=bin/compile.php
./script/bootstrap-selfhost-helloworld-compile-bin.sh
'
Done when
Labels
suggested: self-host, bootstrap, IMPORTANT
Links
#1521 · #1492 · #1416
Milestone
M5 — bootstrap driver uses compiled
bin/compile.phpfor emit/link steps (parent #1521, #1492)Problem
M3/M4 native emit is green on harness (2026-05-27):
make bootstrap-selfhost-helloworld,bootstrap-selfhost-cli-driver-emit, andPHP_COMPILER_M3_SOURCE=bin/compile.php ./script/bootstrap-selfhost-helloworld-compile-bin.shall succeed withemit_path=native.Bootstrap scripts still invoke
php bin/compile.php(Zend) for routine link/emit — e.g.script/bootstrap-selfhost-link.sh,script/bootstrap-wave-check.sh,bin/compile.phpinside Docker tar-copy probes.There is no Makefile target / probe that proves the gen-1 compiled driver can run the next wave-check slice without Zend on the emit path.
Scope
script/bootstrap-selfhost-driver-smoke.shcompile.php -lon probe bundleMakefilebootstrap-selfhost-driver-smoketargetscript/bootstrap-wave-check.sh--with-driver-smokestep after gen-0 linkscript/ci-local.shBOOTSTRAP_M5_DRIVER_SMOKE_GATE=1in llvm taildocs/bootstrap-selfhost.mdDepends on stable gen-1 artifact path (
build/selfhost-helloworld-compileor dedicatedbuild/selfhost-compile-driver).Repro (today — no driver-smoke target)
Done when
make bootstrap-selfhost-driver-smokeexit 0 — gen-1 binary compiles a tinytest/selfhost/*fixture withoutphp bin/compile.phpon the emit stepdocs/bootstrap-selfhost.mddocuments the gate commandLabels
suggested: self-host, bootstrap, IMPORTANTLinks
#1521 · #1492 · #1416