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

P1944 Add Constexpr Modifiers to Functions in cstring and cwchar Headers #730

Closed
wg21bot opened this issue Jan 18, 2020 · 9 comments
Closed
Labels
B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e constexpr IS Ship vehicle: IS LEWG Library Evolution needs-revision Paper needs changes before it can proceed size - small paper size estimate

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Jan 18, 2020

P1944R0 Add Constexpr Modifiers to Functions in cstring and cwchar Headers (Daniil Goncharov, Antony Polukhin)

@wg21bot wg21bot added LEWG Library Evolution LEWGI Library Evolution Incubator LWG Library labels Jan 18, 2020
@wg21bot wg21bot added this to the 2020-02 milestone Jan 18, 2020
@jensmaurer jensmaurer removed the LWG Library label Jan 18, 2020
@brycelelbach brycelelbach removed the LEWG Library Evolution label Feb 8, 2020
@brycelelbach
Copy link

Prague 2020-02 LEWGI Minutes

P1944R0 constexpr <cstring> and <cwchar>: Direction Review

Chair: Fabio Fracassi

Champion: Antony Polukhin

Minute Taker: Ben Craig

Start Review: 2020-02-13 09:16

Changing the definition of <cstuff> from namespace std { using ::stuff; } to defining our own version in <cstuff>

Start Polling: 09:28

POLL: We think this is important enough that we want to spend more time on this problem.

Strongly For Weakly For Neutral Weakly Against Strongly Against
8 6 1 1 0

Attendance: 19

# of Authors: 1

Author Position: SF

A: I don't think we should be using C interfaces like this.

That has strong consensus.

POLL: We want to add std::strtok(char*, char*, char**).

Strongly For Weakly For Neutral Weakly Against Strongly Against
2 4 5 4 0

Attendance: 19

# of Authors: 1

Author Position: N

That has no consensus.

Find the prior discussions on adding constexpr to <cstuff> headers, consult implementors, and add what you learn to the next revision.

Consult SG16 on this paper regarding locales.

End: 09:36

CONSENSUS: Bring a revision of P1944R0 (constexpr <cstring> and <cwchar>), with the guidance below, to LEWGI for further design review.

  • Remove std::strtok(char*, char*, char**).
  • Find the prior discussions on adding constexpr to <cstuff> headers, consult implementors, and add what you learn to the next revision.
  • Consult SG16 on this paper regarding locales.

@brycelelbach brycelelbach added the needs-revision Paper needs changes before it can proceed label Feb 18, 2020
@jensmaurer jensmaurer removed this from the 2020-02 milestone Feb 18, 2020
@wg21bot
Copy link
Collaborator Author

wg21bot commented Jun 17, 2020

P1944R1 Add Constexpr Modifiers to Functions in cstring and cwchar Headers (Daniil Goncharov, Antony Polukhin)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Jun 17, 2020
@wg21bot wg21bot added this to the 2020-telecon milestone Jun 17, 2020
@brycelelbach brycelelbach added LEWG Library Evolution B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e IS Ship vehicle: IS ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list and removed LEWGI Library Evolution Incubator labels Aug 25, 2020
@cor3ntin cor3ntin added needs-revision Paper needs changes before it can proceed and removed ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list labels Oct 20, 2020
@cor3ntin
Copy link

cor3ntin commented Oct 20, 2020

Mailing list review 5-19 October 2020

  • We want to see at least one implementation in a standard library

  • The paper should mention of <string.h> and <wchar.h>

  • Do we need all of these functions? Is our time not better spent on improving higher level facilities? Some of these higher level facilities may need these C functions

  • Author note that some of these functions are constant evaluated in clang https://releases.llvm.org/5.0.1/tools/clang/docs/LanguageExtensions.html#string-builtins - ditto for GCC but there are corner cases where it doesn't work

  • This proposal for some implementations requires changing either the lib c or the compiler

  • There is a requirement that &std::strlen == &::strlen

  • Why do we have this requirement - can wee change it ? (Note from myself: SD-8 forbids observing the address of standard names) - some functions like memchr already deal with this problem

  • This proposal is more work than assumed by the paper. If we do it we should know it will require some implementer work

Guidance: Implement the paper in a standard library / compiler, taking into account that the implementation may not be able to change the C headers. Talks to implementers on the best way to proceed

@brycelelbach
Copy link

Re-adding the mailing-list review tag so that this will automatically be triaged when a new revision comes: mailing list review managers, here are some saved queries that filter out things that are needs-revision, etc.

@brycelelbach brycelelbach added the ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list label Oct 20, 2020
@cor3ntin
Copy link

cor3ntin commented Oct 21, 2020 via email

@brycelelbach
Copy link

brycelelbach commented Oct 21, 2020 via email

@cor3ntin
Copy link

cor3ntin commented Oct 21, 2020 via email

@brycelelbach brycelelbach added ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting and removed ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list labels Oct 21, 2020
@brycelelbach
Copy link

Thy will be done.

@jensmaurer jensmaurer removed this from the 2020-telecon milestone Dec 27, 2020
@brycelelbach brycelelbach added constexpr size - small paper size estimate and removed ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting labels May 24, 2023
@brycelelbach
Copy link

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

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 constexpr IS Ship vehicle: IS LEWG Library Evolution needs-revision Paper needs changes before it can proceed size - small paper size estimate
Projects
No open projects
Development

No branches or pull requests

4 participants