Re: on the irresponsibility of pursuing C language reform

Keith Bostic <[email protected]> Sat, 1 Aug 2026 15:22:49 -0700
Newsgroups gmane.comp.lib.glibc.alpha,gmane.linux.man,gmane.comp.lib.gnulib.bugs
Message-ID <CAETFuj2OwoyK9J85r2f0RoXbHbXKA4gQJ=JZ-7=QoqGcMwk0+Q@mail.gmail.com>
--00000000000076ce34065803bf40
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sat, Aug 1, 2026 at 10:09=E2=80=AFAM Alejandro Colomar <[email protected]> =
wrote:


Well, Keith Bostic wouldn't have suggested that I do this change, and
Branden wouldn't be defending that it might make sense to make this
change.


Since my name came up: I did suggest man page changes, and I should have
been clearer about what I meant.
I generally think innovation should happen in releases, in response to the
user base. That=E2=80=99s the model with the better track record. Somebody =
ships
something, users adopt it or they don=E2=80=99t, and the standards codify e=
xisting
practice once it reaches consensus. When the standards bodies invent
instead of codify, results have been uneven.

So if glibc added <nonstring.h> tomorrow, that=E2=80=99s the system working=
. Ship
it, let people vote with their code, and let the standard adopt if it wants=
.

But as I understand it, the man-pages project doesn=E2=80=99t control the c=
ode it
documents. It describes glibc and the kernel, it doesn=E2=80=99t ship them.=
 A
documentation project changing how coding should work in a release it
doesn=E2=80=99t control feels different to me. So, my opinion is the man pa=
ges
shouldn=E2=80=99t be changing the standard includes.

Advocating for better usage in the documentation is a different thing, and
a good thing. The man pages can even go pretty hard, that=E2=80=99s their j=
ob:
=E2=80=9CNotice the include file is string.h. That=E2=80=99s an historic ac=
cident
maintained for compatibility reasons; don=E2=80=99t let that fool you, this
function doesn=E2=80=99t operate on strings.=E2=80=9D

That teaches the reader what the function actually does without relabeling
where it lives. I think it=E2=80=99s roughly what Joseph is suggesting as w=
ell,
aiming the clarification at the reader=E2=80=99s understanding rather than =
at the
SYNOPSIS line.

=E2=80=94keith
[email protected]

--00000000000076ce34065803bf40
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div><div style=3D"font-size:inherit"><div dir=3D"ltr" style=3D"font-size:i=
nherit;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:=
0px;text-transform:none;white-space:normal;word-spacing:0px;color:rgb(0,0,0=
)">On Sat, Aug 1, 2026 at 10:09=E2=80=AFAM Alejandro Colomar &lt;<a href=3D=
"mailto:[email protected]">[email protected]</a>&gt; wrote:<br></div><blockquote =
dir=3D"auto" style=3D"width:592px;min-width:150px;font-size:inherit;font-st=
yle:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-trans=
form:none;white-space:normal;word-spacing:0px;margin:0px 0px 0px 0.8ex;bord=
er-left:1px solid rgb(204,204,204);padding-left:1ex;color:rgb(0,0,0)"><br>W=
ell, Keith Bostic wouldn&#39;t have suggested that I do this change, and<br=
>Branden wouldn&#39;t be defending that it might make sense to make this<br=
>change.</blockquote></div><br></div><div><div style=3D"font-size:inherit" =
dir=3D"auto"><div style=3D"font-size:inherit">
<div style=3D"font-size:inherit">
<p dir=3D"auto">Since my name came up: I did suggest man page changes, and =
I should have been clearer about what I meant.</p></div></div></div><div st=
yle=3D"font-size:inherit" dir=3D"auto">I generally think innovation=C2=A0sh=
ould happen in releases, in response to the user base. That=E2=80=99s the m=
odel with the better track record. Somebody ships something, users adopt it=
 or they don=E2=80=99t, and the standards codify existing practice once it =
reaches consensus. When the standards bodies invent instead of codify, resu=
lts have been uneven.</div><div style=3D"font-size:inherit" dir=3D"auto"><b=
r style=3D"font-size:inherit">So if glibc added &lt;nonstring.h&gt; tomorro=
w, that=E2=80=99s the system working. Ship it, let people vote with their c=
ode, and let the standard adopt if it wants.</div><div style=3D"font-size:i=
nherit" dir=3D"auto"><br style=3D"font-size:inherit">But as I understand it=
, the man-pages project doesn=E2=80=99t control the code it documents. It d=
escribes glibc and the kernel, it doesn=E2=80=99t ship them. A documentatio=
n project changing how coding should work in a release it doesn=E2=80=99t c=
ontrol feels different to me. So, my opinion is the man pages shouldn=E2=80=
=99t be changing the standard includes.</div><div style=3D"font-size:inheri=
t" dir=3D"auto"><br style=3D"font-size:inherit">Advocating for better usage=
 in the documentation is a different thing, and a good thing. The man pages=
 can even=C2=A0go pretty hard, that=E2=80=99s their job: =E2=80=9CNotice th=
e include file is string.h. That=E2=80=99s an historic accident maintained=
=C2=A0for compatibility reasons; don=E2=80=99t let that fool you, this func=
tion doesn=E2=80=99t operate on strings.=E2=80=9D=C2=A0</div><div style=3D"=
font-size:inherit" dir=3D"auto"><br></div><div style=3D"font-size:inherit" =
dir=3D"auto">That teaches the reader what the function actually does withou=
t relabeling where it lives.=C2=A0<span style=3D"font-size:inherit">I think=
 it=E2=80=99s roughly what Joseph is suggesting as well, aiming the clarifi=
cation</span><span style=3D"font-size:inherit;border-color:rgb(0,0,0)">=C2=
=A0at the reader=E2=80=99s understanding rather than at the SYNOPSIS line.<=
/span></div><br><div><div dir=3D"ltr" class=3D"gmail_signature" data-smartm=
ail=3D"gmail_signature">=E2=80=94keith<br><a href=3D"mailto:[email protected]=
m">[email protected]</a></div></div></div>

--00000000000076ce34065803bf40--