Category
bootstrap
Milestone
M3 (emit) / M5 (honest Compiler CFG) — parent #1492. Related #3024, cleanup #3032.
Problem (updated 2026-05-30)
BOOTSTRAP_M3_USE_INVENTORY_EMIT_DRIVER=1 + strict probes:
| Probe |
Status |
Log line |
| HelloWorld |
✅ |
inventory compile_driver (no emit-helper TU, #2843) |
| Compiler unit strict |
✅ |
inventory compile_driver (no emit-helper TU, #2879) |
| Compile smoke strict |
✅ |
same |
| Runtime smoke strict |
✅ |
same |
| JIT unit strict |
❌ |
still jit_unit_probe_m3_emit_native_entry.php (#3026) |
Remaining: wire JIT unit probe to inventory compile_driver.php, then delete dead *_m3_emit_native_entry.php files (#3032).
php-src reference
N/A (self-host bootstrap). Compiler spine must compile via native AOT without Zend — see docs/bootstrap-selfhost.md.
Repro (remaining failure)
./script/docker-exec.sh -- bash -lc '
export BOOTSTRAP_M3_USE_INVENTORY_EMIT_DRIVER=1
./script/bootstrap-selfhost-jit-unit-probe.sh 2>&1 | tail -30
'
Expected: log contains inventory compile_driver (no jit_unit_probe_m3_emit_native_entry.php).
Actual: falls back to legacy emit-helper TU path; probe may pass via stub bridge but M5 honesty gate stays yellow.
Strict inventory check:
./script/docker-exec.sh -- bash -lc '
export BOOTSTRAP_M3_USE_INVENTORY_EMIT_DRIVER=1
make bootstrap-selfhost-jit-unit-probe 2>&1 | grep -E "inventory compile_driver|m3_emit_native_entry"
'
Scope (this repo)
| Area |
Path |
Action |
| JIT inventory driver |
lib/JIT.php |
Route jit-unit probe through same inventory emit driver as helloworld |
| Probe script |
script/bootstrap-selfhost-jit-unit-probe.sh |
Stop requiring jit_unit_probe_m3_emit_native_entry.php |
| Inventory fixture |
test/selfhost/jit_unit_probe/compile_driver.php |
Emit driver entry for unit probe |
| Cleanup |
#3032 |
Delete *_m3_emit_native_entry.php after all probes green |
Done (verify, do not regress)
lib/JIT.php inventory driver for helloworld + unit + smoke probes
- Probe scripts mirror
bootstrap-selfhost-helloworld-probe.sh
Done when
Verification
./script/docker-exec.sh -- bash -lc '
export BOOTSTRAP_M3_USE_INVENTORY_EMIT_DRIVER=1
make bootstrap-selfhost-jit-unit-probe
make bootstrap-loop-probe
'
Dependencies
Links
Category
bootstrapMilestone
M3 (emit) / M5 (honest Compiler CFG) — parent #1492. Related #3024, cleanup #3032.
Problem (updated 2026-05-30)
BOOTSTRAP_M3_USE_INVENTORY_EMIT_DRIVER=1+ strict probes:inventory compile_driver (no emit-helper TU, #2843)inventory compile_driver (no emit-helper TU, #2879)jit_unit_probe_m3_emit_native_entry.php(#3026)Remaining: wire JIT unit probe to inventory
compile_driver.php, then delete dead*_m3_emit_native_entry.phpfiles (#3032).php-src reference
N/A (self-host bootstrap). Compiler spine must compile via native AOT without Zend — see
docs/bootstrap-selfhost.md.Repro (remaining failure)
Expected: log contains
inventory compile_driver(nojit_unit_probe_m3_emit_native_entry.php).Actual: falls back to legacy emit-helper TU path; probe may pass via stub bridge but M5 honesty gate stays yellow.
Strict inventory check:
Scope (this repo)
lib/JIT.phpscript/bootstrap-selfhost-jit-unit-probe.shjit_unit_probe_m3_emit_native_entry.phptest/selfhost/jit_unit_probe/compile_driver.php*_m3_emit_native_entry.phpafter all probes greenDone (verify, do not regress)
lib/JIT.phpinventory driver for helloworld + unit + smoke probesbootstrap-selfhost-helloworld-probe.shDone when
compile_driver.php(no emit-helper TU)make bootstrap-selfhost-jit-unit-probegreen withBOOTSTRAP_M3_USE_INVENTORY_EMIT_DRIVER=1*_m3_emit_native_entry.phpreferences in probe scripts./script/ci-local.shbootstrap M3 gates unchanged or improvedVerification
Dependencies
Links