Hi all, On Fri, 26 Jun 2026 at 20:12, Mungo via Paper-reviews <paper-reviews@lists.wg21.org> wrote:
Subject: Review request - P4286R0, "P3552: The Return of Networking TS Executors"
This is my review of P3552. Thanks Mungo for your submission. Affiliation disclosure: I'm currently affiliated with the C++ Alliance. Before diving into the specific questions, I'd like to say that I mostly agree with the feedback provided by my colleagues Arnaud and Matt about the structure of the paper. A hierarchical structure (more generic to more specific) would have helped me grasp the paper more easily. As with P4003R3, I would advise making the paper more self-contained. In particular, I'd suggest providing more context in point 5 (The Coroutine Executor). I think that a gentle introduction to any concepts that are part of the Network Endeavor would be helpful for readers that are not part of the Alliance. Since both Arnaud and Matt provided excellent feedback on the points about structure, I won't go into more details here. Some of the sentences sounded me reprobative towards the committee, rather than neutral ("The committee rediscovered that continuations need a continuation-framed executor.", "The infallible scheduling constraint that P3941R4 now imposes... applies to the exact domain where the same constraint was called a deficiency."). I think that these could be perceived negatively by some readers. English is however not my main language, and I have very little knowledge of committee politics, so I might be wrong, or these may be intentional/desirable. I just wanted to point out my honest reaction on reading these.
1. Is the historical trace accurate?
Does the path from P1525R0 and P2464R0 to the P3941R4 infallibility requirement hold up against the record? Are those papers characterized fairly, in particular the claim that P1525R0 and P2464R0 analyzed execute(F&&) under the work framing alone, and that the continuation framing from Kohlhoff's P0113R0 had been erased from the API surface by the time either was written?
To a certain point. The historical trail is explained well. P1525R0 does give a definition of execute(F&&) framed as work submission. Yet it also uses the term "continuation" in section 3.3 when arguing on why "no error reporting" is considered a deficiency. I don't think P2464R0 treats execute(F&&) under the work framing at all. The word "continuation" appears 38 times. It talks about submitting continuations to the executor and why the author considers it problematic that these executors don't have a way to report back errors that may happen between continuation submission and actual continuation invocation. I may just be being candid and missing the point, but I'd be cautious about making the claim regarding P2464R0.
2. Did the use of AI affect your perception?
The papers in this series, and the review program you are reading this on, were developed with heavy AI assistance, and I am not hiding that. Whether or not you suspect it of this paper, I want to know candidly whether that knowledge changed how you read it. Did it raise or lower your trust? Did you go looking for tells, and did you find any? Did it make you more or less rigorous than you would be with a paper written entirely by hand? I would rather you name this in your review than leave it unsaid.
Yes, negatively. I mostly agree with what other reviewers have said about assuming available context, so I won't repeat it here. Some LLM'isms: * "P1525R0's own definition confirms the framing it assumed" * "Eagerly submits." "Execution agent that the executor creates." The language is work submission throughout. * "A scheduler used with affine_on may complete only with set_value(). No set_error. No set_stopped."
3. Is the structural claim sound?
The heart of the paper is the symmetry in Section 6: that the P0443R14 executor, the infallible scheduler of P3941R4, and the coroutine executor of P4003R3 share one shape - a scheduling operation that delivers no value and offers a suspended caller no channel through which to receive a failure. The match is not clean across the board, and the paper says so: by its own table the coroutine executor expresses cancellation through destroy() on the handle, and its post can throw before it accepts the work. Does the symmetry hold where the paper claims it, or is the match overstated? Is its account of those differences right? And is the central claim convincing, that an infallible scheduling operation is the correct shape for a continuation rather than a defect to be fixed?
To a point. If I understood P3941R4 correctly, the infallibility requirement applies only when using affine_on. execution::task defaults to using affine_on, so it can be argued that the infallibility requirement will apply in many cases. But executor affinity AFAIK can be disabled, and the infallibility requirement wouldn't apply, yet you would be submitting continuations rather than work. Note however that I'm not an expert in senders/receivers. The table looks correct and the comparisons look sound, but I don't know if the conclusion "an infallible scheduling operation is the correct shape for a continuation rather than a defect to be fixed" follows immediately from it.
4. What is missing, and where is the argument weakest?
What would undercut the claim? I am looking for counter-readings of P1525R0 and P2464R0, places where the work and continuation framings are not as clean a split as the paper draws, executor history it moves past, and consequences it does not follow through. Tell me what you went looking for and did not find.
See my comments above. Regards, Ruben.