Skip to content

Milestone: Self-host — compile php-compiler with php-compiler (bootstrap) #212

Description

@PurHur

Category

bootstrap

Problem

The compiler runs on Zend PHP today; compile times dominate JIT benchmarks. M5 self-host (#1492) requires a native binary from this repo's lib/ + ext/ that compiles PHP—including the next compiler revision—without Zend in the loop.

This milestone tracks phased bootstrap work; individual gaps are filed as implementation-ready language/stdlib/bootstrap issues.

php-src reference

N/A (product milestone). Behavior targets remain Zend/php-src for language + stdlib parity on the bootstrap subset.

Repro / gates (today)

composer install && ./script/apply-patches.sh
php script/bootstrap-inventory.php --check
./script/docker-exec.sh -- bash -lc 'make bootstrap-selfhost-helloworld'
./script/docker-exec.sh -- bash -lc 'make bootstrap-selfhost-link'
./script/bootstrap-loop-probe.sh --dry-run

Inventory SSOT: docs/bootstrap-inventory.md, docs/bootstrap-selfhost.md, docs/self-host-target.md.

Scope (phased)

Phase Goal Tracking
A — Inventory Enumerate bin/vm.php path; CFG gap warnings #765, #2254, script/bootstrap-inventory.php
B — Subset compile compile.php -l on bootstrap file list #1768, #2442
C — Native run AOT binary runs hello + compiler slice #2075, #2522

Non-goals (initial): full vendor/ self-host; LLVM pipeline self-hosted without plan.

Done when

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 / JITarea:toolingTooling / CI / docsenhancementNew feature or requestimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimphase-3:aotPhase 3 – AOT deployment

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions