Skip to content

Self-host M5: bootstrap-selfhost-driver-smoke — compiled gen-1 replaces Zend in wave-check #2769

@PurHur

Description

@PurHur

Milestone

M5 — bootstrap driver uses compiled bin/compile.php for emit/link steps (parent #1521, #1492)

Problem

M3/M4 native emit is green on harness (2026-05-27): make bootstrap-selfhost-helloworld, bootstrap-selfhost-cli-driver-emit, and PHP_COMPILER_M3_SOURCE=bin/compile.php ./script/bootstrap-selfhost-helloworld-compile-bin.sh all succeed with emit_path=native.

Bootstrap scripts still invoke php bin/compile.php (Zend) for routine link/emit — e.g. script/bootstrap-selfhost-link.sh, script/bootstrap-wave-check.sh, bin/compile.php inside Docker tar-copy probes.

There is no Makefile target / probe that proves the gen-1 compiled driver can run the next wave-check slice without Zend on the emit path.

Scope

Path Work
script/bootstrap-selfhost-driver-smoke.sh New — gen-0 link → gen-1 emits tiny fixture → gen-1 runs compile.php -l on probe bundle
Makefile bootstrap-selfhost-driver-smoke target
script/bootstrap-wave-check.sh Optional --with-driver-smoke step after gen-0 link
script/ci-local.sh Opt-in BOOTSTRAP_M5_DRIVER_SMOKE_GATE=1 in llvm tail
docs/bootstrap-selfhost.md Row: Bootstrap driver = compiled path ✅

Depends on stable gen-1 artifact path (build/selfhost-helloworld-compile or dedicated build/selfhost-compile-driver).

Repro (today — no driver-smoke target)

# Emit works but still via Zend orchestration:
./script/docker-exec.sh -- make bootstrap-selfhost-link
# Uses: php bin/compile.php internally

# Green native driver emit (not yet wired as default bootstrap driver):
./script/docker-exec.sh -- bash -lc '
  export PHP_COMPILER_M3_SOURCE=bin/compile.php
  ./script/bootstrap-selfhost-helloworld-compile-bin.sh
'

Done when

Labels

suggested: self-host, bootstrap, IMPORTANT

Links

#1521 · #1492 · #1416

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions