Hacker News new | ask | show | jobs
by yuri91 1407 days 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/

[2]: https://github.com/copy/v86

1 comments

I 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.

By "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.