Coroutines: C++ vs Rust
C++ and Rust are both system programming languages that recently received support for asynchronous programming using coroutines. Given the memory and time constraints, both languages opted for stackless coroutines implemented by a compiler-generated state machine. However, beyond that the designs are very different: in C++ the awaitables continue a coroutine from the bottom up, whereas in Rust a waker polls a future from the top down.
We'll figure out what this means by exploring how C++ and Rust coroutines work, what sets them apart, and what the trade-offs are. If you like programming language design, this talk is for you.
Jonathan is a Computer Science graduate student. In his spare time he works on various C++ open-source libraries for memory allocation, cache-friendly containers or parsing. He also blogs about C++ and library development at foonathan.net.