Skip to content

feat: hard-tier PECL extensions on aarch64 (phase 2 C2b)#49

Merged
phramz merged 3 commits into
mainfrom
phase2-aarch64-c2b
Apr 22, 2026
Merged

feat: hard-tier PECL extensions on aarch64 (phase 2 C2b)#49
phramz merged 3 commits into
mainfrom
phase2-aarch64-c2b

Conversation

@phramz

@phramz phramz commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Closes the top-50 PECL × arm64 matrix. Direct mirror of B2 on aarch64.

  • Extends abi_matrix.arch on imagick, mongodb, swoole, grpc to include aarch64.
  • Adds 5 multi-ext-hard4-arm64-<NN> harness fixtures (one per PHP version; -81 omits swoole).

Pure data slice. No Go/builder/workflow changes. Inherits all scaffolding from C1 + C2a.

Carry-over exclude (arch-independent)

Extension Exclude Reason
swoole { php: "8.1" } PECL metadata: <min>8.2.0</min>

4 × 5 − 1 = 19 new arm64 ext bundles.

Known risks (playbook from B2 / C2a)

  1. imagick IM6 on arm64 — Ubuntu noble ships libmagickwand-6.q16-7t64/libmagickcore-6.q16-7t64 for both archs. Expected clean; if not, exclude: { arch: "aarch64" } + issue.
  2. grpc bundled-source on arm64 — grpc upstream has first-class arm64 since ≥1.50. If PECL bundled-source fails, fall back to system libgrpc-dev/libprotobuf-dev.
  3. swoole configure on arm64 — default configure only; swoole upstream supports arm64 natively.
  4. mongodb OpenSSL on arm64libssl3t64/libsasl2-2 arch-uniform.

Wall-clock dominated by 5 × arm64 grpc + 5 × x86_64 grpc spec-hash-refresh ≈ 45 min.

Test plan

  • CI: planner emits 19 new arm64 ext cells + 19 x86_64 refresh cells.
  • CI: arm64 ext builds succeed.
  • CI: lockfile auto-commits 19 new entries.
  • CI: 65 harness fixtures (60 existing + 5 new) pass with no new allowlist entries.
  • CI: `make check` passes.

Spec: `docs/superpowers/specs/2026-04-21-phase2-aarch64-c2b-design.md`

@phramz
phramz merged commit d3ce025 into main Apr 22, 2026
230 checks passed
@phramz
phramz deleted the phase2-aarch64-c2b branch April 22, 2026 07:59
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