arxiv.org web signal

Paper maps nine ways async/await quietly differs across languages

TL;DR

  • A new arXiv paper argues no two languages implementing 'straight-line asynchrony' fully agree on how async execution actually behaves.
  • The authors articulate a design space with nine dimensions covering the full lifecycle of an asynchronous computation.
  • The exploration mixes concrete examples, informal design discussion and a formal semantics, but the abstract does not list the languages surveyed.

Programming languages that share the words `async` and `await` do not share what those words mean once a program actually runs. That is the argument of "A Design Space Exploration of Async/Await", an arXiv preprint submitted on 21 August 2026 by Gavin Gray, Shriram Krishnamurthi and Will Crichton.

The authors dissect several existing languages and report that "no two of them agree as a whole on design decisions that affect the presence and ordering of execution." Similar-looking programs, the paper says, "can exhibit divergent behavior, confusing developers and language designers alike."

To organise the disagreement, the paper lays out "a design space with nine dimensions covering the full lifecycle of an asynchronous computation," walking through questions such as what guarantees a language gives when an async function is called, what happens at the end of a task's life, and how a task handles being cancelled. The exploration mixes concrete examples, informal design discussion and a formal semantics.

The abstract does not name the specific languages surveyed or enumerate the nine dimensions.

Shared on Bluesky by 1 AI expert