Skip to content

WebAssembly/stack-switching

Repository files navigation

Stack-Switching Proposal for WebAssembly

This repository is a clone of WebAssembly/spec. It is meant for discussion, prototype specification, and implementation of a proposal to add support for stack-switching.

There are currently two active stack-switching proposals: Typed Continuations (aka WasmFX) and Bag of Stacks. Documentation about each proposal is available in separate directories of the main branch of this repository (as detailed below).

In order to minimise future difficulties merging upstream, the two corresponding extensions to the reference interpreter will be maintained in separate branches (as detailed below).

Typed Continuations Proposal

  • See the explainer for a high-level summary of the proposal.

  • See the overview for a more formal description of the proposal.

  • See the examples for Wasm code for implementing various different features including lightweight threads, actors, and async/await.

  • An implementation is available as an extension to the reference interpreter. It is accesible from the wasmfx branch.

Bag of Stacks Proposal

  • See the explainer for a high-level summary of the proposal.

  • An extension to the reference interpreter will be made available in the bag-o-stacks branch in due course.

Original README from upstream repository follows.


CI for specs CI for interpreter & tests

spec

This repository holds a prototypical reference implementation for WebAssembly, which is currently serving as the official specification. Eventually, we expect to produce a specification either written in human-readable prose or in a formal specification language.

It also holds the WebAssembly testsuite, which tests numerous aspects of conformance to the spec.

View the work-in-progress spec at webassembly.github.io/spec.

At this time, the contents of this repository are under development and known to be "incomplet and inkorrect".

Participation is welcome. Discussions about new features, significant semantic changes, or any specification change likely to generate substantial discussion should take place in the WebAssembly design repository first, so that this spec repository can remain focused. And please follow the guidelines for contributing.

citing

For citing WebAssembly in LaTeX, use this bibtex file.