|Anonymous | Login||2022-01-22 06:06 UTC|
|Main | My View | View Issues | Change Log | Docs|
|Viewing Issue Simple Details|
|ID||Category||Severity||Type||Date Submitted||Last Update|
|0001466||[Issue 8 drafts] Base Definitions and Headers||Editorial||Enhancement Request||2021-04-16 15:22||2021-07-20 09:31|
|Priority||normal||Resolution||Accepted As Marked|
|Status||Applied||Product Version||Draft 1.1|
|Section||3.277 Pseudo-Terminal and others|
|Final Accepted Text||Note: 0005392|
|Summary||0001466: Pseudo-terminal devices should be renamed|
At Apple, we’re working to remove and replace non-inclusive language across our developer ecosystem, including within Xcode, platform APIs, documentation, and open source projects . In this effort, we are allied with individuals and organizations across the software industry. For example, in July 2020, the Linux kernel style guide was updated to recommend avoiding non-inclusive language , and in December 2020, IEEE committed to write standards to avoid non-inclusive and insensitive terminology . As part of this effort, we would like the Austin Group’s help in updating the language used in the POSIX standard.
The two device ends of a pseudo-terminal are named the “master” and “slave” devices in previous and current versions of the standard. These should be renamed.
We invite the Austin Group community to propose new names, debate, and reach consensus. Since this has become an issue of public discourse, many suggestions have been made on forums across the internet, so there is no shortage of ideas out there.
 https://developer.apple.com/news/?id=1o9zxsxl [^]
 https://standards.ieee.org/about/sasb/resolutions.html [^] (December 2020)
 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/coding-style.rst#n338 [^]
The words “master” or “slave” within the context of pseudo-terminal devices appear in the following places in Issue 8 Draft 1.1 (202x_d1.1.pdf). Please update all of these when new names are chosen.
Page 68, lines 2129-2133. 3.277 Pseudo-Terminal
Page 181, line 6422. 11.1.1 Opening a Terminal Device File
Page 659, lines 22861-22863. close() - Description
Page 663, line 23061. close() - Change History
Page 1086, lines 37188-37191. grantpt() - Description
Page 1086, line 37200-37202. grantpt() - Errors
Page 1375, line 46052. open() - Description
Page 1375, line 46070-46072. open() - Description
Page 1377, line 46146. open() - Errors
Page 1421, line 47580. posix_openpt() - Description
Page 1421-1422, lines 47604-47619. posix_openpt() - Examples
Page 1422, line 47622-47624. posix_openpt() - Application Usage
Page 1422, lines 47627-47632. posix_openpt() - Rationale
Page 1667, lines 54812-54817. ptsname() - Description.
Page 1667, line 54823-54824. ptsname() - Return Value
Page 1667, line 54841. ptsname() - Errors
Page 1668, line 54849. ptsname() - Rationale
Page 2061, lines 66908-66910. tcsetwinsize() - Application Usage
Page 2126, line 68870-68872. unlockpt() - Name
Page 2126, line 68865. unlockpt() - Description
Page 2126, line 68880. unlockpt() - Errors
since POSIX is all about "standardizing existing practice"... fwiw, in Android we already went with "pty"/"tty" for master/slave in APIs like openpty(). from a checkin comment (https://android-review.googlesource.com/c/platform/bionic/+/1374048): [^]
This was initially just to try on "pty" and "tty" for size, while
discussing with other projects to try to align on vocabulary, but -- in
the implemention and tests at least -- but these work out so well that
I'm tempted to go with them anyway if we can't come to a concensus. We
can always come back and change them again later.
What I really like is that you pass the pty to functions like ptsname()
and grantpt() with a 'p' in the name, and the tty to functions like
ttyname() and tcsetattr() with just 't's.
The use of "parent" and "child" in forkpty() seems helpful too.
the Linux man-pages project went with
slave ==> "terminal device"
(or "terminal end of the pseudoterminal device pair")
master ==> "pseudoterminal device"
(or "pseudoterminal end of the pseudoterminal device pair")
pseudoterminal (device) ==> "pseudoterminal device pair"
see https://www.spinics.net/lists/linux-man/msg16641.html [^] for more (including a long discussion of alternatives, but also background links for some of the precedent we went with).
(as an aside, if there's someone from Apple who'd be interested in joining the firstname.lastname@example.org list, that's a good place for libc owners to coordinate changes, and i think Apple's the biggest libc that's not yet represented there.)
Re Note: 0005325 A drawback of both of those solutions is that neither has a satisfactory retrofit for the "s" in ptsname().
The mailing list discussion in Aug 2020 included suggestions of using "primary" for one side but without finding a good enough word for the other side ("ancilliary" came close). It has now occurred to me that "secondary" could be used if these words are used to indicate not the role that the devices have but the order in which they are opened. The primary device is opened first, and then the name of the secondary device is obtained from ptsname() and is opened second.
I think this could be a good solution if we include an explanation of the reason behind the naming somewhere.
|Change "master" to "manager" and "slave" to "subsidiary" in all of the places listed in the desired action.|
|2021-04-16 15:22||jauricchio||New Issue|
|2021-04-16 15:22||jauricchio||Name||=> Joe Auricchio|
|2021-04-16 15:22||jauricchio||Organization||=> Apple Inc.|
|2021-04-16 15:22||jauricchio||Section||=> 3.277 Pseudo-Terminal and others|
|2021-04-16 15:22||jauricchio||Page Number||=> 68-2126|
|2021-04-16 15:22||jauricchio||Line Number||=> 2129-68880|
|2021-04-19 20:44||enh||Note Added: 0005325|
|2021-06-18 14:38||geoffclare||Note Added: 0005387|
|2021-07-08 16:03||geoffclare||Note Added: 0005392|
|2021-07-08 16:03||geoffclare||Final Accepted Text||=> Note: 0005392|
|2021-07-08 16:03||geoffclare||Status||New => Resolved|
|2021-07-08 16:03||geoffclare||Resolution||Open => Accepted As Marked|
|2021-07-08 16:04||geoffclare||Tag Attached: issue8|
|2021-07-20 09:31||geoffclare||Status||Resolved => Applied|
|Mantis 1.1.6[^] Copyright © 2000 - 2008 Mantis Group|