Repository navigation
Release v1.1.0: fix php-cfg-new-first-class-callable.patch blocking release-readiness #9931
Copy link
Copy link
Closed
Labels
IMPORTANTCritical pathCritical pathimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimSpec complete: repro, php-src ref, done-when — safe for workers to claimreleaseUser-facing release trackingUser-facing release trackingrelease-blockerBlocks tagged user releaseBlocks tagged user release
Description
Category
bootstrap · release-blocker · regression from #9767 / #9807
Problem
./script/docker-exec.sh -- bash -lc './script/release-readiness.sh --json' aborts during ci_install_deps because script/apply-patches.sh exits 1 on:
ERROR: failed to apply php-cfg-new-first-class-callable.patch
Hint: git -C "/compiler" apply --check -p0 "/compiler/patches/php-cfg-new-first-class-callable.patch"
php-cfg-first-class-callable.patch applies (creates FirstClassCallable.php), but the follow-on new FCC patch fails on Parser.php:1625 — likely anchor drift after upstream Parser overlays.
Until this is fixed, maintainers cannot get a reliable quick readiness signal on a clean harness checkout.
Repro (verified 2026-06-19)
./script/docker-exec.sh -- bash -lc '
composer install -n --prefer-dist --ignore-platform-reqs
./script/apply-patches.sh
'
# exit 1 — php-cfg-new-first-class-callable.patch
./script/docker-exec.sh -- bash -lc './script/release-readiness.sh --json'
# never reaches gate JSON — dies in ci_install_depsScope (this repo)
| Path | Work |
|---|---|
patches/php-cfg-new-first-class-callable.patch |
Refresh anchors or convert to overlay helper (match php-cfg-first-class-callable.patch style) |
script/apply-patches.sh |
Ensure KIND_NEW overlay applies after Parser mutations |
script/release-readiness.sh |
Must reach gate presenter without patch hard-fail |
Done when
-
./script/apply-patches.shexits 0 on cleancomposer install --ignore-platform-reqs -
./script/docker-exec.sh -- bash -lc './script/release-readiness.sh --json'runs to completion -
new Class(...)FCC still works:php bin/vm.php test/repro/new_first_class_callable.php(regression guard from Language: new Class(...) first-class callable — php-cfg VariadicPlaceholder compile failure (Zend/zend_compile.c) #9767)
Roadmap
Listed under User release roadmap (v1.1.0) → Gate checklist on #78.
Related
- Language: new Class(...) first-class callable — php-cfg VariadicPlaceholder compile failure (Zend/zend_compile.c) #9767 (closed — KIND_NEW semantics) · Release v1.1.0: make docker release-readiness installable (composer + patches) #9224 (closed — readiness bootstrap; regressed)
- 🗺️ ROADMAP: Self-host + web-capable PHP subset (living) #78 v1.1.0 user release
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
IMPORTANTCritical pathCritical pathimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimSpec complete: repro, php-src ref, done-when — safe for workers to claimreleaseUser-facing release trackingUser-facing release trackingrelease-blockerBlocks tagged user releaseBlocks tagged user release
Activity
PurHur commentedon Jun 19, 2026
claim: cursor-agent-lane-b — starting this run
Fix php-cfg-new-first-class-callable patch apply on clean install (#9931
PurHur commentedon Jun 19, 2026
Merged via #9934.
Fix: Route
php-cfg-new-first-class-callable.patchthrough an anchor-based overlay; applyphp-cfg-anonymous-class.patchbefore new-FCC soparseExpr_Newhas the expected shape after prior overlays.Verification:
rm -rf vendor/ircmaxell/php-cfg && composer install --no-scripts && ./script/apply-patches.sh→ exit 0,Applied php-cfg-new-first-class-callable.patch (overlay)./script/docker-exec.sh -- bash -lc 'composer install && ./script/apply-patches.sh'→ EXIT:0php bin/vm.php test/repro/new_first_class_callable.php→int(42)./script/docker-exec.sh -- bash -lc './script/release-readiness.sh --json'→ reaches gate JSON (noci_install_depspatch abort)