About

Synopsis

A forum for developers of and researchers of low-level languages to exchange thoughts, projects, updates, and questions.

Schedule

Biweekly, alternating between Monday at 12pm ET and Friday at 4pm ET.

See Dates
Subscribe

Want to Present?

E-mail the director with your topic!

Next Presentation

Monday, November 9th at 12pm ET

Interface Types Introduction and Update

Luke Wagner

The presentation will recap the motivation and requirements for the Interface Types proposal as well as the design space considered. The presentation will then walk through some details of the recently updated proposal and end with a description of the next planned steps.

History

Wasm/k: Delimited Continuations for WebAssembly

Donald Pinckney—University of Massachusetts, Amherst

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. Current compilers are forced to produce poor WebAssembly code in order to implement certain high-level language features such as green threads because WebAssembly disallows stack manipulation. We address this shortcoming by introducing Wasm/k, a small extension to WebAssembly that adds support for delimited continuations while retaining the speed and safety of WebAssembly. We have implemented Wasm/k in the Wasmtime runtime, and we provide case studies of how to implement various high-level language features (including green threads) using Wasm/k.

Decomposing C++ Modules for Fast Load Times

Thomas Lively—Google

Even with streaming baseline compilers, downloading and compiling large WebAssembly modules can significantly lengthen application startup time on the Web. One potential solution is to automatically split modules so that only the code needed at startup is initially downloaded, compiled, and run while the rest of the code is downloaded and compiled in the background. This talk will describe how module splitting could be implemented and how it might fit into Emscripten and other WebAssembly toolchains, as well as discuss open questions on how best to decompose modules.