Skip to content
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

Closed
wg21bot opened this issue Jun 23, 2019 · 21 comments · Fixed by cplusplus/draft#5671
Closed

P1774 Portable assumptions #529

wg21bot opened this issue Jun 23, 2019 · 21 comments · Fixed by cplusplus/draft#5671
Labels
C++23 Targeted at C++23 CWG Core plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. straw-poll Straw poll
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Jun 23, 2019

P1774R0 Portable optimisation hints (Timur Doumler)

@wg21bot wg21bot added this to the 2019-07 milestone Jun 23, 2019
@wg21bot wg21bot added the EWG Evolution label Jun 23, 2019
@jensmaurer jensmaurer modified the milestones: 2019-07, 2019-11 Aug 23, 2019
@wg21bot
Copy link
Collaborator Author

wg21bot commented Oct 15, 2019

P1774R1 Portable optimisation hints (Timur Doumler)

@jfbastien jfbastien added EWGI Evolution Incubator and removed EWG Evolution labels Oct 15, 2019
@jfbastien
Copy link
Collaborator

jfbastien commented Oct 15, 2019

Let's do EWGI first.

@theres-waldo
Copy link
Collaborator

theres-waldo commented Nov 7, 2019

EWG-I in Belfast

P1774 with [[assume(expr)]] syntax:

SF F N A SA num. attendees
15 5 1 0 0 22

P1774 with std::assume(expr) syntax:

SF F N A SA num. attendees
1 3 4 10 4 22

@theres-waldo theres-waldo added EWG Evolution needs-revision Paper needs changes before it can proceed and removed EWGI Evolution Incubator labels Nov 7, 2019
@wg21bot
Copy link
Collaborator Author

wg21bot commented Dec 11, 2019

P1774R2 Portable assumptions (Timur Doumler)

@wg21bot wg21bot modified the milestones: 2019-11, 2020-02 Dec 11, 2019
@jfbastien jfbastien removed the needs-revision Paper needs changes before it can proceed label Jan 7, 2020
@wg21bot
Copy link
Collaborator Author

wg21bot commented Jan 18, 2020

P1774R3 Portable assumptions (Timur Doumler)

@jfbastien jfbastien added this to Unscheduled in EWG Prague Jan 22, 2020
@jfbastien jfbastien moved this from Unscheduled to Tuesday in EWG Prague Jan 23, 2020
@jfbastien jfbastien moved this from Tuesday to Thursday in EWG Prague Jan 23, 2020
@jfbastien jfbastien moved this from Thursday to Overflow in EWG Prague Feb 11, 2020
@jfbastien jfbastien moved this from Overflow to Thursday in EWG Prague Feb 12, 2020
@jfbastien
Copy link
Collaborator

jfbastien commented Feb 13, 2020

EWG Prague Thursday morning:

We want assumptions now, and independent of future contract facilities.

SF F N A SA
18 5 1 3 3

We like the proposed semantics for assumptions.

SF F N A SA
18 5 4 2 0

We want exploration on a mode which can check assumptions, including side-effects

SF F N A SA
1 0 9 9 5

We like the proposed attribute syntax [[assume(expr)]]

SF F N A SA
9 8 5 5 1

We’d like more exploration on macro assume, like assert

SF F N A SA
0 0 1 10 16

We’d like more exploration on keyword such as one of unsafe_assume / assume / __assume / _Assume / …

SF F N A SA
5 7 9 5 2

We’d like more exploration on magic library function such as std::assume(expr)

SF F N A SA
0 0 0 9 14

@jfbastien jfbastien added the needs-revision Paper needs changes before it can proceed label Feb 13, 2020
@jfbastien jfbastien changed the title P1774 Portable optimisation hints P1774 Portable assumptions Feb 13, 2020
@jensmaurer jensmaurer removed this from the 2020-02 milestone Feb 18, 2020
@wg21bot
Copy link
Collaborator Author

wg21bot commented Nov 26, 2021

P1774R4 Portable assumptions (Timur Doumler)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Nov 26, 2021
@wg21bot wg21bot added this to the 2021-telecon milestone Nov 26, 2021
@erichkeane
Copy link
Collaborator

