Austin Group Defect Tracker

Aardvark Mark IV


Viewing Issue Simple Details Jump to Notes ] Issue History ] Print ]
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
Reporter jauricchio View Status public  
Assigned To
Priority normal Resolution Accepted As Marked  
Status Applied   Product Version Draft 1.1
Name Joe Auricchio
Organization Apple Inc.
User Reference
Section 3.277 Pseudo-Terminal and others
Page Number 68-2126
Line Number 2129-68880
Final Accepted Text Note: 0005392
Summary 0001466: Pseudo-terminal devices should be renamed
Description 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 [1]. 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 [2], and in December 2020, IEEE committed to write standards to avoid non-inclusive and insensitive terminology [3]. 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.

[1] https://developer.apple.com/news/?id=1o9zxsxl [^]
[2] https://standards.ieee.org/about/sasb/resolutions.html [^] (December 2020)
[3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/coding-style.rst#n338 [^]
Desired Action 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
Tags issue8
Attached Files

- Relationships

-  Notes
(0005325)
enh (reporter)
2021-04-19 20:44

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 libc-coord@lists.openwall.com 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.)
(0005387)
geoffclare (manager)
2021-06-18 14:38

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.
(0005392)
geoffclare (manager)
2021-07-08 16:03

Change "master" to "manager" and "slave" to "subsidiary" in all of the places listed in the desired action.

- Issue History
Date Modified Username Field Change
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
Powered by Mantis Bugtracker