Skip to content

Self-host M5: PHP_COMPILER_LIB_SPINE_BUNDLE compile path — no Zend gen-0 fallback in CI #8716

Description

@PurHur

Category

bootstrap | php-in-php

Problem

script/bootstrap-selfhost-lib-spine-smoke-link.sh still falls back to host Zend bin/compile.php when the native argv compile driver is blocked (#2967). M5 cold-boot requires BOOTSTRAP_NO_ZEND_FALLBACK=1 to succeed for spine link in north-star5-verify --strict without manual env hacks.

Zend gen-0 fallback hides missing native lowering on the compile spine and blocks honest self-host iteration (#1492).

php-src reference

N/A (bootstrap). Target: native binary from this repo's lib/ + ext/ compiles PHP without Zend in the loop.

Repro (failure today)

composer install
BOOTSTRAP_NO_ZEND_FALLBACK=1 make bootstrap-selfhost-lib-spine-smoke
# Today: may invoke host php bin/compile.php when native driver blocked

# Inspect fallback wiring:
grep -n 'compile.php\|ZEND\|zend' script/bootstrap-selfhost-lib-spine-smoke-link.sh script/bootstrap-resolve-compile-invoke.sh

With vendor/ absent + stale gen-0 sidecar, fallback masks cold-boot regressions (#8712).

Scope (this repo)

Piece Path
Link script script/bootstrap-selfhost-lib-spine-smoke-link.sh
Compile invoke script/bootstrap-resolve-compile-invoke.sh, script/bootstrap-gen0-install-prelinked-driver.sh
Native driver lib/JIT.php M3/M4 argv gates, bin/compile.php spine entry
Prelinked blobs prelinked/bootstrap-gen0/ — must be valid when fallback removed
CI script/north-star5-verify.sh step alignment (#3053)

PHP-in-PHP: native compile path through PHP lowering only; no new C runtime.

Done when

  • BOOTSTRAP_NO_ZEND_FALLBACK=1 make bootstrap-selfhost-lib-spine-smoke exits 0 without invoking host php bin/compile.php
  • make north-star5-verify-fast green after change
  • north-star5-verify --strict spine link step passes without Zend (Self-host M5: gen-0 bootstrap-selfhost-link without Zend bin/compile.php (compiled driver only) #3053)
  • Document BOOTSTRAP_NO_ZEND_FALLBACK=1 as required for M5 PRs touching spine link
  • test/unit/CiScriptsTest.php or bootstrap script test asserts no Zend fallback when flag set

Verify

BOOTSTRAP_NO_ZEND_FALLBACK=1 make bootstrap-selfhost-lib-spine-smoke
make north-star5-verify-fast
# Pre-merge bootstrap batch only:
# make north-star5-verify ARGS=--strict

Links

#1492 · ROADMAP #78 · #2967 · #3053 · #8712 (vendor-absent wave-check) · #8708 (native Compiler::compile)

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

    implementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimphase-0:FoundationPhase 0 – foundation & DevEx

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions