Skip to content

Commit 1961ae5

Browse files
committed
Update papers
1 parent 726e139 commit 1961ae5

12 files changed

+2074
-96
lines changed

source/1-pager.md

Lines changed: 41 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,63 @@
11
# The Network Endeavor
22

3-
**p2300 is a networking library that has never done networking**
3+
**p2300 is a networking library that never did any networking**
44

55
These papers contain all of the analysis and supporting material to deliver networking in C++29.
66

77
## Foundation
88

9-
- P4088R0 - The Case for Coroutines
10-
- P4046R0 - SAGE: Saving All Gathered Expertise
11-
- P4034R0 - On Universal Models
12-
- P4041R0 - Is `std::execution` a Universal Async Model?
13-
- P4047R0 - CRYSTAL BALL: Checking Predictions Against the Record
9+
- [P4088R0](https://isocpp.org/files/papers/P4088R0.pdf) - The Case for Coroutines
10+
- [P4034R0](https://isocpp.org/files/papers/P4034R0.pdf) - On Universal Models
11+
- [P4041R0](https://isocpp.org/files/papers/P4041R0.pdf) - Is `std::execution` a Universal Async Model?
12+
- [P4046R0](https://isocpp.org/files/papers/P4046R0.pdf) - SAGE: Saving All Gathered Expertise
13+
- [P4047R0](https://isocpp.org/files/papers/P4047R0.pdf) - CRYSTAL BALL: Checking Predictions Against the Record
1414

1515
## Technical Analysis
1616

17-
- P2583R3 - Symmetric Transfer and Sender Composition
18-
- D4003R1 - Coroutines for I/O
19-
- D4007R1 - Open Issues in `std::execution::task`
20-
- D4014R1 - The Sender Sub-Language
21-
- P4036R0 - Why Span Is Not Enough
22-
- D4035R0 - The Need for Escape Hatches
23-
- P4089R0 - On the Diversity of Coroutine Task Types
24-
- P4090R0 - Sender I/O: A Constructed Comparison
25-
- P4091R0 - Two Error Models
26-
- P4123R0 - The Cost of Senders for Coroutine I/O
27-
- D4124R0 - Domain-Aware Combinators
28-
- D4126R0 - A Universal Continuation Model
29-
- D4127R0 - The Coroutine Frame Allocator Timing Problem
17+
- [P2583R3](https://isocpp.org/files/papers/P2583R3.pdf) - Symmetric Transfer and Sender Composition
18+
- [D4003R1](https://isocpp.org/files/papers/D4003R1.pdf) - Coroutines for I/O
19+
- [D4007R1](https://isocpp.org/files/papers/D4007R1.pdf) - Open Issues in `std::execution::task`
20+
- [D4014R1](https://isocpp.org/files/papers/D4014R1.pdf) - The Sender Sub-Language
21+
- [P4036R0](https://isocpp.org/files/papers/P4036R0.pdf) - Why Span Is Not Enough
22+
- [D4035R0](https://isocpp.org/files/papers/D4035R0.pdf) - The Need for Escape Hatches
23+
- [P4089R0](https://isocpp.org/files/papers/P4089R0.pdf) - On the Diversity of Coroutine Task Types
24+
- [P4090R0](https://isocpp.org/files/papers/P4090R0.pdf) - Sender I/O: A Constructed Comparison
25+
- [P4091R0](https://isocpp.org/files/papers/P4091R0.pdf) - Two Error Models
26+
- [P4123R0](https://isocpp.org/files/papers/P4123R0.pdf) - The Cost of Senders for Coroutine I/O
27+
- [D4124R0](https://isocpp.org/files/papers/D4124R0.pdf) - Domain-Aware Combinators
28+
- [P4126R0](https://isocpp.org/files/papers/P4126R0.pdf) - A Universal Continuation Model
29+
- [D4127R0](https://isocpp.org/files/papers/D4127R0.pdf) - The Coroutine Frame Allocator Timing Problem
3030

3131
## Interoperability
3232

33-
- P4092R0 - Consuming Senders from Coroutine-Native Code
34-
- P4093R0 - Producing Senders from Coroutine-Native Code
33+
- [P4092R0](https://isocpp.org/files/papers/P4092R0.pdf) - Consuming Senders from Coroutine-Native Code
34+
- [P4093R0](https://isocpp.org/files/papers/P4093R0.pdf) - Producing Senders from Coroutine-Native Code
3535

3636
## Field Experience
3737

38-
- D4125R0 - Field Experience: Porting a Derivatives Exchange to Coroutine-Native I/O
38+
- [D4125R0](https://isocpp.org/files/papers/D4125R0.pdf) - Field Experience: Porting a Derivatives Exchange to Coroutine-Native I/O
3939

4040
## Retrospectives
4141

42-
- P4094R0 - Retrospective: The Unification of Executors and P0443
43-
- P4095R0 - Retrospective: The Basis Operation and P1525
44-
- P4096R0 - Retrospective: Coroutine Executors and P2464R0
45-
- P4097R0 - Retrospective: The Networking Claim and P2453R0
46-
- P4098R0 - Retrospective: Async Claims and Evidence
47-
- P4099R0 - Twenty-One Years: The Arc of Networking in C++
42+
- [P4094R0](https://isocpp.org/files/papers/P4094R0.pdf) - Retrospective: The Unification of Executors and P0443
43+
- [P4095R0](https://isocpp.org/files/papers/P4095R0.pdf) - Retrospective: The Basis Operation and P1525
44+
- [P4096R0](https://isocpp.org/files/papers/P4096R0.pdf) - Retrospective: Coroutine Executors and P2464R0
45+
- [P4097R0](https://isocpp.org/files/papers/P4097R0.pdf) - Retrospective: The Networking Claim and P2453R0
46+
- [P4098R0](https://isocpp.org/files/papers/P4098R0.pdf) - Retrospective: Async Claims and Evidence
47+
- [P4099R0](https://isocpp.org/files/papers/P4099R0.pdf) - Twenty-One Years: The Arc of Networking in C++
4848

4949
## Process
5050

51-
- D4050R0 - Failure Modes in Large-Scale Standardization
52-
- P4048R0 - Networking for C++29: A Call to Action
53-
- P4100R0 - The Network Endeavor: Coroutine-Native I/O for C++29
54-
- D4045R0 - Response to P4043R0
55-
56-
## Links
57-
58-
https://isocpp.org/files/papers/P2583R3.pdf
59-
https://isocpp.org/files/papers/P4003R0.pdf
60-
https://isocpp.org/files/papers/P4007R1.pdf
61-
https://isocpp.org/files/papers/P4014R1.pdf
62-
https://isocpp.org/files/papers/P4034R0.pdf
63-
https://isocpp.org/files/papers/P4035R0.pdf
64-
https://isocpp.org/files/papers/P4036R0.pdf
65-
https://isocpp.org/files/papers/P4041R0.pdf
66-
https://isocpp.org/files/papers/P4045R0.pdf
67-
https://isocpp.org/files/papers/P4046R0.pdf
68-
https://isocpp.org/files/papers/P4047R0.pdf
69-
https://isocpp.org/files/papers/P4048R0.pdf
70-
https://isocpp.org/files/papers/P4050R0.pdf
71-
https://isocpp.org/files/papers/P4088R0.pdf
72-
https://isocpp.org/files/papers/P4089R0.pdf
73-
https://isocpp.org/files/papers/P4090R0.pdf
74-
https://isocpp.org/files/papers/P4091R0.pdf
75-
https://isocpp.org/files/papers/P4092R0.pdf
76-
https://isocpp.org/files/papers/P4093R0.pdf
77-
https://isocpp.org/files/papers/P4094R0.pdf
78-
https://isocpp.org/files/papers/P4095R0.pdf
79-
https://isocpp.org/files/papers/P4096R0.pdf
80-
https://isocpp.org/files/papers/P4097R0.pdf
81-
https://isocpp.org/files/papers/P4098R0.pdf
82-
https://isocpp.org/files/papers/P4099R0.pdf
83-
https://isocpp.org/files/papers/P4100R0.pdf
84-
https://isocpp.org/files/papers/P4123R0.pdf
85-
https://isocpp.org/files/papers/P4124R0.pdf
86-
https://isocpp.org/files/papers/D4126R0.pdf
87-
https://isocpp.org/files/papers/P4125R0.pdf
88-
https://isocpp.org/files/papers/P4127R0.pdf
51+
- [P4050R0](https://isocpp.org/files/papers/P4050R0.pdf) - Failure Modes in Large-Scale Standardization
52+
- [P4048R0](https://isocpp.org/files/papers/P4048R0.pdf) - Networking for C++29: A Call to Action
53+
- [P4100R0](https://isocpp.org/files/papers/P4100R0.pdf) - The Network Endeavor: Coroutine-Native I/O for C++29
54+
- [D4045R0](https://isocpp.org/files/papers/D4045R0.pdf) - Response to P4043R0
55+
- [P4129R1](https://isocpp.org/files/papers/P4129R1.pdf) - The Dynamics of Voting in WG21
56+
- [P4130R0](https://isocpp.org/files/papers/P4130R0.pdf) - The Convenership's Structural Influence Over WG21
57+
- [P4131R0](https://isocpp.org/files/papers/P4131R0.pdf) - Retrospective: Effects of the WG21 Train Model
58+
- [P4133R0](https://isocpp.org/files/papers/P4133R0.pdf) - The Missing Feedback Loop
59+
- [P4134R0](https://isocpp.org/files/papers/P4134R0.pdf) - A Better WG21
60+
61+
## Safety
62+
63+
- [D0000R0](https://isocpp.org/files/papers/D0000R0.pdf) - PAVE: Profile Analysis and Verification Evidence

source/d4050-failure-modes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "Failure Modes in Large-Scale Standardization"
3-
document: D4050R0
3+
document: P4050R0
44
date: 2026-03-16
55
reply-to:
66
- "Vinnie Falco <vinnie.falco@gmail.com>"

source/d4123-cost-of-senders.md

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ This paper grants [P3552R3](https://wg21.link/p3552r3)<sup>[1]</sup> every engin
2626

2727
## 1. Disclosure
2828

29-
The author developed and maintains [Corosio](https://github.com/cppalliance/corosio)<sup>[4]</sup> and [Capy](https://github.com/cppalliance/capy)<sup>[5]</sup> and believes coroutine-native I/O is the correct foundation for networking in C++. The author provides information, asks nothing, and serves at the pleasure of the chair.
29+
The author developed and maintains [Corosio](https://github.com/cppalliance/corosio)<sup>[3]</sup> and [Capy](https://github.com/cppalliance/capy)<sup>[4]</sup> and believes coroutine-native I/O is the correct foundation for networking in C++. The author provides information, asks nothing, and serves at the pleasure of the chair.
3030

3131
The author regards `std::execution` as an important contribution to C++ and supports its standardization for the domains it serves well - GPU dispatch, heterogeneous execution, and compile-time work-graph composition among them. Nothing in this paper argues for removing, delaying, or diminishing `std::execution`.
3232

@@ -36,8 +36,8 @@ The author regards `std::execution` as an important contribution to C++ and supp
3636

3737
This paper grants `std::execution::task` every engineering fix that has been proposed, discussed, or implied. The following are assumed to ship:
3838

39-
- **Case A (concession):** I/O operations return awaitables, not senders. The template operation state problem ([P4088R0](https://isocpp.org/files/papers/P4088R0.pdf)<sup>[6]</sup> Section 6.1) does not arise. This is the generous case.
40-
- **Case B (stated direction):** I/O operations return senders. LEWG polled in October 2021 that "the sender/receiver model (P2300) is a good basis for most asynchronous use cases, including networking" ([P2453R0](https://wg21.link/p2453r0)<sup>[21]</sup>); SG4 polled at Kona (November 2023) that networking must use the sender model. Under Case B, every `co_await` of an I/O sender inside a `task<T, IoEnv>` goes through `connect`/`start`/`state<Rcvr>`. The `state<Rcvr>` lives on the coroutine frame (no separate allocation), but the CPU cost of construction and environment extraction is per I/O operation. The narrow task-to-task fix (LWG4348) does not apply because the I/O operation is not a task.
39+
- **Case A (concession):** I/O operations return awaitables, not senders. The template operation state problem ([P4088R0](https://isocpp.org/files/papers/P4088R0.pdf)<sup>[5]</sup> Section 6.1) does not arise. This is the generous case.
40+
- **Case B (stated direction):** I/O operations return senders. LEWG polled in October 2021 that "the sender/receiver model (P2300) is a good basis for most asynchronous use cases, including networking" ([P2453R0](https://wg21.link/p2453r0)<sup>[20]</sup>); SG4 polled at Kona (November 2023) that networking must use the sender model. Under Case B, every `co_await` of an I/O sender inside a `task<T, IoEnv>` goes through `connect`/`start`/`state<Rcvr>`. The `state<Rcvr>` lives on the coroutine frame (no separate allocation), but the CPU cost of construction and environment extraction is per I/O operation. The narrow task-to-task fix (LWG4348) does not apply because the I/O operation is not a task.
4141
- Symmetric transfer works task-to-task. The stack overflow vulnerability ([P3801R0](https://wg21.link/p3801r0)<sup>[7]</sup>) is resolved.
4242
- Frame allocator timing is fixed. The rework in [P3980R0](https://wg21.link/p3980r0)<sup>[8]</sup> ships. The allocator reaches `promise_type::operator new` before the frame is allocated.
4343
- `AS-EXCEPT-PTR` does not convert an `error_code` to `exception_ptr`. I/O errors do not become exceptions.
@@ -302,7 +302,7 @@ With the fourth routing, the standard `when_all` cancels siblings on I/O error.
302302

303303
#### 5.5.3 The Remaining Difference
304304

305-
The fourth routing makes `when_all` cancel siblings on I/O error. It does not make the composition clean. Downstream algorithms - `upon_error`, `let_error`, `retry` - now receive `tuple<error_code, size_t>` instead of `error_code`. Every handler must branch on the error type with `if constexpr`. Partial transfer data (bytes read before the error) is semantically misplaced inside the error channel. `retry` sees the tuple and retries the whole operation; the byte count is lost. [D4124R0](https://isocpp.org/files/papers/D4124R0.pdf)<sup>[20]</sup> examines these problems in detail and shows that the first three routing strategies fail to achieve correct I/O error handling, and that the fourth corrupts downstream composition, without a domain-aware combinator.
305+
The fourth routing makes `when_all` cancel siblings on I/O error. It does not make the composition clean. Downstream algorithms - `upon_error`, `let_error`, `retry` - now receive `tuple<error_code, size_t>` instead of `error_code`. Every handler must branch on the error type with `if constexpr`. Partial transfer data (bytes read before the error) is semantically misplaced inside the error channel. `retry` sees the tuple and retries the whole operation; the byte count is lost. [P4124R0](https://isocpp.org/files/papers/P4124R0.pdf)<sup>[19]</sup> examines these problems in detail and shows that the first three routing strategies fail to achieve correct I/O error handling, and that the fourth corrupts downstream composition, without a domain-aware combinator.
306306

307307
The coroutine-native model's combinator has direct access to the result value after `co_await`:
308308

@@ -377,7 +377,7 @@ The concessions in Section 2 assume several engineering fixes ship. [P3552R3](ht
377377
378378
If `task` ships in C++26 without these fixes, the concessions in Section 2 are hypothetical. The gap in Section 4 would be larger.
379379
380-
LEWG and SG4 have polled that networking should use the sender model ([P2453R0](https://wg21.link/p2453r0)<sup>[21]</sup>). Case A (I/O as awaitables) is therefore more generous than the stated direction. Case B (Section 5.7) documents the cost under the stated plan.
380+
LEWG and SG4 have polled that networking should use the sender model ([P2453R0](https://wg21.link/p2453r0)<sup>[20]</sup>). Case A (I/O as awaitables) is therefore more generous than the stated direction. Case B (Section 5.7) documents the cost under the stated plan.
381381
382382
[P2762R0](https://wg21.link/p2762r0)<sup>[12]</sup> mentioned `io_task` in one paragraph:
383383
@@ -459,40 +459,38 @@ The author thanks Bjarne Stroustrup for [P3406R0](https://wg21.link/p3406r0) and
459459
460460
2. [bemanproject/task](https://github.com/bemanproject/task) - P3552R3 reference implementation. https://github.com/bemanproject/task
461461
462-
3. [D4051R0](https://isocpp.org/files/papers/D4051R0.pdf) - "Steelmanning P3552R3" (Vinnie Falco, 2026). https://isocpp.org/files/papers/D4051R0.pdf
462+
3. [cppalliance/corosio](https://github.com/cppalliance/corosio) - Coroutine-native networking library. https://github.com/cppalliance/corosio
463463
464-
4. [cppalliance/corosio](https://github.com/cppalliance/corosio) - Coroutine-native networking library. https://github.com/cppalliance/corosio
464+
4. [cppalliance/capy](https://github.com/cppalliance/capy) - Coroutine I/O primitives library. https://github.com/cppalliance/capy
465465
466-
5. [cppalliance/capy](https://github.com/cppalliance/capy) - Coroutine I/O primitives library. https://github.com/cppalliance/capy
466+
5. [P4088R0](https://isocpp.org/files/papers/P4088R0.pdf) - "The Case for Coroutines" (Vinnie Falco, 2026). https://isocpp.org/files/papers/P4088R0.pdf
467467
468-
6. [P4088R0](https://isocpp.org/files/papers/P4088R0.pdf) - "The Case for Coroutines" (Vinnie Falco, 2026). https://isocpp.org/files/papers/P4088R0.pdf
468+
6. [P3801R0](https://wg21.link/p3801r0) - "Concerns about the design of `std::execution::task`" (Jonathan M&uuml;ller, 2025). https://wg21.link/p3801r0
469469
470-
7. [P3801R0](https://wg21.link/p3801r0) - "Concerns about the design of `std::execution::task`" (Jonathan M&uuml;ller, 2025). https://wg21.link/p3801r0
470+
7. [P3980R0](https://wg21.link/p3980r0) - "Task's Allocator Use" (Dietmar K&uuml;hl, 2026). https://wg21.link/p3980r0
471471
472-
8. [P3980R0](https://wg21.link/p3980r0) - "Task's Allocator Use" (Dietmar K&uuml;hl, 2026). https://wg21.link/p3980r0
472+
8. [P4092R0](https://isocpp.org/files/papers/P4092R0.pdf) - "Consuming Senders from Coroutine-Native Code" (Vinnie Falco, Steve Gerbino, 2026). https://isocpp.org/files/papers/P4092R0.pdf
473473
474-
9. [P4092R0](https://isocpp.org/files/papers/P4092R0.pdf) - "Consuming Senders from Coroutine-Native Code" (Vinnie Falco, Steve Gerbino, 2026). https://isocpp.org/files/papers/P4092R0.pdf
474+
9. [P4093R0](https://isocpp.org/files/papers/P4093R0.pdf) - "Producing Senders from Coroutine-Native Code" (Vinnie Falco, Steve Gerbino, 2026). https://isocpp.org/files/papers/P4093R0.pdf
475475
476-
10. [P4093R0](https://isocpp.org/files/papers/P4093R0.pdf) - "Producing Senders from Coroutine-Native Code" (Vinnie Falco, Steve Gerbino, 2026). https://isocpp.org/files/papers/P4093R0.pdf
476+
10. [P3796R1](https://wg21.link/p3796r1) - "Coroutine Task Issues" (Dietmar K&uuml;hl, 2025). https://wg21.link/p3796r1
477477
478-
11. [P3796R1](https://wg21.link/p3796r1) - "Coroutine Task Issues" (Dietmar K&uuml;hl, 2025). https://wg21.link/p3796r1
478+
11. [P2762R0](https://wg21.link/p2762r0) - "Sender/Receiver Interface For Networking" (Dietmar K&uuml;hl, 2023). https://wg21.link/p2762r0
479479
480-
12. [P2762R0](https://wg21.link/p2762r0) - "Sender/Receiver Interface For Networking" (Dietmar K&uuml;hl, 2023). https://wg21.link/p2762r0
480+
12. [P2762R2](https://wg21.link/p2762r2) - "Sender/Receiver Interface For Networking" (Dietmar K&uuml;hl, 2023). https://wg21.link/p2762r2
481481
482-
13. [P2762R2](https://wg21.link/p2762r2) - "Sender/Receiver Interface For Networking" (Dietmar K&uuml;hl, 2023). https://wg21.link/p2762r2
482+
13. [P2300R10](https://wg21.link/p2300r10) - "std::execution" (Micha&lstrok; Dominiak, Lewis Baker, Lee Howes, Kirk Shoop, Michael Garland, Eric Niebler, Bryce Adelstein Lelbach, 2024). https://wg21.link/p2300r10
483483
484-
14. [P2300R10](https://wg21.link/p2300r10) - "std::execution" (Micha&lstrok; Dominiak, Lewis Baker, Lee Howes, Kirk Shoop, Michael Garland, Eric Niebler, Bryce Adelstein Lelbach, 2024). https://wg21.link/p2300r10
484+
14. [P2430R0](https://wg21.link/p2430r0) - "Partial success scenarios with P2300" (Chris Kohlhoff, 2021). https://wg21.link/p2430r0
485485
486-
15. [P2430R0](https://wg21.link/p2430r0) - "Partial success scenarios with P2300" (Chris Kohlhoff, 2021). https://wg21.link/p2430r0
486+
15. [P4003R0](https://wg21.link/p4003r0) - "Coroutine-Native I/O" (Vinnie Falco, Steve Gerbino, 2026). https://wg21.link/p4003r0
487487
488-
16. [P4003R0](https://wg21.link/p4003r0) - "Coroutine-Native I/O" (Vinnie Falco, Steve Gerbino, 2026). https://wg21.link/p4003r0
488+
16. [P3406R0](https://wg21.link/p3406r0) - "We need better performance testing" (Bjarne Stroustrup, 2024). https://wg21.link/p3406r0
489489
490-
17. [P3406R0](https://wg21.link/p3406r0) - "We need better performance testing" (Bjarne Stroustrup, 2024). https://wg21.link/p3406r0
490+
17. [P0709R4](https://wg21.link/p0709r4) - "Zero-overhead deterministic exceptions: Throwing values" (Herb Sutter, 2019). https://wg21.link/p0709r4
491491
492-
18. [P0709R4](https://wg21.link/p0709r4) - "Zero-overhead deterministic exceptions: Throwing values" (Herb Sutter, 2019). https://wg21.link/p0709r4
492+
18. [D2583R3](https://isocpp.org/files/papers/D2583R3.pdf) - "Symmetric Transfer and Sender Composition" (Mungo Gill, Vinnie Falco, 2026). https://isocpp.org/files/papers/D2583R3.pdf
493493
494-
19. [D2583R3](https://isocpp.org/files/papers/D2583R3.pdf) - "Symmetric Transfer and Sender Composition" (Mungo Gill, Vinnie Falco, 2026). https://isocpp.org/files/papers/D2583R3.pdf
494+
19. [P4124R0](https://isocpp.org/files/papers/P4124R0.pdf) - "Domain-Aware Combinators" (Vinnie Falco, 2026). https://isocpp.org/files/papers/P4124R0.pdf
495495
496-
20. [D4124R0](https://isocpp.org/files/papers/D4124R0.pdf) - "Domain-Aware Combinators" (Vinnie Falco, 2026). https://isocpp.org/files/papers/D4124R0.pdf
497-
498-
21. [P2453R0](https://wg21.link/p2453r0) - "Outcomes from the LEWG 2021-09-28 telecon" (Ben Craig, 2021). https://wg21.link/p2453r0
496+
20. [P2453R0](https://wg21.link/p2453r0) - "Outcomes from the LEWG 2021-09-28 telecon" (Ben Craig, 2021). https://wg21.link/p2453r0

source/d4124-domain-aware-combinators.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "Domain-Aware Combinators"
3-
document: D4124R0
3+
document: P4124R0
44
date: 2026-03-18
55
reply-to:
66
- "Vinnie Falco <vinnie.falco@gmail.com>"

source/d4125-field-experience.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "Field Experience: Porting a Derivatives Exchange to Coroutine-Native I/O"
3-
document: D4125R0
3+
document: P4125R0
44
date: 2026-03-17
55
reply-to:
66
- "Mungo Gill <mungo.gill@me.com>"

source/d4126-universal-continuations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "A Universal Continuation Model"
3-
document: D4126R0
3+
document: P4126R0
44
date: 2026-03-18
55
reply-to:
66
- "Vinnie Falco <vinnie.falco@gmail.com>"

source/d4127-timing-problem.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "The Coroutine Frame Allocator Timing Problem"
3-
document: D4127R0
3+
document: P4127R0
44
date: 2026-03-18
55
reply-to:
66
- "Vinnie Falco <vinnie.falco@gmail.com>"

0 commit comments

Comments
 (0)