It seems like a bit of a shame that wasm got support for exceptions but doesn't support effects which are a generalisation of the same concept.
https://wasmfx.dev/
I'm guessing this may be because exceptions exclusively require stack unwinding where as effects require full stack switching.
Thanks for that link! There goes my Saturday morning.
After a bunch of middle clicking I landed here [0]. So if I understand correctly, the current stack switching proposal depended on exception handling to be implemented first for resume.throw, so that bit was blocked until now.
But it's also further along than you might assume [1], i.e. you can already invoke Wasmtime with `-W stack-switching` and hit the boundaries where the experimental implementation breaks.
Sadly though, like many ambitious Wasm things that don't have revenue directly attached to them, it now seems partly a case of finding someone willing to sponsor or finish the remaining work [2].
I also found the list of open stack-switching issues[3] useful.
WASM will be ready when GNU Hurd succeeds in running the desktop linux of the year. Already 10 years since WASM ... HTML, CSS and JavaScript all had a huge influence. WAS simply has not done so yet.
WASM is already running in production at a whole bunch of financial services orgs and government infra.
The thing is, it's not running anywhere near HTML, CSS or JavaScript. It's running serverside, mostly on Wasmtime - which, as it happens, is what this post is all about.
I'm guessing this may be because exceptions exclusively require stack unwinding where as effects require full stack switching.
Seems like there is still progress on that though which gives hope https://github.com/WebAssembly/stack-switching/blob/main/pro...
After a bunch of middle clicking I landed here [0]. So if I understand correctly, the current stack switching proposal depended on exception handling to be implemented first for resume.throw, so that bit was blocked until now.
But it's also further along than you might assume [1], i.e. you can already invoke Wasmtime with `-W stack-switching` and hit the boundaries where the experimental implementation breaks.
Sadly though, like many ambitious Wasm things that don't have revenue directly attached to them, it now seems partly a case of finding someone willing to sponsor or finish the remaining work [2].
I also found the list of open stack-switching issues[3] useful.
(also, minor nit - Wasm != Wasmtime)
[0]: https://github.com/bytecodealliance/wasmtime/issues/10248
[1]: https://github.com/bytecodealliance/wasmtime/issues/12941
[2]: https://github.com/bytecodealliance/wasmtime/issues/12941#is...
[3]: https://github.com/bytecodealliance/wasmtime/issues?q=state%...
Oh I already know that about WASM now. All is in progress ... perpetual progress.
I'll look again in the next decade.
WASM is already running in production at a whole bunch of financial services orgs and government infra.
The thing is, it's not running anywhere near HTML, CSS or JavaScript. It's running serverside, mostly on Wasmtime - which, as it happens, is what this post is all about.