Keeping the asm in Wasm – Running high-level languages on a low-level VM
WebAssembly (Wasm) is a virtual machine whose defining characteristic is that it is low-level: Wasm is designed to abstract the hardware below, not language concepts above. This is a prerequisite for providing predictable performance and for avoiding language bias without feature creep. At the same time, it is a hard requirement that Wasm is safe and portable, which sometimes necessitates raising its abstraction level above the raw metal. Yet ultimately, the intention is that language runtimes are largely implemented on top of Wasm, in Wasm itself.
Dynamic languages pose a challenge for this model, because achieving acceptable performance for them often requires every dirty trick from the books. Not all of these techniques are easily ported to Wasm with some of its abstractions, or they incur higher cost because a Wasm engine cannot know or trust invariants in the higher-level runtime and may need to perform redundant checks to maintain its own safety. In particular, Wasm will need to supply additional mechanisms to efficiently support techniques like jit compilation or inline caches.
Tue 24 OctDisplayed time zone: Lisbon change
14:00 - 15:30 | |||
14:00 30mTalk | JITs are Nice, but Why Aren’t We Using Them? DLS Kevin Menard Shopify | ||
14:30 30mTalk | Keeping the asm in Wasm – Running high-level languages on a low-level VM DLS Andreas Rossberg Independent | ||
15:00 30mTalk | Language Runtimes for the New Cloud Era DLS Rodrigo Bruno INESC-ID - IST-ULisboa |