Older: Microsoft Apologizes, Removes 'Big Boobs' String From Linux Code
MANNERS are a good thing. Being polite is also always preferable. It might not always be possible, but it is preferable.
"The company which commits so many crimes claims to be a source for good, a voice for ethics."It's difficult to forget how people who wrote bad code complained about Torvalds. Eventually he was even 'removed' from the project -- his own 'baby' -- for about a month. Intel played a big role in that. As we've noted before, Intel keeps coming back. The company which commits so many crimes claims to be a source for good, a voice for ethics. Welcome to the brave new world... white is black, black is white.
It's no secret that changing words inside code (not literature) can complicate things, break things, become an expensive development venture and even cause systems to fail/break down (unexpectedly). Some mission-critical systems (aviation, hospitals and disaster recovery) are also impacted. It's an endless adventure; you'll never please everyone. Just taking the latest article from Phoronix, it says "A.k.a. Spectre, Meltdown, etc." and we all know what "Spectre" is to "Master" and what "Meltdown" is to people with mental health issues [1].
Should we remove all mentions of these terms as well? Where does it end? By the way, slavery is not a thing of the past but a thing of the present. Many Africans are still enslaved by fellow Africans and many are sold as slaves. Deleting particular words may make it harder to explain the problem, which is still ongoing (see the UN's Web site).
"Remember how Intel viciously attacked children's education in Africa."The other morning coverage in Phoronix says there's an effort wherein "Linux Kernel [is] Preparing New Guidelines For Using Inclusive Terminology" (included in circulation are two people from the Linux Foundation, one from Intel, another from Facebook and lastly one from Google). To quote Michael Larabel: "The exception being granted though is where changing the terminology could potentially break the user-space ABI given the kernel's longstanding guarantees on not breaking that interface." (Many comments on this, 54 as of this morning, with more noteworthy comments -- 21 of them so far -- in CNX Software under "New Tech Vocabulary for 2020 Could Break Software Compatibility")
Not many have mentioned the aspect of debugging being necessary (if not rewriting of software units, followed by a lot of testing). It can also harm backward compatibility and thus increase electronic waste, harming the environment. We all know that a lot of electronic waste (basically Western trash) is being shipped to Africa, outsourcing the pollution to 'lesser' races, right? So much for justice...
Looking at the original, however, and bearing in mind what some Intel employees already did to sanitise Linux (see "New Patch Replaces F-Words in Linux Kernel Code with “Hug”) while Intel became speech police in the whole project, this is what we have from Intel's Dan Williams ([PATCH] CodingStyle: Inclusive Terminology
):
Recent events have prompted a Linux position statement on inclusive terminology. Given that Linux maintains a coding-style and its own idiomatic set of terminology here is a proposal to answer the call to replace non-inclusive terminology.
Cc: Jonathan Corbet <corbet@lwn.net> Cc: Kees Cook <keescook@chromium.org> Signed-off-by: Chris Mason <clm@fb.clm> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Dan Williams <dan.j.williams@intel.com> --- Documentation/process/coding-style.rst | 12 ++++ Documentation/process/inclusive-terminology.rst | 64 +++++++++++++++++++++++ Documentation/process/index.rst | 1 3 files changed, 77 insertions(+) create mode 100644 Documentation/process/inclusive-terminology.rst
diff --git a/Documentation/process/coding-style.rst b/Documentation/process/coding-style.rst index 2657a55c6f12..4b15ab671089 100644 --- a/Documentation/process/coding-style.rst +++ b/Documentation/process/coding-style.rst @@ -319,6 +319,18 @@ If you are afraid to mix up your local variable names, you have another problem, which is called the function-growth-hormone-imbalance syndrome. See chapter 6 (Functions).
+For symbol names, avoid introducing new usage of the words 'slave' and +'blacklist'. Recommended replacements for 'slave' are: 'secondary', +'subordinate', 'replica', 'responder', 'follower', 'proxy', or +'performer'. Recommended replacements for blacklist are: 'blocklist' or +'denylist'. + +Exceptions for introducing new usage is to maintain a userspace ABI, or +when updating code for an existing (as of 2020) hardware or protocol +specification that mandates those terms. For new specifications consider +translating specification usage of the terminology to the kernel coding +standard where possible. See :ref:`process/inclusive-terminology.rst +<inclusiveterminology>` for details.
5) Typedefs ----------- diff --git a/Documentation/process/inclusive-terminology.rst b/Documentation/process/inclusive-terminology.rst new file mode 100644 index 000000000000..a8eb26690eb4 --- /dev/null +++ b/Documentation/process/inclusive-terminology.rst @@ -0,0 +1,64 @@ +.. _inclusiveterminology: + +Linux kernel inclusive terminology +================================== + +The Linux kernel is a global software project, and in 2020 there was a +global reckoning on race relations that caused many organizations to +re-evaluate their policies and practices relative to the inclusion of +people of African descent. This document describes why the 'Naming' +section in :ref:`process/coding-style.rst <codingstyle>` recommends +avoiding usage of 'slave' and 'blacklist' in new additions to the Linux +kernel. + +On the triviality of replacing words +==================================== + +The African slave trade was a brutal system of human misery deployed at +global scale. Some word choice decisions in a modern software project +does next to nothing to compensate for that legacy. So why put any +effort into something so trivial in comparison? Because the goal is not +to repair, or erase the past. The goal is to maximize availability and +efficiency of the global developer community to participate in the Linux +kernel development process. + +Word choice and developer efficiency +==================================== + +Why does any software project go through the trouble of developing a +document like :ref:`process/coding-style.rst <codingstyle>`? It does so +because a common coding style maximizes the efficiency of both +maintainers and developers. Developers learn common design patterns and +idiomatic expressions while maintainers can spot deviations from those +norms. Even non-compliant whitespace is considered a leading indicator +to deeper problems in a patchset. Coding style violations are known to +take a maintainer "out of the zone" of reviewing code. Maintainers are +also sensitive to word choice across specifications and often choose to +deploy Linux terminology to replace non-idiomatic word-choice in a +specification. + +Non-inclusive terminology has that same distracting effect which is why +it is a style issue for Linux, it injures developer efficiency. + +Of course it is around this point someone jumps in with an etymological +argument about why people should not be offended. Etymological arguments +do not scale. The scope and pace of Linux to reach new developers +exceeds the ability of historical terminology defenders to describe "no, +not that connotation". The revelation of 2020 was that black voices were +heard on a global scale and the Linux kernel project has done its small +part to answer that call as it wants black voices, among all voices, in +its developer community. + +Really, 'blacklist' too? +======================== + +While 'slave' has a direct connection to human suffering the etymology +of 'blacklist' is devoid of a historical racial connection. However, one +thought exercise is to consider replacing 'blacklist/whitelist' with +'redlist/greenlist'. Realize that the replacement only makes sense if +you have been socialized with the concepts that 'red/green' implies +'stop/go'. Colors to represent a policy requires an indirection. The +socialization of 'black/white' to have the connotation of +'impermissible/permissible' does not support inclusion. + +Inclusion == global developer community efficiency. diff --git a/Documentation/process/index.rst b/Documentation/process/index.rst index f07c9250c3ac..ed861f6f8d25 100644 --- a/Documentation/process/index.rst +++ b/Documentation/process/index.rst @@ -27,6 +27,7 @@ Below are the essential guides that every developer should read. submitting-patches programming-language coding-style + inclusive-terminology maintainer-pgp-guide email-clients kernel-enforcement-statement
"Intel is using black people (exploiting legitimate race grievances) to socially-engineer and interject disruption into a project it cannot control because of the GPL."There aren't many African contributors in Linux not because of the language but because African nations are poor and lack access to particular computing resources (sometimes Internet connections as well). Maybe focus on those latter issues before obsessing over the colour of some alert or a rule? Companies like Intel would rather have us speaking/bickering about race issues than class/wealth issues. Remember how Intel viciously attacked children's education in Africa. All in the name of profit! Intel is using black people (exploiting legitimate race grievances) to socially-engineer and interject disruption into a project it cannot control because of the GPL. ⬆
Related/contextual items from the news:
Besides readfile() being simpler, the other intended use-case is for helping in performance due to less system calls. Greg does note that utilizing readfile should help performance, especially due to "syscall overheads go up over time due to various CPU bugs being addressed." A.k.a. Spectre, Meltdown, etc.
The readfile system call review is in this kernel thread. Hopefully it will be reviewed punctually and well to possibly make it into the Linux 5.9 cycle next month.
The new inclusive terminology documentation applies to new code being contributed to the Linux kernel but ultimately in hopes of replacing existing code with words deemed not inclusive. The exception being granted though is where changing the terminology could potentially break the user-space ABI given the kernel's longstanding guarantees on not breaking that interface.
These new guidelines for Linux kernel developers call for initially avoiding words including "slave" and "blacklist" to instead use words like subordinate, replica, follower, performer, blocklist, or denylist.