You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Many C++ libraries require exceptions, like libriscv and Binaryen itself. Compiling them to WASI would work (as wasi-sdk, iirc, supports WASM exceptions), but some WASM parsers (like my fork of waffle) and WASM compilers (like w2c2) do not.
For compatibility with those compilers and parsers, we would need a WASM exception lowering pass. Generically, the only sound option is lowering to GC, however MVP lowering might be required for some usages, where we would redirect exception data to either a seperate memory or an unused segment of the existing one.
As one of the few WASM analysis tools that support exceptions, Binaryen seems fit to contain some exception lowering pass, even if it would be unnecessary for most pure-Binaryen workloads.
The text was updated successfully, but these errors were encountered:
So far this hasn't come up because e.g. C++ users can recompile to switch between wasm exceptions and not, but if there are toolchains that only emit exceptions then I agree a lowering pass could make sense here. A contribution of such a pass sounds good in general, as Binaryen does have lowering passes for several other features.
Many C++ libraries require exceptions, like
libriscv
and Binaryen itself. Compiling them to WASI would work (aswasi-sdk
, iirc, supports WASM exceptions), but some WASM parsers (like my fork ofwaffle
) and WASM compilers (likew2c2
) do not.For compatibility with those compilers and parsers, we would need a WASM exception lowering pass. Generically, the only sound option is lowering to GC, however MVP lowering might be required for some usages, where we would redirect exception data to either a seperate memory or an unused segment of the existing one.
As one of the few WASM analysis tools that support exceptions, Binaryen seems fit to contain some exception lowering pass, even if it would be unnecessary for most pure-Binaryen workloads.
The text was updated successfully, but these errors were encountered: