3 ms·
This is a nice overview on how to achieve just-in-time compilation in Wasm, and the demo is pretty cool. Good work! We use similar techniques to power Webvm[1]
by yuri91 4y ago
This is a nice overview on how to achieve just-in-time compilation in Wasm, and the demo is pretty cool. Good work!
We use similar techniques to power Webvm[1], an X86 Virtual Machine that runs linux programs in the browser.
A proper Wasm JIT API in JavaScript would be even better of course, but as the article says, cool things are already possible right now.
I expect to see more projects doing Wasm just-in-time compilation in the future (I believe that V86[2] also already does it)
[1]: https://webvm.io/ https://webvm.io/
[2]: https://github.com/copy/v86 https://github.com/copy/v86
- nerpderp82 4y agoI haven't read the article yet, but you can pass the emitted Wasm back to the top level JS and have it instantiate a new module, potentially using the same heap. A Wasm trampoline-continuation. I assume this is what v86 does.
- yuri91 4y agoBy "Wasm JIT API in JavaScript" I mean a native way for the browser to support the JIT use-case. Generating entire modules works, but it has a number of issues. For example, you need to carefully decide how big your modules are going to be: - Too small, and you end up compiling many many modules, which eventually crashes the browser if you don't dispose of the old ones - Too big (many functions batched together), and you have too much latency before your code is available to run Being able to compile a single function to add to an existing module (or something like that) would help a lot.