erichkeane commented Dec 3, 2021

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.

SF F N A SA
0 0 1 12 5

Result: Consensus Against

In D1774R5, we prefer assume’s parameter to be just an “attribute-grammar-conforming token soup”, not an expression.

SF F N A SA
0 0 2 8 6

Result: Consensus Against

Send D1774R5 to electronic polling for forwarding to CWG for inclusion in C++23, in Bucket 2.

SF F N A SA
6 8 5 0 0

Result: Consensus

@jfbastien jfbastien added the CWG Core label Feb 27, 2022
@jfbastien
Copy link
Collaborator

jfbastien commented Feb 27, 2022

2022-02 poll results:

SF F N A SA
14 17 3 4 0
Abstain: 7

Poll outcome: consensus

@jensmaurer jensmaurer added this to Ready for review in CWG Feb 27, 2022
@jensmaurer
Copy link
Member

jensmaurer commented Mar 25, 2022

CWG telecon 2022-03-25: Reviewed with immediate updates; D1774R7 is almost ready.

@jensmaurer jensmaurer added the needs-revision Paper needs changes before it can proceed label Mar 25, 2022
@jensmaurer jensmaurer moved this from Ready for review to Awaiting updated wording in CWG Mar 25, 2022
@erichkeane
Copy link
Collaborator

erichkeane commented Apr 14, 2022

See the result of the April 14th meeting on P2507 for further guidance: #1162

EWG elected to have P2507R1 included in P1774 before inclusion into C++23.

@jensmaurer
Copy link
Member

jensmaurer commented Apr 22, 2022

CWG telecon 2022-04-22: Reviewed D1774R7 (includes P2507R1 change). Remaining outstanding issue is the phrasing of a note.

@jensmaurer
Copy link
Member

jensmaurer commented May 19, 2022

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.

@jensmaurer jensmaurer added EWG Evolution and removed CWG Core needs-revision Paper needs changes before it can proceed labels May 19, 2022
@wg21bot
Copy link
Collaborator Author

wg21bot commented May 24, 2022

P1774R7 Portable assumptions (Timur Doumler)

@erichkeane
Copy link
Collaborator

erichkeane commented May 26, 2022

EWG Re-reviewed P1774R7 in the May 26, 2022 EWG meeting. This discussion ALSO interacted with CWG2538, and discussed clarifications of [dcl.attr]/6

The following polls were taken:

It is EWG's intent that [dcl.attr]/6 permits an implementation to completely ignore a standard attribute.

SF F N A SA
3 4 0 1 4

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

SF F N A SA
2 6 3 0 2

Result: Consensus

For P1774 in particular, permit an implementation to completely ignore [[assume]].

SF F N A SA
4 2 2 4 0

Result: Not Consensus

For P1774 in particular, permit treating attribute [[assume]]'s expression as a 'balanced token sequence' as a conforming implementation.

SF F N A SA
4 2 3 2 1

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.

SF F N A SA
3 3 3 2 1

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.

@erichkeane erichkeane added CWG Core and removed EWG Evolution labels May 26, 2022
@jensmaurer jensmaurer moved this from Awaiting updated wording to Ready for review in CWG May 26, 2022
@cplusplus cplusplus deleted a comment from h-vetinari May 26, 2022
@cplusplus cplusplus deleted a comment from h-vetinari May 26, 2022
@jensmaurer
Copy link
Member

jensmaurer commented Jun 3, 2022

CWG telecon 2022-06-03: Approved D1774R8 for plenary straw poll.

@jensmaurer jensmaurer moved this from Ready for review to Approved for plenary vote in CWG Jun 3, 2022
@jensmaurer jensmaurer added straw-poll Straw poll needs-revision Paper needs changes before it can proceed labels Jun 3, 2022
@wg21bot
Copy link
Collaborator Author

wg21bot commented Jun 24, 2022

P1774R8 Portable assumptions (Timur Doumler)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Jun 24, 2022
@cor3ntin cor3ntin added the plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. label Jul 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C++23 Targeted at C++23 CWG Core plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. straw-poll Straw poll
Projects
CWG
Approved for plenary vote
EWG Prague
Thursday
Development

Successfully merging a pull request may close this issue.

7 participants