TIP 581: Master/Slave

Login
Bounty program for improvements to Tcl and certain Tcl packages.
Author:         Jan Nijtmans <[email protected]>
State:          Draft
Type:           Project
Vote:           Pending
Created:        17-July-2020
Post-History:
Tcl-Version:    8.6
Keywords:       Tcl
Tcl-Branch:     tip-580

Abstract

This TIP proposes to purge the usage of the Master/Slave paradigm from Tcl. This is a gradual process. Just to be clear: Tk is out of scope for this TIP.

Rationale

A discussion is currently going on about the Master/Slave and Blacklist/Whitelist paradigm: Linux, Github and a lot more decided not to use this terms any more. The TCT as a whole has no opinion on this (although individual member will - sure - have an opinion). Since Tcl is a language for everyone, we should not make life difficult for people being enforced to comply with whatever rules. Since there is very little impact on Tcl, let's bend a little bit.

Specification

In tclDecls.h, the following #define's are added:

#define TclCreateChild TclCreateSlave
#define TclGetChild TclGetSlave
#define TclGetParent TclGetMaster
In tclIntDecls.h, the following #define is added:
#define TclSetChildCancelFlags TclSetSlaveCancelFlags

Further on, the "interp" command will get an additional subcommand "children", which is synonym for "slaves".

That's it! This will allow extension/application writers to comply with external limitations when they want to or are forced to do so.

The "interp slaves" command will not be deprecated, not even in Tcl 9.0. Neither will the usage of Tcl_CreateSlave and friends be deprecated: Extension/application writers are not forced to make the change, but they will be able to.

In Tcl 8.7, the documentation and header files will be changed to comply with this renaming. The above #define's will be reversed, so the functions will continue to be available under the old name too.

See: Terminology, Power, and Inclusive Language in Internet-Drafts and RFCs

Compatibility

This is 100% upwards compatible.

Implementation

See the tip-581 branch.

Copyright

This document has been placed in the public domain.