Skip to content

Conversation

TerrorJack
Copy link
Contributor

As reported and confirmed from a ghc wasm backend user (@maralorn), tail-call opcodes may cause ios webview crashes for some large haskell wasm apps, and removing tail-call opcodes fixes the crash. Given webkit only supported tail-call since 18.2, it's better to disable tail-call flag for the time being and revisit this in the future.

This patch also removes --no-turbo-fast-api-calls from the dyld script flags, since it was used to workaround
nodejs/node#46777 when wasm module uses tail calls. It's not needed when tail calls are not used and it has a performance penalty.

As reported and confirmed from a ghc wasm backend user, tail-call
opcodes may cause ios webview crashes for some large haskell wasm
apps, and removing tail-call opcodes fixes the crash. Given webkit
only supported tail-call since 18.2, it's better to disable tail-call
flag for the time being and revisit this in the future.

This patch also removes --no-turbo-fast-api-calls from the dyld script
flags, since it was used to workaround
nodejs/node#46777 when wasm module uses tail
calls. It's not needed when tail calls are not used and it has a
performance penalty.
@hamishmack hamishmack merged commit ce9ac7a into input-output-hk:master Sep 24, 2025
26 of 30 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.

2 participants