Wasm/k: Delimited Continuations for WebAssembly
Wed 18 Nov 2020 14:00 - 14:20 at SPLASH-III - 3 Chair(s): Patrick Cousot, Michael Homer
WebAssembly is designed to be an alternative to JavaScript that is a safe, portable, and efficient compilation target for a variety of languages. The performance of high-level languages depends not only on the underlying performance of WebAssembly, but also on the quality of the generated WebAssembly code. In this paper, we identify several features of high-level languages that current approaches can only compile to WebAssembly by generating complex and inefficient code. We argue that these problems could be addressed if WebAssembly natively supported first-class continuations. We then present Wasm/k, which extends WebAssembly with delimited continuations. Wasm/k introduces no new value types, and thus does not require significant changes to the WebAssembly type system (validation). Wasm/k is safe, even in the presence of foreign function calls (e.g., to and from JavaScript). Finally, Wasm/k is amenable to efficient implementation: we implement Wasm/k as a local change to Wasmtime, an existing WebAssembly JIT. We evaluate Wasm/k by implementing C/k, which adds delimited continuations to C/C++. C/k uses Emscripten and its implementation serves as a case study on how to use Wasm/k in a compiler that targets WebAssembly. We present several case studies using C/k, and show that on implementing green threads, it can outperform the state-of-the-art approach Asyncify with an 18% improvement in performance and a 30% improvement in code size.
Wed 18 Nov Times are displayed in time zone: Central Time (US & Canada) change
13:00 - 14:20: 3SAS / DLS 2020 at SPLASH-III +12h Chair(s): Patrick CousotNew York University, Michael HomerVictoria University of Wellington | |||
13:00 - 13:20 Research paper | Exact and Linear-Time Gas-Cost Analysis SAS Pre-print | ||
13:20 - 13:40 Talk | Python 3 Types in the Wild: A Tale of Two Type Systems DLS 2020 Ingkarat Rak-amnouykitRensselaer Polytechnic Institute, Daniel McCrevanRensselaer Polytechnic Institute, Ana MilanovaRensselaer Polytechnic Institute, Martin HirzelIBM Research, Julian DolbyIBM Research, USA Link to publication DOI Pre-print Media Attached | ||
13:40 - 14:00 Research paper | On Multi-Language Abstraction: Towards a Static Analysis of Multi-Language Programs SAS Samuele BuroUniversità degli Studi di Verona, Roy CroleUniversity of Leicester, Isabella MastroeniUniversity of Verona, Italy File Attached | ||
14:00 - 14:20 Talk | Wasm/k: Delimited Continuations for WebAssembly DLS 2020 Donald PinckneyNortheastern University, Arjun GuhaUniversity of Massachusetts at Amherst, Yuriy BrunUniversity of Massachusetts Amherst Link to publication DOI Pre-print Media Attached |