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

P1935 A C++ Approach to Physical Units #681

Closed
wg21bot opened this issue Oct 27, 2019 · 9 comments
Closed

P1935 A C++ Approach to Physical Units #681

wg21bot opened this issue Oct 27, 2019 · 9 comments
Labels
B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 needs-revision Paper needs changes before it can proceed numerics-ts-1 SG6 Numerics size - huge paper size estimate, biggest size TS Ship vehicle: TS

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Oct 27, 2019

P1935R0 A C++ Approach to Physical Units (Mateusz Pusz)

@wg21bot wg21bot added LEWG Library Evolution SG6 Numerics labels Oct 27, 2019
@wg21bot wg21bot added this to the 2019-11 milestone Oct 27, 2019
@tahonermann tahonermann added the SG16 Text processing label Oct 28, 2019
@tahonermann
Copy link
Collaborator

SG16 plans to review this paper in Belfast with a specific focus on text formatting and if/how Unicode characters not in the basic source character set can be used as unit symbols.

@FabioFracassi FabioFracassi added the C++23 Targeted at C++23 label Oct 30, 2019
@FabioFracassi FabioFracassi added this to If time allows in LEWGBelfast2019 Oct 30, 2019
@FabioFracassi FabioFracassi moved this from If time allows to Wednesday Afternoon in LEWGBelfast2019 Oct 30, 2019
@brycelelbach brycelelbach added info Informational paper LEWGI Library Evolution Incubator and removed info Informational paper C++23 Targeted at C++23 LEWG Library Evolution labels Nov 6, 2019
@brycelelbach
Copy link

Belfast 2019-11 LEWGI Minutes

P1935R0 Units Library Rationale: Direction Review

Chair: Bryce Adelstein Lelbach

Champion: Mateusz Pusz

Minute Taker: Marco Foco

Start Review: 11-07 8:41

std::chrono is a good litmus test for this feature, as it's an existing part of the library that has a notion of units.

Design goals starting on slide 10.

Priorities: safety > performance > ease of use

POLL: Quantity kind (width, height, etc) should be a priority for the initial release of this feature.

Strongly For Weakly For Neutral Weakly Against Strongly Against
2 0 7 7 3

Attendance: 19

# of Authors: 1

Author Position: A

That has consensus against.

POLL: We should promise more committee time to pursuing adding common units (such as SI, customary, etc) to the standard library, knowing that our time is scarce and this will leave less time for other work.

Strongly For Weakly For Neutral Weakly Against Strongly Against
11 7 4 2 0

Attendance: 23

# of Authors: 1

Author Position: SF

A: I think only SI will have too small of an audience; I want something extensible.

That has consensus.

POLL: We should promise more committee time to pursuing a standard library framework for user defined units and unit systems, knowing that our time is scarce and this will leave less time for other work.

Strongly For Weakly For Neutral Weakly Against Strongly Against
10 8 4 1 1

Attendance: 24

# of Authors: 1

Author Position: SF

A: Afraid the audience that needs this is too small.

SA: Currency is over my dead body.

That has consensus.

POLL: In a C++ standard units framework, C++ conversions should not vary over runtime.

Strongly For Weakly For Neutral Weakly Against Strongly Against
8 8 2 3 0

Attendance: 23

# of Authors: 1

Author Position: SF

POLL: We should plan for versioning of standard library physical constants.

Strongly For Weakly For Neutral Weakly Against Strongly Against
6 11 3 0 0

Attendance: 23

# of Authors: 0

That has unanimous consent.

POLL: Compile time diagnostics are a Quality-of-Implementation (QOI) matter and should not influence the standard units library API.

Strongly For Weakly For Neutral Weakly Against Strongly Against
8 3 2 6 3

Attendance: 23

# of Authors: 1

Authors Position: SA

That has no consensus.

Lunch: 12:00

Resume: 13:35

Minute Taker: Ben Craig

POLL: A standard library of quantity concepts are a priority for the initial release of a standard library units framework.

Strongly For Weakly For Neutral Weakly Against Strongly Against
1 5 10 5 0

Attendance: 21

# of Authors: 1

Author Position: SF

A: I voted against because I don't think they should be a priority.

A: I voted against because of compile-time concerns.

That has no consensus.

POLL: We should promise more committee time to pursuing P1935R0 (A C++ Approach to Physical Units), knowing that our time is scarce and this will leave less time for other work.

Strongly For Weakly For Neutral Weakly Against Strongly Against
4 7 6 4 1

Attendance: 23

# of Authors: 1

Author Position: SF

SA: Existing practice seems unsettled, unclear but very large scope, worried it obscures precision from my developers, concerns about how it interacts with vectors and matrices.

End: 15:30

CONSENSUS: Bring a revision of P1935R0 (A C++ Approach to Physical Units), with the guidance below, to LEWGI and SG6 for further direction review.

  • Remove the proposed standard library quantity concepts.
  • Write a separate paper exploring using rational as a CNTTP.
  • Explore approaches for versioning standard library physical constants:
    • Version namespaces.
    • Add the version to the identifiers.
    • Template variables parameterized by a tag.
    • WEB's approach (see minutes).

