Skip to content

fix(runtime): pin PHP 8.4 overlay with extension ABI exports - #2504

Merged
chubes4 merged 1 commit into
mainfrom
fix/php-wasm-8-4-extension-abi
Sep 11, 2026
Merged

fix(runtime): pin PHP 8.4 overlay with extension ABI exports#2504
chubes4 merged 1 commit into
mainfrom
fix/php-wasm-8-4-extension-abi

Conversation

@chubes4

@chubes4 chubes4 commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Carry a provenance-pinned PHP 8.4 runtime overlay from published @php-wasm/node-8-4 3.1.53 (Playground 8cd60ace8c3d32c8cb2b569b7471fdd98f88013e).
  • That package includes the external-extension ABI exports from WordPress/wordpress-playground#4108: convert_to_null, php_password_algo_find, php_password_algo_register, _emalloc_448, and the rest of the side-module PHP C ABI.
  • Keep the overlay package version at 3.1.46 so @php-wasm/node 3.1.46 dedupes onto it. Leave the Playground driver and the PHP 8.3 mysqli_poll overlay on 3.1.46 because WordPress/wordpress-playground#4170 is still unreleased.
  • Materialize the 8.4 overlay into CLI / plugin release artifacts and add deterministic JSPI export coverage.

Published 3.1.46 PHP 8.4 JSPI (8_4_23, git 581c7c17) does not export those symbols. 3.1.52 was published ~7h before #4108 merged. 3.1.53 JSPI (8_4_25) does export them. Asyncify 3.1.53 still does not; external extension manifests already require JSPI.

This is a narrower alternative to #2476: overlay only PHP 8.4 from the now-published 3.1.53 artifacts, instead of bumping the whole Playground stack to 3.1.52.

Test plan

  • npm run test:php-wasm-external-extension-abi
  • npm run check

AI assistance: GPT-6 Astra via OpenCode diagnosed the preceding blockers; Grok 4.6 via opencode run root-caused the extension ABI mismatch, implemented the fix, and ran the suites.

Carry published @php-wasm/node-8-4 3.1.53 JSPI artifacts, which include
the external-extension ABI exports from WordPress/wordpress-playground#4108.
Keep the overlay package version at 3.1.46 so the 3.1.46 Playground driver
dedupes onto it. Leave the PHP 8.3 mysqli_poll overlay and driver on 3.1.46
because playground#4170 is still unreleased.
@chubes4
chubes4 merged commit 22173b5 into main Sep 11, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant