You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
script/bootstrap-resolve-compile-invoke.sh can invoke compiled build/bin-compile-aot / build/bin-compile-aot-inventory, but a fresh harness tree (build/ empty) still uses Zend for routine M0/M2 compiles until driver-smoke populates artifacts:
Tar-copy Docker (#2963) drops build/ between docker-exec invocations, so every backlog-architect run re-pays Zend on first link even when master logic supports compiled drivers.
Scope (implementation checklist)
1. script/bootstrap-resolve-compile-invoke.sh
Resolution order (document in header):
build/bin-compile-aot-inventory if present and probe requests inventory argv
build/bin-compile-aot if present
build/selfhost-native-compile-driver / helloworld compile driver when M3 link env set
Zend php bin/compile.php only when BOOTSTRAP_GEN0_ZEND_ONLY=1 or no artifact and BOOTSTRAP_ALLOW_GEN0_ZEND=1 (default 1 for empty tree)
Log line must say gen-0 compiled vs gen-0 Zend explicitly.
2. script/bootstrap-selfhost-link.sh + Makefile
Optional target dependency: bootstrap-selfhost-driver-smoke once per tree or document that first north-star5-verify / loop probe seeds drivers.
Do not require full M4 ladder for minimal link — only ensure bootstrap-ensure-inventory-argv-driver runs before spine if BOOTSTRAP_USE_INVENTORY_DRIVER=1.
Not in scope: vendor cold boot (#3022); cli_driver LLVM (#3023).
Repro
docker info >/dev/null
rm -rf build/
./script/docker-exec.sh -- bash -lc 'make bootstrap-selfhost-link'2>&1| grep bootstrap-compile-invoke
# Today: gen-0 Zend
./script/docker-exec.sh -- bash -lc ' make bootstrap-selfhost-driver-smoke >/dev/null make bootstrap-selfhost-link'2>&1| grep bootstrap-compile-invoke
# Today: may use compiled driver inside same container; host build/ still empty on next docker-exec
Done when
Second docker-execmake bootstrap-selfhost-link on host with populated build/bin-compile-aot-inventory uses compiled driver (no Zend) without re-running driver-smoke.
Fresh empty build/ still works (Zend fallback documented).
Milestone
M5 (retire Zend bootstrap) — parent #1492. Follow-up to closed #2842.
Problem
script/bootstrap-resolve-compile-invoke.shcan invoke compiledbuild/bin-compile-aot/build/bin-compile-aot-inventory, but a fresh harness tree (build/empty) still uses Zend for routine M0/M2 compiles until driver-smoke populates artifacts:Tar-copy Docker (#2963) drops
build/betweendocker-execinvocations, so every backlog-architect run re-pays Zend on first link even whenmasterlogic supports compiled drivers.Scope (implementation checklist)
1.
script/bootstrap-resolve-compile-invoke.shResolution order (document in header):
build/bin-compile-aot-inventoryif present and probe requests inventory argvbuild/bin-compile-aotif presentbuild/selfhost-native-compile-driver/ helloworld compile driver when M3 link env setphp bin/compile.phponly whenBOOTSTRAP_GEN0_ZEND_ONLY=1or no artifact andBOOTSTRAP_ALLOW_GEN0_ZEND=1(default 1 for empty tree)Log line must say
gen-0 compiledvsgen-0 Zendexplicitly.2.
script/bootstrap-selfhost-link.sh+Makefilebootstrap-selfhost-driver-smokeonce per tree or document that firstnorth-star5-verify/ loop probe seeds drivers.bootstrap-ensure-inventory-argv-driverruns before spine ifBOOTSTRAP_USE_INVENTORY_DRIVER=1.3.
script/docker-exec.shtar-fallback (#2963)build/between invocations:bin-compile-aot-inventoryselfhost-helloworld-compile(or gen-0 seed script output)SYNC_BACK_PATHSauto-detection for bootstrap targets.4.
docs/bootstrap-generations.mdNot in scope: vendor cold boot (#3022); cli_driver LLVM (#3023).
Repro
Done when
docker-execmake bootstrap-selfhost-linkon host with populatedbuild/bin-compile-aot-inventoryuses compiled driver (no Zend) without re-running driver-smoke.build/still works (Zend fallback documented).Labels
M5 bootstrap generations — compiler-adjacent script work tied to real driver artifacts, not CI-only polish.