Breaking WebAssembly Runtime Limitations: Asyncifying ZeroPerl
2025-02-11

Frustrated by the lack of exnref support in most WebAssembly runtimes, rendering ZeroPerl unusable, the author decided to fix the problem instead of complaining. By leveraging Binaryen's Asyncify feature, a replacement for setjmp was implemented from scratch, bypassing libsetjmp's compatibility issues. After removing the official library, writing assembly code, and optimizing with wasm-opt, ZeroPerl now runs successfully in Wasmer, Wasmtime, and other WebAssembly runtimes. This breakthrough delivers a fully sandboxed and self-contained Perl WebAssembly module.
Development