New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
P1774 Portable assumptions #529
Comments
P1774R1 Portable optimisation hints (Timur Doumler) |
Let's do EWGI first. |
P1774R2 Portable assumptions (Timur Doumler) |
P1774R3 Portable assumptions (Timur Doumler) |
EWG Prague Thursday morning: We want assumptions now, and independent of future contract facilities.
We like the proposed semantics for assumptions.
We want exploration on a mode which can check assumptions, including side-effects
We like the proposed attribute syntax [[assume(expr)]]
We’d like more exploration on macro assume, like assert
We’d like more exploration on keyword such as one of unsafe_assume / assume / __assume / _Assume / …
We’d like more exploration on magic library function such as std::assume(expr)
|
P1774R4 Portable assumptions (Timur Doumler) |
EWG reviewed D1774R5 at the December 2nd, 2021 EWG meeting. The following polls were taken: In D1774R5, we should spell the ‘assume’ as assume: expr.
Result: Consensus Against In D1774R5, we prefer assume’s parameter to be just an “attribute-grammar-conforming token soup”, not an expression.
Result: Consensus Against Send D1774R5 to electronic polling for forwarding to CWG for inclusion in C++23, in Bucket 2.
Result: Consensus |
Poll outcome:✅ consensus |
CWG telecon 2022-03-25: Reviewed with immediate updates; D1774R7 is almost ready. |
CWG telecon 2022-04-22: Reviewed D1774R7 (includes P2507R1 change). Remaining outstanding issue is the phrasing of a note. |
CWG telecon 2022-05-06: Reviewed D1774R7. Increased concerns about ABI impact with odr-use causing lambda captures. Some implementations want to token-soup-ignore assumptions (no syntax checking, no template instantiations, no odr-use), other (future ones) want to syntax-check and instantiate templates, but not odr-use (and thus capture) variables, yet others need to odr-use (and thus capture) variables to implement the intended functionality. This paper goes back to EWG to further discuss these questions. |
P1774R7 Portable assumptions (Timur Doumler) |
EWG Re-reviewed P1774R7 in the May 26, 2022 EWG meeting. This discussion ALSO interacted with CWG2538, and discussed clarifications of The following polls were taken: It is EWG's intent that [dcl.attr]/6 permits an implementation to completely ignore a standard attribute.
Result: Not Consensus It is EWG's intent that [dcl.attr]/6 ONLY permits an implementation to ignore a standard attribute's effect, but not appertainment and argument parsing. See: CWG2538
Result: Consensus For P1774 in particular, permit an implementation to completely ignore [[assume]].
Result: Not Consensus For P1774 in particular, permit treating attribute [[assume]]'s expression as a 'balanced token sequence' as a conforming implementation.
Result: Not Consensus Given the additional information regarding ABI issues, withdraw P1774 and encourage the author to come back with a revision that explores alternative syntaxes.
Result: Not Consensus The result of these polls was that no-change was made to P1774, so this is being sent back to CWG for further work toward incorporating the paper into C++23. |
CWG telecon 2022-06-03: Approved D1774R8 for plenary straw poll. |
P1774R8 Portable assumptions (Timur Doumler) |
P1774R0 Portable optimisation hints (Timur Doumler)
The text was updated successfully, but these errors were encountered: