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

P2198 Freestanding Feature-Test Macros and Implementation-Defined Extensions #1070

Closed
wg21bot opened this issue Jul 30, 2021 · 11 comments · Fixed by cplusplus/draft#6355
Closed
Labels
C++26 Targeted at C++26 expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. freestanding Papers that affect the freestanding subset IS Ship vehicle: IS LWG Library plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. SG10 Feature testing
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Jul 30, 2021

P2198R0 Freestanding Feature-Test Macros and Implementation-Defined Extensions (Ben Craig)

@wg21bot wg21bot added the LEWG Library Evolution label Jul 30, 2021
@wg21bot wg21bot added this to the 2021-telecon milestone Jul 30, 2021
@jensmaurer jensmaurer added the SG10 Feature testing label Jul 30, 2021
@wg21bot
Copy link
Collaborator Author

wg21bot commented Jul 30, 2021

P2198R1 Freestanding Feature-Test Macros and Implementation-Defined Extensions (Ben Craig)

@wg21bot
Copy link
Collaborator Author

wg21bot commented Jul 30, 2021

P2198R2 Freestanding Feature-Test Macros and Implementation-Defined Extensions (Ben Craig)

@inbal2l inbal2l added the ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting label Jul 31, 2021
@brycelelbach brycelelbach added IS Ship vehicle: IS freestanding Papers that affect the freestanding subset size - medium paper size estimate C++23 Targeted at C++23 ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list and removed ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting labels Aug 1, 2021
@brycelelbach brycelelbach added C++26 Targeted at C++26 and removed C++23 Targeted at C++23 labels Sep 17, 2021
@brycelelbach brycelelbach added C++23 Targeted at C++23 ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting and removed C++26 Targeted at C++26 ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list labels Nov 3, 2021
@brycelelbach brycelelbach added the scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review label Nov 10, 2021
@wg21bot
Copy link
Collaborator Author

wg21bot commented Nov 26, 2021

P2198R3 Freestanding Feature-Test Macros and Implementation-Defined Extensions (Ben Craig)

@brycelelbach brycelelbach added ready-for-library-evolution-electronic-poll This paper needs to undergo a Library Evolution electronic poll and removed scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Nov 29, 2021
@brycelelbach
Copy link

2021-11-29 Library Evolution Telecon

P2198R3: Freestanding Feature-Test Macros and Implementation-Defined Extensions

2021-11-29 Library Evolution Telecon Minutes

Chair: Bryce Adelstein Lelbach

Champion: Ben Craig

Minute Taker: Inbal Levi

Start: 2021-11-29 11:56 Pacific

Does this proposal have:

  • Examples?
    • Yes.
  • Implementation experience?
    • No.
  • Usage experience?
    • No.
  • Deployment experience?
    • No.
  • Discussion of prior art?
    • Yes.
  • Changes Library Evolution previously requested?
    • Yes.
  • Wording?
    • Yes.
  • Feature test macro?
    • Yes (lol).

What's in this paper:

  • Fixes old feature test macros
  • Bumps old feature test macros
  • Adds new per-header feature test macros
  • Proposes feature test macro policy
  • Allows impls to provide extra stuff
  • Allows impls to =delete extra stuff

Open Questions:

  • Do we want per-header freestanding feature test macros?
    • Why were we previously split on this?

If the C++20 feature macro covers things that are freestanding in C++20, then we don't need to bump the macros. If they were not freestanding in C++20, then they need to be bumped.

Instead of introducing new feature test macros, why not have a feature test macro that says "my feature test macros don't lie"? Then if that's true, you could use the regular feature test macros.

Topics to Polls:

  • Add __cpp_lib_freestanding_* per-header feature test macros from P2198R3.
  • Adopt the proposed feature test macro policy from P2198R3.
    • Has the Feature Test Macro study group (SG10) discussed this? Not yet, they were informed of this last year and haven't had a chance to look at it.

POLL: Adopt the proposed freestanding feature test macro policy from P2198R3 (to be confirmed with a Library Evolution electronic poll).

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
1 6 3 0 0

Attendance: 18

# of Authors: 1

Author Position: SF

Outcome: Weak consensus in favor.

Summary

While this is the first time Library Evolution has reviewed P2198, the paper is a continuation of P1642, and deals with the topic of feature testing macros for freestanding.

P2198 does the following:

  • Fixes old feature test macros for freestanding.
  • Bumps old feature test macros for freestanding.
  • Adds new per-header freestanding feature test macros.
  • Proposes freestanding feature test macro policy.
  • Allows implementations to provide extra facilities in freestanding.
  • Allows implementations to = delete extra stuff.

Much of our discussion revolved around the proposed bumps of old feature test macros. We determined that some of the proposed bumps were unnecessary, because they were for features that were already freestanding in C++20.

It was suggested that instead of bumping old feature test macros, we could add a new "does not lie in freestanding mode" feature test macro which, if true, indicates that the other feature test macros give the correct answers in freestanding mode.

We also discussed the proposed policy for freestanding feature test macros. We had consensus to adopt the policy, pending confirmation via electronic poll.

Outcome

Bring a revision of P2198R3 (Freestanding Feature-Test Macros and Implementation-Defined Extensions) that explores a "does not lie in freestanding mode" feature test macro to Library Evolution for further design review.

Adopt the proposed freestanding feature test macro policy from P2198R3 (to be confirmed with a Library Evolution electronic poll).

@brycelelbach brycelelbach added the scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review label Dec 6, 2021
@cor3ntin cor3ntin added scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review and removed scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Dec 7, 2021
@JeffGarland JeffGarland added the LWG Library label Dec 13, 2021
@wg21bot
Copy link
Collaborator Author

wg21bot commented Dec 18, 2021

P2198R4 Freestanding Feature-Test Macros and Implementation-Defined Extensions (Ben Craig)

@brycelelbach brycelelbach added C++26 Targeted at C++26 and removed scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Dec 22, 2021
@brycelelbach brycelelbach added scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review and removed ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting labels Dec 22, 2021
@jensmaurer jensmaurer modified the milestones: 2021-telecon, 2022-telecon Jan 1, 2022
@cor3ntin cor3ntin removed LEWG Library Evolution ready-for-library-evolution-electronic-poll This paper needs to undergo a Library Evolution electronic poll scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Jan 16, 2022
@cor3ntin
Copy link

cor3ntin commented Jan 16, 2022

2021-12 Library Evolution Electronic Poll Outcomes

POLL: Adopt the freestanding feature test macro policy from [P2198R3] (Freestanding Feature-Test Macros And Implementation-Defined Extensions C++23).

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
8 10 1 2 2

Consensus in favor, forwarded to LWG

@cor3ntin cor3ntin added C++23 Targeted at C++23 and removed C++26 Targeted at C++26 labels Jan 16, 2022
@brycelelbach brycelelbach added the expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. label Feb 23, 2022
@wg21bot
Copy link
Collaborator Author

wg21bot commented Apr 25, 2022

P2198R5 Freestanding Feature-Test Macros and Implementation-Defined Extensions (Ben Craig)

@JeffGarland JeffGarland added C++26 Targeted at C++26 lwg-pending LWG Chair needs to disposition and removed C++23 Targeted at C++23 labels Jul 4, 2022
@JeffGarland
Copy link
Member

Author is not available to support updates and review in time remaining for c++23 -- re-targeting to c++26.

@jwakely
Copy link
Member

jwakely commented Dec 14, 2022

LWG reviewed P2198R7 today. https://wiki.edg.com/bin/view/Wg21telecons2022/P2198-20221214

Poll: Forward P2198R7 for C++26, at some future plenary.

F N A
8 0 0

@jwakely jwakely removed the lwg-pending LWG Chair needs to disposition label Dec 14, 2022
@JeffGarland JeffGarland added lwg-future-plenary ready to go to plenary but working draft isn't open so we are waiting and removed size - medium paper size estimate labels Dec 14, 2022
@wg21bot
Copy link
Collaborator Author

wg21bot commented Jan 16, 2023

P2198R6 Freestanding Feature-Test Macros and Implementation-Defined Extensions (Ben Craig)

@wg21bot
Copy link
Collaborator Author

wg21bot commented Jan 16, 2023

P2198R7 Freestanding Feature-Test Macros and Implementation-Defined Extensions (Ben Craig)

@JeffGarland JeffGarland added the tentatively-ready-for-plenary Reviewed between meetings; ready for a vote. label May 23, 2023
@JeffGarland JeffGarland removed the lwg-future-plenary ready to go to plenary but working draft isn't open so we are waiting label Jun 11, 2023
@cor3ntin cor3ntin added plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. and removed tentatively-ready-for-plenary Reviewed between meetings; ready for a vote. labels Jun 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C++26 Targeted at C++26 expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. freestanding Papers that affect the freestanding subset IS Ship vehicle: IS LWG Library plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. SG10 Feature testing
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants