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

P2551 Clarify intent of P1841 numeric traits #1211

Open
wg21bot opened this issue Feb 22, 2022 · 5 comments
Open

P2551 Clarify intent of P1841 numeric traits #1211

wg21bot opened this issue Feb 22, 2022 · 5 comments
Labels
B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e C++26 Targeted at C++26 IS Ship vehicle: IS LWG Library lwg-pending LWG Chair needs to disposition size - medium paper size estimate
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Feb 22, 2022

P2551R0 Clarify intent of P1841 numeric traits (Matthias Kretz, Jonathan Wakely)

@wg21bot wg21bot added the LEWG Library Evolution label Feb 22, 2022
@wg21bot wg21bot added this to the 2022-telecon milestone Feb 22, 2022
@cor3ntin cor3ntin added the C++23 Targeted at C++23 label Feb 22, 2022
@brycelelbach brycelelbach added IS Ship vehicle: IS B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e size - medium paper size estimate ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting needs-revision Paper needs changes before it can proceed labels Apr 1, 2022
@billy-baker
Copy link
Collaborator

billy-baker commented Apr 12, 2022

2022-03-29 Library Evolution Telecon

P2551R0: Clarify intent of P1841 numeric traits

2022-03-29 Library Evolution Telecon Minutes

Chair: Billy Baker

Champion: Matthias Kretz

Minute Taker: Ben Craig

Poll: Numeric traits can deviate from numeric_limits.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
13 8 0 0 0

Attendance: 33

# of Authors: P2551: 1

Author Position: P2551: SF, P1841/P0437: no vote

Outcome: Consensus to allow deviation of numeric traits from numeric_limits.

P1841/P0437 author: did not vote, bad poll, contradicts original design of P0437

Poll: Numeric traits should be based on representation rather than behavior (ignoring reciprocal_overflow_threshold).

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
7 5 2 0 0

Attendance: 34

# of Authors: P2551: 1

Author Position: P2551: SF, P1841/P0437: no vote

Outcome: Consensus in favor of basing on representation rather than behavior.

Poll: All numeric traits for bool should be disabled.

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

Attendance: 33

# of Authors: P2551: 1

Author Position: P2551: SF, P1841/P0437: no vote

Outcome: Consensus to disable bool for numeric traits.

Poll: The numeric traits that are not meaningful for numeric_limits (denorm_min, epsilon, etc) should be disabled for integral types.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
14 3 0 0 0

Attendance: 33

# of Authors: 1

Author Position: P2551: SF, P1841/P0437: no vote

Outcome: Consensus in favor of disabling traits that are not meaningful for integral types.

Poll: max_digits10 should deviate from numeric_limits and yields digits10_v + 1.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
6 5 2 0 0

Attendance: 34

# of Authors: P2551: 1

Author Position: P2551: SF, P1841/P0437: no vote

Outcome: Consensus in favor of max_digits10 deviating from the numeric_limits value.

Summary

These polls cover part of the questions in P2551 Clarify intent of P1841 numeric traits. The paper will need additional time for the questions related to reciprocal_overflow_threshold. There was consensus for deviating from numeric_limits. A user will have to make the decision to replace <limits>/numeric_limits usage with <numbers>/numeric traits. The possibility of ABI issues with floating point was mentioned as an already existing possibility. Deviation does mean that it may not be possible to excise numeric_limits in the future as P0437 Numeric Traits for the Standard Library suggested.

Next Steps

Update the paper to make the aforementioned changes and return to Library Evolution for further design review.

@wg21bot
Copy link
Collaborator Author

wg21bot commented May 24, 2022

P2551R1 Clarify intent of P1841 numeric traits (Matthias Kretz, Jonathan Wakely)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label May 24, 2022
@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 Jun 1, 2022
@brycelelbach
Copy link

brycelelbach commented Jun 19, 2022

2022-06-07 Library Evolution Telecon

P2551R1: Clarify intent of P1841 numeric traits

2022-06-07 Library Evolution Telecon Minutes

Chair: Bryce Adelstein Lelbach

Minute Taker: Ben Craig

Champion: Matthias Kretz

Start: 2022-06-07 11:10 Eastern

POLL: Remove reciprocal_overflow_threshold from P1841.

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

Attendance: 22

# of Authors: 1

Author Position: SF

Outcome: Strong consensus in favor.

End: 11:20

Summary

We discussed reciprocal_overflow_threshold from P1841R3 (Individually Specializable Numeric Traits).
Since the actual reciprocal overflow threshold depends on runtime state, we’re not sure who would/should use a compile-time constant.
Library Evolution agreed that we should remove it from P1841R3.

Next Steps

Take an electronic poll to confirm the following changes to P1841 (Individually Specializable Numeric Traits) and return it to Library for C++23 classified as B3:

  • Allow deviation of new individually specializable numeric traits from numeric_limits.
  • Base new individually specializable numeric traits on representation rather than behavior.
  • Disable bool for new individually specializable numeric traits.
  • Disable the new individually specializable numeric traits for integral types when they are not meaningful (denorm_min, epsilon, etc).
  • max_digits10 should deviate from numeric_limits and yield digits10_v + 1.
  • Remove reciprocal_overflow_threshold.

@brycelelbach brycelelbach added ready-for-library-evolution-electronic-poll This paper needs to undergo a Library Evolution electronic poll needs-revision Paper needs changes before it can proceed and removed ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Jun 19, 2022
@wg21bot
Copy link
Collaborator Author

wg21bot commented Jun 24, 2022

P2551R2 Clarify intent of P1841 numeric traits (Matthias Kretz, Jonathan Wakely)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Jun 24, 2022
@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 Jun 29, 2022
@brycelelbach brycelelbach added LWG Library lwg-pending LWG Chair needs to disposition labels Jul 8, 2022
@brycelelbach
Copy link

2022-07 Library Evolution Electronic Poll Outcomes

Poll 1.11: Send [P2551R2] Clarify Intent Of Individually Specializable Numeric Traits to Library Working Group for C++23, classified as an addition ([P0592R4] bucket 3 item).

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
12 8 0 0 0

Outcome: Unanimous consensus in favor.

@brycelelbach brycelelbach 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 Jul 22, 2022
@jensmaurer jensmaurer modified the milestones: 2022-telecon, 2023-02 Jan 25, 2023
@JeffGarland JeffGarland removed the C++23 Targeted at C++23 label Feb 9, 2023
@JeffGarland JeffGarland added the C++26 Targeted at C++26 label Feb 9, 2023
@jensmaurer jensmaurer modified the milestones: 2023-02, 2023-telecon Mar 31, 2023
@jensmaurer jensmaurer modified the milestones: 2023-telecon, 2024-telecon Mar 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e C++26 Targeted at C++26 IS Ship vehicle: IS LWG Library lwg-pending LWG Chair needs to disposition size - medium paper size estimate
Projects
None yet
Development

No branches or pull requests

6 participants