Skip to content

CI: BOOTSTRAP_M4_LOOP_PROBE opt-in in ci-local after #1498 probe green #2058

Description

@PurHur

Problem

#1498 defines M4 — native binary from revision N compiles sources and produces a working N+1 binary without Zend php bin/compile.php for that step. script/bootstrap-loop-probe.sh exists (dry-run opt-in) but there is no ci-local hook — regressions in the bootstrap loop are invisible until manual BOOTSTRAP_LOOP_PROBE=1 runs.

M3 strict emit (#1937) and M2 spine (#2050) must stay green before M4 promotion.

Goal

When script/bootstrap-loop-probe.sh passes on php-compiler:22.04-dev:

  1. Add BOOTSTRAP_M4_LOOP_PROBE="${BOOTSTRAP_M4_LOOP_PROBE:-0}" to script/ci-defaults.env
  2. ci_run_bootstrap_m4_loop_probe() in script/ci-common.sh — llvm tail only; skip when LLVM missing (exit 0)
  3. Wire into script/ci-local.sh after M3 HelloWorld strict probes
  4. Follow-up issue: default-on flip (mirror CI: Default BOOTSTRAP_M3_HELLOWORLD_STRICT_GATE=1 in ci-local after #1493 #1866 pattern)

Implementation hints

Piece Path Notes
Probe script/bootstrap-loop-probe.sh --dry-run today; strict mode when #1937 lands
Fixture test/selfhost/bootstrap_loop_smoke/ From #1498
Env BOOTSTRAP_LOOP_PROBE_GATE vs BOOTSTRAP_M4_LOOP_PROBE Align naming with docs/bootstrap-m5-fast-path.md
Doctor phpc doctor --selfhost (#2053) List M4 probe env

Acceptance criteria

BOOTSTRAP_M4_LOOP_PROBE=1 ./script/ci-local.sh --filter BootstrapLoop
docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev \
  BOOTSTRAP_M4_LOOP_PROBE=1 ./script/ci-local.sh --filter BootstrapLoop

No GitHub Actions required.

Dependencies

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