cplusplus / papers

ISO/IEC JTC1 SC22 WG21 paper scheduling and management
628 stars 18 forks source link

P1028 R6 SG14 status_code and standard error object #405

Open wg21bot opened 5 years ago

wg21bot commented 5 years ago

P1028R2 SG14 status_code and standard error object for P0709 Zero-overhead deterministic exceptions (Niall Douglas)

tituswinters commented 5 years ago

Discuss on the reflector between meetings, bring to Belfast and prioritize for C++23. SF F N A SA 8 13 7 0 0

ned14 commented 4 years ago

The main guidance needed from LEWG for this paper to progress are clear answers to the following questions:

  1. Should status_code_domain::string_ref be broken out into a standalone paper and library facility on account of being particularly useful? If so, what naming is proposed? Is string_ref remaining char only based acceptable i.e. no basic_string_ref<CharT>?

  2. Is the proposed vtable ABI within status_code_domain acceptable given past experience of vtable ABI constraints?

  3. Is LEWG committed to assuming there will be some form of "move relocation" in C++ 23, even if it is the bare minimum viable support as proposed by P1029? (Note: EWG-I will hear P1029 this Belfast meeting given Arthur's proposal has stalled, it has yet to be seen by EWG)

  4. status_code<erased<T>> is a move-only erased status code, which some people feel strongly negative about. posix_code, win32_code, generic_code etc all provide non-erased trivially copyable status codes. Is there sufficient need for a trivially copyable erased status code that we would instead have status_code<tc_erased<T>> and status_code<mo_erased<T>>? Or should we say that the library is specifically designed to be extended, and extending it with trivially copyable erased status codes is too trivially easy to be worth doing? (Note: my opinion on this depends on the answer to Q3)

wg21bot commented 4 years ago

P1028R3 SG14 status_code and standard error object (Niall Douglas)

brycelelbach commented 4 years ago

Prague 2020-02 LEWG Minutes

P1028R3 std::status_code and std::result<T>

Chair: Bryce Adelstein Lelbach

Champion: Niall Douglas

Minute Taker: Thomas Köppe

Start Review: 2020-02-13 13:59

Examples: Yes, in paper.

Implementation experience: Yes, in paper.

Usage experience: Yes, in paper.

Wording: No.

At Cologne 2019, LEWG voted to discuss this paper on the reflector, then bring it to Belfast and prioritize it for C++23.

Things in this paper:

We need to scope this discussion.

Suggested scope for today:

Start with examples on Page 3/Page 4?

Big questions:

Comparison with error_code: Slide 4.

Add table comparing error_code and status_code.

Alternatives to status_code_domain being distinguishable (for comparisons) by a user-provided unique integer:

POLL: We are okay with status_code_domain being distinguishable (for comparisons) by a user-provided unique integer.

Strongly For Weakly For Neutral Weakly Against Strongly Against
1 6 9 1 1

Attendance: 32

# of Authors: 1

Author Position: F

That has weak consensus.

Please explore the alternatives in a future revision.

status_code_domain destructor:

If this is all made consteval, can we evolve the vtable in the future?

POLL: We must be able to add new dynamically dispatched methods to status_code_domain after we ship it.

Strongly For Weakly For Neutral Weakly Against Strongly Against
0 0 3 10 4

Attendance: 29

# of Authors: 1

Author Position: SA

That has unanimous consensus against.

Open questions:

End: 15:45

__CONSENSUS: Bring a revision of P1028R3 (std::status_code), with the guidance below, to LEWG for further review.__

brycelelbach commented 3 years ago

P2170R0 (Feedback on implementing the proposed std::error type, #879) should be seen the next time this paper is seen.

ned14 commented 3 years ago

May I suggest that SG14 ought to process P2170 and suggest what it feels appropriate ought to be merged into P1028? P1028's design came from SG14 originally, that was a design ticking all the concerns from http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0824r1.html.

For my ha'pennies worth, there are parts of P2170 which SG14 actively discussed and proactively rejected; there are other parts of P2170 where people were on the fence; and there are still other parts of P2170 where hitherto, the value add of providing those facilities wasn't felt to be sufficient, but perhaps in the light of P2170, and more empirical experience since gained, that perhaps some of the P2170 extensions ought to be merged.

BTW I don't expect another revision of P1028 until F2F meetings resume next year. Lack of bandwidth due to stuck at home unable to travel more than 5km. However between now and then a round at SG14 with P0824's authors is certainly doable.

wg21bot commented 1 year ago

P1028R4 SG14 status_code and standard error object (Niall Douglas)

ned14 commented 1 year ago

Errata on P1028R4 so I don't forget for R5:

Not sure how I missed those when I made R4, I'm going to blame the usual causes of tiredness and/or lack of coffee.

ned14 commented 1 year ago

Chapter 4.17 code example does not compile.

std::erased<T> stomps over an important name in std

ben-craig commented 1 year ago

2023-02-07 13:00 to 15:15 Issaquah Library Evolution Meeting

P1028R4: std::status_code and std::result

2023-02-07 13:00 to 15:15 UTC-8 Issaquah Library Evolution Minutes

Champion: Niall Douglas

Chair: Ben Craig

Minute Taker: Steve Downey

Start: 2023-02-07 13:00 UTC-8

Does this paper have:

End: 14:05

Summary

POLL: We are happy with the current high level design, and encourage Niall to provide wording for further LEWG review.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
18 8 0 1 0

Attendance: 21 local, 13 remote

# of Authors: 1

Author Position: SF

Outcome: Strong consensus

WA: Design is pretty good, not sure I'm sold on the feature

Action Items: desire for alternative to std::erased name

Next Steps

Provide wording so that LEWG can do a wording review.

brycelelbach commented 1 year ago

When this is next discussed, P2170 (#879) should also be reviewed.

ned14 commented 1 year ago

I thought we discussed P2170 at Issaquah and the room felt my summary of it in R4 was reasonable? SG14 discussed everything in P2170 long ago, where it deviates the design in P1028 doesn't do what P2170 wants for good reasons, all of which I listed both in R4 and in the room at Issaquah.

P1028R5 does make the unique id type for code domains implementer chosen, as enough people kept raising it it was easier to just turn that on rather than keep explaining the statistics about how big 64 bit spaces really are repeatedly.

brycelelbach commented 1 year ago

I don't recall inviting the author of P2170 to present; I'd like to allow them to have their day in court, even if we've already discussed the paper.

ned14 commented 1 year ago

Oh they're turning up to present? Cool. More the merrier.

wg21bot commented 1 year ago

P1028R5 SG14 status_code and standard error object (Niall Douglas)

inbal2l commented 9 months ago

Library Evolution Meeting Kona 2023-11-09

P2845R4: SG14 Status_code and standard error object

2023-11-09 Library Evolution Kona 2023 Meeting Minutes

Chair: Billy Baker / Nevin Liber Champion: Niall Douglas Minute Taker: Ben Craig

Summary

The authors got directions to explore. The paper requires more discussion time, no polls were taken.

Next Steps

The paper requires more discussion time and will be scheduled for LEWG telecon/Japan meeting (depending on the availability of the authors).

wg21bot commented 8 months ago

P1028R6 SG14 status_code and standard error object (Niall Douglas)