Skip to content

Wasm docker upgrade - #2555

Merged
norberttech merged 3 commits into
1.xfrom
wasm-docker-upgrade
Jul 27, 2026
Merged

Wasm docker upgrade#2555
norberttech merged 3 commits into
1.xfrom
wasm-docker-upgrade

Conversation

@norberttech

Copy link
Copy Markdown
Member

Change Log


Added

  • docker - PHP 8.5 image with libpq 18 and native arrow, flow_php and pg_query extensions enabled
  • wasm - Opcache with a working shared-memory backend in the playground
  • wasm - playground recycles the PHP module automatically when memory runs high

Fixed

  • wasm - playground no longer leaks memory and stops executing PHP after ~50 runs
  • wasm - sortBy() and Floe now work in the playground
  • wasm - parquet reads no longer emit integer overflow warnings in the playground
  • flow-php/pg-query-ext - no longer frees libpg_query memory on module shutdown

Changed

  • wasm - playground runs PHP 8.5.8 built as 64-bit wasm with libpg_query 18
  • wasm - playground is ~23% faster per run
  • flow-php/arrow-ext - documentation updated for the prebuilt Docker image

Removed

Deprecated

Security

- base image to php:8.5.8-cli-trixie, libpq 18 from PGDG
- shared base stage so builder and final image share one apt source
- ship flow_php, pgsql and protobuf
- document bundled extensions and how to opt out
- add .dockerignore
- build PHP 8.5.8 (opcache now mandatory: unistd patch, JIT disabled,
HAVE_REALLOCARRAY workaround)
- read libpg_query pin from pg-query-ext Makefile so playground and
extension share one grammar version
- skip pg_query_exit() in MSHUTDOWN so embed SAPI survives engine
restarts
- add zip extension to Docker image
- fix playground examples (database read seeds its own sqlite db, uuid
casting) and create output/ dir upfront
- refresh codemirror DSL completions and rebuilt php.wasm/flow.phar
- cycle only the request per Run, not the whole PHP module
- force Opcache's mmap shared-memory backend on
- patch Zend's chunk allocator for Emscripten's whole-mapping-only
munmap
- restore the ZEND_MM_ERROR allocator diagnostics
- recycle the wasm module in the controller as a backstop
@norberttech norberttech added this to the 0.42.0 milestone Jul 27, 2026
@codecov

codecov Bot commented Jul 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.41%. Comparing base (c949b5f) to head (b57b35c).
⚠️ Report is 6 commits behind head on 1.x.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##                1.x    #2555    +/-   ##
==========================================
  Coverage     86.41%   86.41%            
- Complexity    23299    23487   +188     
==========================================
  Files          1800     1800            
  Lines         71314    71314            
==========================================
  Hits          61627    61627            
  Misses         9687     9687            
Components Coverage Δ
etl 90.43% <ø> (ø)
cli 89.40% <ø> (ø)
lib-array-dot 81.44% <ø> (ø)
lib-azure-sdk 64.44% <ø> (ø)
lib-doctrine-dbal-bulk 93.61% <ø> (ø)
lib-filesystem 86.64% <ø> (ø)
lib-types 91.58% <ø> (ø)
lib-parquet 70.23% <ø> (ø)
lib-parquet-viewer 82.26% <ø> (ø)
lib-snappy 89.82% <ø> (ø)
lib-dremel 0.00% <ø> (ø)
lib-postgresql 88.62% <ø> (ø)
lib-telemetry 86.58% <ø> (ø)
bridge-filesystem-async-aws 92.74% <ø> (ø)
bridge-filesystem-azure 90.45% <ø> (ø)
bridge-monolog-http 96.82% <ø> (ø)
bridge-monolog-telemetry 94.79% <ø> (ø)
bridge-openapi-specification 92.07% <ø> (ø)
symfony-http-foundation 78.57% <ø> (ø)
bridge-psr18-telemetry 100.00% <ø> (ø)
bridge-psr3-telemetry 98.95% <ø> (ø)
bridge-psr7-telemetry 100.00% <ø> (ø)
bridge-telemetry-otlp 90.41% <ø> (ø)
bridge-symfony-http-foundation-telemetry 92.85% <ø> (ø)
bridge-symfony-filesystem-bundle 91.85% <ø> (ø)
bridge-symfony-filesystem-cache 98.18% <ø> (ø)
bridge-symfony-postgresql-bundle 93.70% <ø> (ø)
bridge-symfony-postgresql-cache 94.41% <ø> (ø)
bridge-symfony-postgresql-messenger 98.80% <ø> (ø)
bridge-symfony-postgresql-session 93.65% <ø> (ø)
bridge-symfony-telemetry-bundle 90.10% <ø> (ø)
adapter-chartjs 84.05% <ø> (ø)
adapter-csv 89.46% <ø> (ø)
adapter-doctrine 90.75% <ø> (ø)
adapter-google-sheet 91.56% <ø> (ø)
adapter-http 75.79% <ø> (ø)
adapter-json 87.30% <ø> (ø)
adapter-logger 50.00% <ø> (ø)
adapter-parquet 88.69% <ø> (ø)
adapter-text 92.59% <ø> (ø)
adapter-xml 83.56% <ø> (ø)
adapter-avro 0.00% <ø> (ø)
adapter-excel 86.72% <ø> (ø)
adapter-postgresql 90.84% <ø> (ø)
adapter-seal 83.26% <ø> (ø)
bridge-phpunit-postgresql 75.30% <ø> (ø)
bridge-phpunit-telemetry 87.32% <ø> (ø)
bridge-phpstan-types 0.00% <ø> (ø)
bridge-postgresql-valinor 100.00% <ø> (ø)
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@norberttech
norberttech merged commit b54e092 into 1.x Jul 27, 2026
48 checks passed
@norberttech
norberttech deleted the wasm-docker-upgrade branch July 27, 2026 09:15
@github-project-automation github-project-automation Bot moved this from Todo to Done in Roadmap Jul 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant