as a followup to the W3C WASI sync today, I posted an issue to begin discussing one of the issues Lee and I mentioned
https://github.com/WebAssembly/WASI/issues/262
really excited to see what conversation comes of this
I think a lot of this will be addressed by the linking proposal that @Luke Wagner is working on
Maybe that's grown in scope? I don't think it did when we chatted
is there a tl;dr on that?
Luke mentioned in the WASI call that he's currently working on an explainer, which I hope should answer this
I'm not sure it will address all of what you mention in the issue, but I do think it should be a good part of a solution
Yes, I think there are a couple of separable pieces here to make the end-to-end use cases Benjamin is talking about work. @Dan Gohman also has a doc on a "proxy" feature in wasmtime that i think addresses a different facet of this problem. Lastly, there are some issues the have to do with apps which have multiple stores where stores can independently die with the other stores living on.
One other thing to get on the radar is how host/native modules are handled. We've played around with decoupling this from the engine so the host side code doesn't have to live in the codebases of wasmtime, v8 etc... We recently were experimenting with an example of a framebuffer api. On Linux we had a host module where this was implemented with SDL, loaded a .so and could be used by v8, wasmtime and our interpreter without modification. Then when we moved it to windows, we implemented the same API as dll. I thought it was quite nice that to add and use that new API, across different platforms and 3 engines required no changes to the engines themselves.
In that little video thats doom running in wasmtime, but using a handle to a framebuffer api to draw to the screen. The backend of that is implemented in a host side lib and calls to it are dynamically routed based on the handle. So no changes required to the engine, and no changes required to the wasm binary when changing the display backend. Would be keen to discuss at some point how folks think about handling this host side code.
Last updated: Dec 23 2024 at 12:05 UTC