C++ links: Coroutines
https://github.com/MattPD/cpplinks / C++ Standard / C++20 / Coroutines
(draft; work in progress)
#coroutines (C++ Slack): https://cpplang.slack.com/archives/C5JS5JXT5
- https://en.cppreference.com/w/cpp/language/coroutines
- Working Draft, C++ Coroutines
- https://wg21.link/n4775
- merged into C++20, http://wg21.link/p0912
- Brain Unrolling: Generators and the Sweet Syntactic Sugar of Coroutines
- Coroutines TS Customization Points - https://hackmd.io/s/S1H_loeA7
- Dawid Pilarski
- Coroutines introduction - https://blog.panicsoftware.com/coroutines-introduction/
- Your first coroutine - https://blog.panicsoftware.com/your-first-coroutine/
- co_awaiting coroutines - https://blog.panicsoftware.com/co_awaiting-coroutines/
- How C++ coroutines work - Kirit Sælensminde
- Lewis Baker - C++ Coroutines:
- Coroutine Theory - https://lewissbaker.github.io/2017/09/25/coroutine-theory
- Understanding operator co_await - https://lewissbaker.github.io/2017/11/17/understanding-operator-co-await
- Understanding the promise type - https://lewissbaker.github.io/2018/09/05/understanding-the-promise-type
- Understanding Symmetric Transfer - https://lewissbaker.github.io/2020/05/11/understanding_symmetric_transfer
- Rainer Grimm - ModernesCpp.com
- Raymond Chen - C++ coroutines
- Getting started with awaitable objects - https://devblogs.microsoft.com/oldnewthing/20191209-00/?p=103195
- Constructible awaitable or function returning awaitable? - https://devblogs.microsoft.com/oldnewthing/20191210-00/?p=103197
- Framework interop - https://devblogs.microsoft.com/oldnewthing/20191211-00/?p=103201
- Awaiting an IAsyncAction without preserving thread context - https://devblogs.microsoft.com/oldnewthing/20191212-00/?p=103207
- Short-circuiting suspension
- no callable ‘await_resume’ function found for type - https://devblogs.microsoft.com/oldnewthing/20191217-00/?p=103219
- Defining the
co_await
operator - https://devblogs.microsoft.com/oldnewthing/20191218-00/?p=103221 - The
co_await
operator and the function search algorithm - https://devblogs.microsoft.com/oldnewthing/20191219-00/?p=103230 - The problem of the synchronous apartment-changing callback - https://devblogs.microsoft.com/oldnewthing/20191220-00/?p=103232
- The problem of the DispatcherQueue task that runs too soon
- What are coroutines and why should I care? - Marco Alesiani
- GCC implementation
- https://gcc.gnu.org/wiki/cxx-coroutines
- Initial implementation pushed to master.
- LLVM implementation
- Coroutines in LLVM - https://llvm.org/docs/Coroutines.html
- Bridging the Latency Gap between NVM and DRAM for Latency-bound Operations
- interleaving task execution with C++20 coroutines to hide memory access latency
- Data Management on New Hardware (DaMoN) 2019
- Georgios Psaropoulos, Ismail Oukid, Thomas Legler, Norman May, Anastasia Ailamaki
- https://dl.acm.org/citation.cfm?id=3329917
- Don’t stall – multitask! Random access to main memory with cache-like performance
- Exploiting Coroutines to Attack the "Killer Nanoseconds"
- PVLDB 11, 11 (July 2018)
- Christopher Jonathan, Umar Farooq Minhas, James Hunter, Justin Levandoski, Gor Nishanov
- http://www.vldb.org/pvldb/vol11/p1702-jonathan.pdf
- Interleaving with Coroutines: A Practical Approach for Robust Index Joins
- PVLDB 11, 2 (October 2017)
- Georgios Psaropoulos, Thomas Legler, Norman May, and Anastasia Ailamaki
- http://www.vldb.org/pvldb/vol11/p230-psaropoulos.pdf
- CppCoro - A coroutine library for C++
- Conduit: Lazy High Performance Streams using Coroutine TS
- folly::coro - a developer-friendly asynchronous C++ framework based on Coroutines TS
- libc++
- http://cppcast.com/2017/07/gor-nishanov/
- Compiler Explorer: Coroutines clang demo - https://godbolt.org/g/pq6x57
- Wandbox: Coroutines with Ranges - https://wandbox.org/permlink/D60wIndMZbth7BXS
- David Hollman - https://twitter.com/TheWholeDavid/status/1063135275671535616
- Boost.Asio
- coro-async - C++ coroutine based networking library (WIP)
- Coroutine TS: A new way of thinking - https://github.com/arBmind/2018-cogen-en
- Exploring the C++ Coroutine - https://github.com/luncliff/coroutine/
- coro: Single-header library facilities for C++2a Coroutines
- code::dive 2019 - C++20 Coroutines: Introduction
- code::dive 2019 - C++20 Coroutines: Asynchronity reimagined
- code::dive 2019 - C++20 Coroutines: What's next?
- Exploring C++20 Coroutines
- C/C++ Dublin User Group 2019; Justin Durkan
- https://www.youtube.com/watch?v=RhXaKOe3JZM
- https://drive.google.com/file/d/1sHtERPE4tgn2R4QeAAN-TlSD_gd9CE3d/view
- Structured Concurrency: Writing Safer Concurrent Code with Coroutines and Algorithms
- CppCon 2019; Lewis Baker
- https://www.youtube.com/watch?v=1Wy5sq3s2rg
- 2019 GNU Tools Cauldron: Iain Sandoe - C++20 Coroutines in GCC
- 2019 Adi Shavit - Generators, Coroutines and Other Brain Unrolling Sweetness
- NDC TechTown: https://www.youtube.com/watch?v=CwCJBpB7Z5w
- CppCon: https://www.youtube.com/watch?v=qYHDERleSL8
- CoreHard Autumn: https://www.youtube.com/watch?v=qjQBAgsj9CI
- code::dive 2019
- 2019 Core C++: Yehezkel Bernat - Coroutines - the future of future (and more)
- 2019 C++ Korea Facebook Group: Park Dong Ha - Exploring the C++ Coroutine: Approach, Compiler, and Issues
- 2018 Meeting C++: Andreas Reischuck - Coroutine TS a new way of thinking
- 2018 CppCon: G. Nishanov “Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)”
- 2018 LLVM Developers’ Meeting: J. McCall “Coroutine Representations and ABIs in LLVM”
- 2018 Core C++: Yehezkel Bernat - Coroutines - Back to the Future
- 2017 CppCon: Anthony Williams “Concurrency, Parallelism and Coroutines” - https://www.youtube.com/watch?v=JvHZ_OECOFU
- 2017 CppCon: Gor Nishanov “Naked coroutines live (with networking)” - https://www.youtube.com/watch?v=UL3TtTgt3oU
- 2017 CppCon: Toby Allsopp “Coroutines: what can't they do?” - https://www.youtube.com/watch?v=mlP1MKP8d_Q
- 2017 Pacific++: Toby Allsopp "An Introduction to the Proposed Coroutine Support for C++"
- 2016 await/yield: C++ coroutines - Zbigniew Skowron - 30 November, 2016 - http://cpp.mimuw.edu.pl/files/await-yield-c++-coroutines.pdf
- 2016 CppCon: Gor Nishanov “C++ Coroutines: Under the covers" - https://www.youtube.com/watch?v=8C8NnE1Dg4A
- 2016 CppCon: James McNellis “Introduction to C++ Coroutines" - https://www.youtube.com/watch?v=ZTqHjjm86Bw
- 2016 LLVM Developers’ Meeting: G. Nishanov “LLVM Coroutines” - https://www.youtube.com/watch?v=Ztr8QvMhqmQ
- 2015 C++Now - Gor Nishanov: C++17 coroutines for app and library developers - https://www.youtube.com/watch?v=proxLbvHGEQ
- 2015 CppCon: Gor Nishanov “C++ Coroutines - a negative overhead abstraction" - https://www.youtube.com/watch?v=_fu0gx-xseY
- 2015 Meeting C++: An Introduction to C++ Coroutines - James McNellis - https://www.youtube.com/watch?v=YYtzQ355_Co