| A Design Space Exploration of Async/Await(cel.cs.brown.edu) | |
| 462 points by wcrichton 48 days ago | 134 comments | |
tl;dr: Async/await semantics vary wildly across languages: the authors ran the same simple async program across seven runtimes (Asyncio, C#, JavaScript, Tokio, Smol, Trio, Swift) and got four different outputs, with no two runtimes agreeing across three variations. Their paper identifies nine design dimensions—like eagerness, extent, destruction, and cancellation behavior—that explain the divergence, and formalizes them in a core calculus so execution differences can be traced to specific design choices. | |
HN Discussion:
| |