cplusplus / nbballot

Handling of NB comments in response to ballots
14 stars 4 forks source link

GB-084 19.5.2 [system.error.syn] Deprecate std::errc constants related to UNIX STREAMS #444

Closed wg21bot closed 1 year ago

wg21bot commented 1 year ago

The error numbers ENODATA, ENOSR, ENOSTR and ETIME are all marked "obsolecent" in POSIX 2017 (the current normative reference for C++) and they are absent in the current POSIX 202x draft. They related to the obsolete STREAMS API, which was optional and not required for conformance to the previous POSIX standard (because popular unix-like systems refused to implement it). C++11 added those error numbers to <errno.h> and also defined corresponding errc enumerators: errc::no_message_available, errc::no_stream_resources, errc::not_a_stream and errc::stream_timeout.

Given the obsolescent status of those constants in the current normative reference and their absence from the next POSIX standard, WG21 should consider deprecating them now. A deprecation period will allow removing them when C++ is eventually rebased to a new POSIX standard. Otherwise C++ will be left with dangling references to ENODATA, ENOSR, ENOSTR and ETIME that are not defined in the POSIX reference.

After a period of deprecation they can be removed from Annex D, and the names added to [zombie.names] so that implementations can continue to define them if they need to.

Move the four <errno.h> error numbers and the corresponding four errc enumerators to Annex D.

brycelelbach commented 1 year ago

2022-11-08 15:15 to 17:00 UTC-10 Kona Library Evolution Meeting

GB-084: Deprecate errc constants related to UNIX STREAMS

2022-11-08 15:15 to 17:00 UTC-10 Kona Library Evolution Minutes

Champion: Jonathan Wakely (remote)

Chair: Bryce Adelstein Lelbach & Billy Baker

Minute Taker: Mark Zeren

Start: 2022-11-08 15:24 UTC-10

POLL: Send the proposed resolution to GB-084 (Deprecate errc constants related to UNIX STREAMS) to Library for C++23, to be confirmed by a Library Evolution electronic poll.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
5 10 4 0 1

Attendance: 19 (in-person) + 4 (remote)

# of Authors: 1

Author Position: SF

Outcome: Consensus in favor.

SA: I'm worried about the implications for the use of error_condition. I'd like to see a paper exploring this.

End: 15:34

Next Steps

Take a Library Evolution electronic poll to send the proposed resolution to GB-084 (deprecate errc constants related to UNIX STREAMS) to Library for C++23.

brycelelbach commented 1 year ago

2022-11 Library Evolution Electronic Poll Outcomes

Poll 1.21: Send the proposed resolution to C++23 National Body comment GB-084 Deprecate errc Constants Related To UNIX STREAMS to Library Working Group for C++23, classified as an improvement of an existing feature ([P0592R4] bucket 2 item).

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
11 8 2 0 0

Outcome: Strong consensus in favor.

brycelelbach commented 1 year ago

@JeffGarland heads up.

jwakely commented 1 year ago

This is now LWG 3869.

JeffGarland commented 1 year ago

https://wiki.edg.com/bin/view/Wg21issaquah2023/LWG3869-202306

poll: approve the resolution for LWG3869 and move to immediate?

F A N
9 0 0
jwakely commented 1 year ago

Accepted.