Milestone
M3 — native bin/compile.php executes and compiles external PHP (post emit-TU; blocks #1521 M5 driver)
Problem
Probes today cover emit-TU link/run (#2442), VM driver (#2201), and unit slices (#2332, #2354, #2409, #2430). There is no acceptance issue for:
Spine-linked bin/compile.php runs as a native binary and compiles a 1-line external fixture (echo 1;) without Zend php bin/compile.php.
M3 can show emit-TU green while the production compile entrypoint still mis-links or crashes.
Scope
| Piece |
Path |
Notes |
| Probe script |
script/bootstrap-selfhost-compile-driver-execute-probe.sh |
Create — mirror bootstrap-selfhost-vm-driver-execute-probe.sh (#2201) |
| Fixture |
test/bootstrap-aot/compile_driver_execute_smoke.php or similar |
Minimal external source |
| Spine |
test/selfhost/compiler_lib_spine_smoke/main.php |
Ensure bin/compile.php path is in bundle |
| Env |
BOOTSTRAP_M3_LINK_COMPILE_DRIVER=1, BOOTSTRAP_M3_COMPILE_DRIVER_REAL_LOWERING=1, BOOTSTRAP_M3_RUNTIME_COMPILE=1 |
Same as helloworld strict |
| Allowlist |
lib/JIT.php |
#1768 batches — do not duplicate |
| CI |
script/ci-local.sh |
BOOTSTRAP_COMPILE_DRIVER_EXECUTE_GATE=0 opt-in |
Repro (blocked today)
# Requires #2442 + #2512 + #2513 + #2538 green first
./script/docker-exec.sh -- bash -lc '
source script/php-env.sh
BOOTSTRAP_M3_LINK_COMPILE_DRIVER=1 \
BOOTSTRAP_M3_COMPILE_DRIVER_REAL_LOWERING=1 \
BOOTSTRAP_M3_RUNTIME_COMPILE=1 \
BOOTSTRAP_COMPILE_DRIVER_EXECUTE_GATE=1 \
./script/bootstrap-selfhost-compile-driver-execute-probe.sh
'
# Done when: exit 0, stdout needle "compile driver ok" (exact string TBD in PR)
Sibling helloworld gate (emit-TU prerequisite):
./script/docker-exec.sh -- bash -lc '
source script/php-env.sh
BOOTSTRAP_M3_LINK_COMPILE_DRIVER=1 \
BOOTSTRAP_M3_COMPILE_DRIVER_REAL_LOWERING=1 \
BOOTSTRAP_M3_RUNTIME_COMPILE=1 \
./script/bootstrap-selfhost-helloworld-probe.sh
'
# Today: emit_path=zend partial (segfault at emit helper link)
Done when
Gate name
bootstrap-selfhost-compile-driver-execute-probe / BOOTSTRAP_COMPILE_DRIVER_EXECUTE_GATE
Dependencies
#2512 + #2513 + #2538 → #2442 → this probe → #1521 → #2075 M4 gen-2
Milestone
M3 — native
bin/compile.phpexecutes and compiles external PHP (post emit-TU; blocks #1521 M5 driver)Problem
Probes today cover emit-TU link/run (#2442), VM driver (#2201), and unit slices (#2332, #2354, #2409, #2430). There is no acceptance issue for:
M3 can show emit-TU green while the production compile entrypoint still mis-links or crashes.
Scope
script/bootstrap-selfhost-compile-driver-execute-probe.shbootstrap-selfhost-vm-driver-execute-probe.sh(#2201)test/bootstrap-aot/compile_driver_execute_smoke.phpor similartest/selfhost/compiler_lib_spine_smoke/main.phpbin/compile.phppath is in bundleBOOTSTRAP_M3_LINK_COMPILE_DRIVER=1,BOOTSTRAP_M3_COMPILE_DRIVER_REAL_LOWERING=1,BOOTSTRAP_M3_RUNTIME_COMPILE=1lib/JIT.phpscript/ci-local.shBOOTSTRAP_COMPILE_DRIVER_EXECUTE_GATE=0opt-inRepro (blocked today)
Sibling helloworld gate (emit-TU prerequisite):
Done when
php-compiler:22.04-devwhen Self-host M3: native emit-TU binaries run without startup crash #2442 + spine link greenbin/compile.php(or spine slice) compiles fixture without Zenddocs/bootstrap-selfhost.md+docs/self-host-target.mdM3 tableGate name
bootstrap-selfhost-compile-driver-execute-probe/BOOTSTRAP_COMPILE_DRIVER_EXECUTE_GATEDependencies