Skip to content

build(wasm): disable wasm-opt one-caller inlining - #993

Merged
johnthecat merged 1 commit into
mainfrom
build/wasm-opt-no-one-caller-inlining
Sep 25, 2026
Merged

johnthecat merged 1 commit into
mainfrom
build/wasm-opt-no-one-caller-inlining

Conversation

@johnthecat

@johnthecat johnthecat commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

The core and verifiable WASM builds run wasm-opt with -Oz --one-caller-inline-max-function-size 0.

At -O2 and above, wasm-opt inlines every function that has a single caller. That makes the raw module smaller, but the merged bodies compress worse, so what actually goes over the wire grows. With that one pass turned off, the other -Oz savings stay and the compressed output is smaller.

Bundle Before (raw / gz / br) After (raw / gz / br)
web core 2.65 MiB / 1.02 MiB / 775.4 KiB 2.66 MiB / 952.5 KiB / 719.5 KiB
testing core 2.86 MiB / 1.10 MiB / 837.1 KiB 2.88 MiB / 1.01 MiB / 779.3 KiB
truapi_verifiable 4.89 MiB / 4.65 MiB / 4.62 MiB 4.89 MiB / 4.64 MiB / 4.61 MiB

-Oz inlines every single-caller function, which shrinks the raw module
by 11% but grows the brotli output by 7%: the merged bodies compress
worse. With --one-caller-inline-max-function-size 0 the web core goes
from 775.4 KiB to 719.5 KiB brotli (1.02 MiB to 952.5 KiB gzip), raw
size unchanged.
@johnthecat
johnthecat requested a review from a team September 25, 2026 09:44
@github-actions github-actions Bot added the rust Pull requests that update rust code label Sep 25, 2026
@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

CI Status: 23 required jobs green, 19 passed and 4 skipped by path filter.

All job results
job result
android-bindings success
changes success
changeset-guard success
cli-package skipped
codegen success
e2e skipped
explorer success
headless-install success
host-android-bindings success
host-android-detekt success
host-wasm success
ios-bindings success
ios-swift success
licenses success
playground success
provider-android-bindings skipped
release-guard success
rust success
ts-client success
ts-debugger success
ts-host success
wasm-provider success
workflow-lint skipped

Signing credentials: failure as of 2026-09-25, a release may fail

Commit 523e80d2 · run log

@github-actions

Copy link
Copy Markdown
Contributor

iOS simulator preview

Built from 523e80d21, stamped with it in TrUAPICommit.

gh run download 36120132491 --name simulator-preview-523e80d21
unzip polkadot-app-*.app.zip
xcrun simctl install booted polkadot-app.app
xcrun simctl launch booted io.parity.polkadotapp.develop

Or download it in a browser, which arrives as a zip wrapping
the .app.zip, so it needs unzipping twice.

An arm64 simulator slice, so it needs an Apple Silicon Mac and does not
install on a device. Kept for 14 days, after which the link stops
resolving and a new push rebuilds it.

@johnthecat
johnthecat added this pull request to the merge queue Sep 25, 2026
Merged via the queue into main with commit 4ef4efc Sep 25, 2026
60 of 62 checks passed
@johnthecat
johnthecat deleted the build/wasm-opt-no-one-caller-inlining branch September 25, 2026 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants