Live data from Hacker News

Build Your Own WebAssembly Compiler

infoq.com

11–20 of 20 posts

Re: Build Your Own WebAssembly Compiler

#11

Earlier quoted context omitted.

I might be wrong, but I think that one should be able to utilize JavaScript engine within native iOS app which will use fast implementation.

JavaScriptCore and JS running in a web page using WKWebView are both running in the same app process and do not support WASM since they cannot generate code (cannot write to executable memory pages). SFSafariViewController does support WASM by executing in a separate more privileged process but interaction with the app is very limited.

WKWebView does as well because it too runs out-of-process. You can load WebAssembly into it.

Re: Build Your Own WebAssembly Compiler

#12

Are there any fast ways to run wasm on systems that forbid creating new executable pages? A high performance interpreter?

What system do you mean? iOS supports wasm AFAIK.

Not iOS but it's an interesting thought experiment: if you wanted to build a fast WASM implementation for iOS, how would yo do it?

Re: Build Your Own WebAssembly Compiler

#13
post #8

Are there any fast ways to run wasm on systems that forbid creating new executable pages? A high performance interpreter?

check this one: https://github.com/wasm3/wasm3

Nice find, only 4.5x slower is nothing to sneeze at. I doubt that WASM is optimal for interpretation and you could probably gain another 2x through a bytecode compilation target optimized for interpreting.

Re: Build Your Own WebAssembly Compiler

#15

Earlier quoted context omitted.

What system do you mean? iOS supports wasm AFAIK.

Not iOS but it's an interesting thought experiment: if you wanted to build a fast WASM implementation for iOS, how would yo do it?

If your WASM code doesn't change (isn't being downloaded at runtime from the Internet), then you could ahead-of-time compile it to native machine code (ARM/ARM64) and link it into your app.

It doesn't look like anyone's tried to do it for iOS but InNative has a compiler for Windows/Linux.

Re: Build Your Own WebAssembly Compiler

#17

Earlier quoted context omitted.

JavaScriptCore and JS running in a web page using WKWebView are both running in the same app process and do not support WASM since they cannot generate code (cannot write to executable memory pages). SFSafariViewController does support WASM by executing in a separate more privileged process but interaction with the app is very limited.

WKWebView does as well because it too runs out-of-process. You can load WebAssembly into it.

But WKWebView is equivalent to running inside a browser, with no system access.

If JSCore allowed WASM JIT-ing, one could easily port WASI to iOS for full system access, and update iOS apps by downloading new wasm versions. Of course Apple won't do that citing __Insert__App__Store__excuse__here, but everyone knows it's because they want that sweet 30% cut, and that can only be effectively enforced with a tight chokehold on updates

Re: Build Your Own WebAssembly Compiler

#20
post #8

Earlier quoted context omitted.

check this one: https://github.com/wasm3/wasm3

Nice find, only 4.5x slower is nothing to sneeze at. I doubt that WASM is optimal for interpretation and you could probably gain another 2x through a bytecode compilation target optimized for interpreting.

Actually, it's not interpreted directly. Wasm is converted to a very interpreter-friendly representation.
Post reply on HN