@brycelelbach brycelelbach added the needs-revision Paper needs changes before it can proceed label Nov 8, 2019
@wg21bot
Copy link
Collaborator Author

wg21bot commented Dec 11, 2019

P1935R1 A C++ Approach to Physical Units (Mateusz Pusz)

@wg21bot wg21bot modified the milestones: 2019-11, 2020-02 Dec 11, 2019
@wg21bot
Copy link
Collaborator Author

wg21bot commented Jan 18, 2020

P1935R2 A C++ Approach to Physical Units (Mateusz Pusz)

@jensmaurer jensmaurer removed the needs-revision Paper needs changes before it can proceed label Jan 21, 2020
@Cpp-Lisa
Copy link
Collaborator

Design guidance provided in SG6 on Monday in Prague.

@brycelelbach
Copy link

Prague 2020-02 LEWGI Minutes

P1935R3 Physical Units Library: Direction Review

Chair: Bryce Adelstein Lelbach

Champion: Mateusz Pusz

Minute Taker: Ben Craig

Start Review: 2020-02-11 16:00

Design decisions that need to be made:

  • How do we create quantities?
  • Chrono-like vs constants

Please don't use the term "tony table" in your slides. It's an insider term that has no meaning to new people. Call them "before/after tables"

Prefer named function to explicit constructor to avoid unintentional mismatches.

km, etc could be a constant, but not associated with any value, and thus not with any type. It could have some special type that could be multiplied with values.

POLL: Knowing what we know right now, the design for standard library units must be consistent with std::chrono's interface idioms.

Strongly For Weakly For Neutral Weakly Against Strongly Against
0 0 2 14 6

Attendance: 21

# of Authors: 1

Author Position: A

Vincent Reverdy presented his plans for P1930.

End: 17:21

CONSENSUS: Everyone who has a vision for how standard library physical units should collaborate in between meetings and bring either:

  • A unified paper from all of you.
  • Papers from subsets of you explaining your vision.

Ryan McDougall will chair the inter-meeting discussions of physical units.

@tahonermann
Copy link
Collaborator

SG16 discussed a draft of P1935R1 in Belfast; minutes available here. The following polls were taken:

Poll: We want non-deleted ostream inserters for physical unit types in D1935R1?
Attendance: 8

SF F N A SA
1 3 1 2 1

That does not have consensus.

Poll: We want std::format support for physical unit types in D1935R1?
Attendance: 7

SF F N A SA
5 1 0 1 0

That has consensus.

A: Should provide both std::format and ostream inserters or neither.

Poll: Do we want to support localization in D1935R1?
Attendance: 7

SF F N A SA
2 2 2 0 1

That has consensus.

SA: Round tripping is important, localization is better handled outside of the standard.

Poll: For D1935R1, Localization should be provided via std::locale?
Attendance: 7

SF F N A SA
0 1 3 1 2

That does not have consensus.

SA: We need a better solution than std::locale.
F: std::locale is all we got, man!

Poll: For D1935R1, it is ok to provide ostream inserters that are not locale sensitive?
Attendance: 7

SF F N A SA
4 1 0 1 1

That has consensus.
SA: If we have localization support in std::format, then we should have it in ostream support as well.

@tahonermann
Copy link
Collaborator

Removing the SG16 label as recent revisions appear to be inline with previous SG16 guidance. I trust that the LEWG chair will involve SG16 if relevant concerns arise. In particular, SG16 should be consulted if new revisions introduce localization support or the ability to stream/format unit suffixes that contain characters from outside the basic source character set.

@tahonermann tahonermann removed the SG16 Text processing label Jul 12, 2020
@brycelelbach brycelelbach added LEWG Library Evolution B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 TS Ship vehicle: TS numerics-ts-1 and removed LEWGI Library Evolution Incubator labels Aug 25, 2020
@brycelelbach brycelelbach added the ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list label Aug 25, 2020
@brycelelbach brycelelbach added the needs-revision Paper needs changes before it can proceed label Oct 20, 2020
@jensmaurer jensmaurer modified the milestones: 2020-02, 2021-telecon Dec 28, 2020
@jensmaurer jensmaurer removed this from the 2021-telecon milestone Nov 12, 2021
@brycelelbach brycelelbach removed the LEWG Library Evolution label May 24, 2023
@brycelelbach
Copy link

Closing due to more than 1 year of inactivity. Please re-open if further work is expected.

@brycelelbach brycelelbach added size - huge paper size estimate, biggest size and removed ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list labels May 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 needs-revision Paper needs changes before it can proceed numerics-ts-1 SG6 Numerics size - huge paper size estimate, biggest size TS Ship vehicle: TS
Projects
No open projects
LEWGBelfast2019
Wednesday Afternoon (NB comment buffe...
Development

No branches or pull requests

6 participants