Problem
M2 spine smoke covers 606/611 inventory files with 5 deferred paths documented in script/check-selfhost-spine-coverage-sync.php ($spineNativeLinkDeferred):
bin/vm.php
lib/AOT/Linker.php
src/llvm-env.php
src/macro_functions.php
src/yay-php8-compat.php
#2066 closed the 606→611 inventory regen; these five remain substitute/deferred and block honest bin/vm.php / linker paths in native self-host bundles.
Goal
Each deferred path either:
- Lands as a real
require_once in test/selfhost/compiler_lib_spine_smoke/main.php with native link green, or
- Stays deferred with an updated documented reason in
check-selfhost-spine-coverage-sync.php
Target: shrink $spineNativeLinkDeferred toward 0 before M5 (#1521).
Implementation hints
| Path |
Likely blocker |
Tracker |
lib/AOT/Linker.php |
LLVM FFI / native link |
#174 (toolchain), #1520 stubs |
bin/vm.php |
vm_run_smoke substitute under LLVM 9 |
#1846, #1867 VM smoke |
src/llvm-env.php |
env bootstrap in AOT |
M3 #1768 symbol batches |
src/macro_functions.php, src/yay-php8-compat.php |
parser/macro edge |
host #113 |
Probe after each batch:
BOOTSTRAP_LIB_SPINE_SMOKE=1 make bootstrap-selfhost-lib-spine-smoke
php script/check-selfhost-spine-coverage-sync.php --verbose
docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev \
make bootstrap-selfhost-lib-spine-smoke
Acceptance criteria
Links
Problem
M2 spine smoke covers 606/611 inventory files with 5 deferred paths documented in
script/check-selfhost-spine-coverage-sync.php($spineNativeLinkDeferred):bin/vm.phplib/AOT/Linker.phpsrc/llvm-env.phpsrc/macro_functions.phpsrc/yay-php8-compat.php#2066 closed the 606→611 inventory regen; these five remain substitute/deferred and block honest
bin/vm.php/ linker paths in native self-host bundles.Goal
Each deferred path either:
require_onceintest/selfhost/compiler_lib_spine_smoke/main.phpwith native link green, orcheck-selfhost-spine-coverage-sync.phpTarget: shrink
$spineNativeLinkDeferredtoward 0 before M5 (#1521).Implementation hints
lib/AOT/Linker.phpbin/vm.phpsrc/llvm-env.phpsrc/macro_functions.php,src/yay-php8-compat.phpProbe after each batch:
BOOTSTRAP_LIB_SPINE_SMOKE=1 make bootstrap-selfhost-lib-spine-smoke php script/check-selfhost-spine-coverage-sync.php --verbose docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev \ make bootstrap-selfhost-lib-spine-smokeAcceptance criteria
require_oncewith native link green on harnesscheck-selfhost-spine-coverage-sync.phpdeferred table updatedLinks