Wasm/k: Delimited Continuations for WebAssembly

Nov 15, 2020·
Donald Pinckney
Donald Pinckney
,
Arjun Guha
,
Yuriy Brun
· 1 min read
Type
Publication
DLS 2020

WebAssembly (Wasm) is a rapidly growing compilation target for the web, but lacks support for user-level or multiplexed threads, as seen in Go. Currently such threads must be simulated, leading to a significant performance penalty for Go code compiled to Wasm. We resolve this by adding support for delimited continuations (a form of stack capture operations) to WebAssembly, which allows for efficient expression of user-level threads, as well as many other interesting computational effects. This work was presented at DLS 2020.