Skip to content

Self-host M2: native-link 5 deferred spine inventory paths #2126

Description

@PurHur

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:

  1. Lands as a real require_once in test/selfhost/compiler_lib_spine_smoke/main.php with native link green, or
  2. 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions