Skip to content

Self-host M5: native vendor compile — surface PHPTypes Type.php line in bootstrap-vendor-objects FAIL lines #3049

Description

@PurHur

Category

bootstrap

Milestone

M5 (vendor prelink triage) — parent #1492. Child of #3037 (Runtime stderr); focused on vendor script UX.

Problem

php script/bootstrap-vendor-objects.php --compile prints opaque failures:

FAIL ircmaxell/php-types: compile exit 1 — helloworld_compile_smoke: native emit failed at phase=parseAndCompile
  tail:
    helloworld_compile_smoke: parseAndCompile returned null (parser/CFG spine)

Zend on the same bundle immediately shows the actionable line:

parseAndCompile failure: … Unknown type declaration found: PHPTypes\Type
RuntimeException in vendor/ircmaxell/php-types/lib/PHPTypes/Type.php:419

Implementers must run a second Zend -l per package (#3035–#3041) — slows M5 vendor wave.

php-src reference

N/A (bootstrap tooling). Parity target: Zend CLI surfaces file:line + exception message on compile failure.

Repro (failure today)

./script/docker-exec.sh --sync-back build/selfhost-native-compile-driver -- bash -lc '
  make bootstrap-selfhost-driver-smoke
  PHP_COMPILER_VENDOR_PRELINK=1 php script/bootstrap-vendor-objects.php --compile
' 2>&1 | head -25

Expected after fix: first FAIL line includes PHPTypes/Type.php:419 (or equivalent) without manual -l.

# Secondary check: log scrape
grep -E 'Type\.php:|parseAndCompile failure:' build/bootstrap-vendor/*.log | head -3

Scope

Path Work
script/bootstrap-vendor-objects.php On FAIL, grep build/bootstrap-vendor/*.log for parseAndCompile failure: / \.php:[0-9]+ and echo in FAIL line
test/selfhost/compiler_helloworld_smoke/helloworld_compile_smoke.php Propagate last Runtime/PHPTypes message before null return (#3037)
lib/Runtime.php Ensure peekLastParseFailure() text copied to stderr used by smoke script

Done when

  • Each FAIL line includes the Zend-equivalent Unknown type declaration found: … and path/to/File.php:line without manual -l
  • Logs under build/bootstrap-vendor/ remain for full stack traces
  • Re-run unblocks triage for #3028 / #3030 / #3031 in one pass
  • php script/bootstrap-inventory.php --check still green (no regression)

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

    MOST IMPORTANTThis are the most important targetsarea:compilerCompiler / CFG / JITimplementation-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