Re: the Linux man-pages as an educational tool
Alejandro Colomar <[email protected]> Mon, 3 Aug 2026 15:07:00 +0200
| Newsgroups | org.kernel.vger.linux-man |
|---|---|
| Message-ID | <anCO9tDqJH2PLD0w@devuan> |
--njol4fd35gtem72c Content-Type: text/plain; protected-headers=v1; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable From: Alejandro Colomar <[email protected]> To: Bruno Haible <[email protected]> Cc: [email protected], [email protected], Collin Funk <[email protected]>, "G. Branden Robinson" <[email protected]>, Paul Eggert <[email protected]>, [email protected] Subject: Re: the Linux man-pages as an educational tool Message-ID: <anCO9tDqJH2PLD0w@devuan> References: <[email protected]> <[email protected]> <am6X32HkGdm2xTd7@devuan> <4636165.RUnXabflUD@cagnes> MIME-Version: 1.0 In-Reply-To: <4636165.RUnXabflUD@cagnes> Hi Bruno, > Date: 2026-08-03 14:35:06+0200 > From: Bruno Haible <[email protected]> > > Alejandro Colomar wrote: > > This is just a case where educating on the current standards is done by > > 1) documenting at the bottom of the manual what the standard says, and >=20 > The standard-compliant #include statement should be documented in the SYN= OPSIS, > not at the bottom of the man page. That's an opinion, which I respect, but at the moment, and given the thorough research I've carried out, I disagree with it it. If you want to know what the standards say, you have available at your disposition the STANDARDS section, and the standards themselves. The Linux manual pages are not the ISO C manual pages. > > 2) recommending to ignore it because it's bad. When the standards are > > bad, this is appropriate course. >=20 > Which functions are "bad"? I didn't say any functions are bad (other than gets(3)). I did say the standards are bad. The standard specification of realloc(,0) is bad, for example. The standard #include's and organization of strn*() functions is also bad. Where did you get the idea that I've claimed that any functions are bad? > It's not up to you (single person) to decide this. I've done enough research and heard enough parties to conclude this. > Rather, poll among the libc implementors, and if a majority says a functi= on > is "bad", then mark it as bad. I've polled libc implementors for their technical reasons, I've heard those arguments carefully, analyzed them, and concluded based on that. I've also heard subjective opinions alongside those technical arguments, and I've also carefully analyzed them, although they carry significantly less weight than the technical arguments, and in some cases, they carry negative weight, as they show that the person that emitted them is not experienced enough about this topic. With all that information, I've taken a decision. I haven't marked any functions as bad (contrary to some opinions from libc maintainers), FWIW. > That's basically how it went with 'gets': The community realized it is a = bad > function, then the implementors started to withdraw it. Here's an interesting story about gets(3), which I learnt recently: The C Committee didn't remove it from ISO C. It was the Austin Group that triggered some unusual process within ISO for overriding the C Committee, and removed it in a secret meeting. The removal probably wouldn't have been accepted by the C Committee if it had gone through the usual process. > And even there, look at several implementors, not only at a single one. F= or > instance, NetBSD considers uselocale() to be "bad" and therefore does not > implement it. That's a single-implementor opinion, not a majority. Have a lovely day! Alex --=20 <https://www.alejandro-colomar.es> --njol4fd35gtem72c Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEES7Jt9u9GbmlWADAi64mZXMKQwqkFAmpwkm0ACgkQ64mZXMKQ wqkNEw/8DQu6XugmxlNmaDYTRPs2kMJa8VMaB2Ukt5SDpp9EZvll1B2AH59Olyup HOb20WkFKIqlKNVTJ6GyR7RmvEu4LsXv/RjB4WDXSc+yPYKUej+8PWXZ+Z5PX8N6 aETS3kQ9LI/82imfX5tgessnlIC39YhmXDqAV09j7ebSukEZoaPAbNBxsU7owli9 Zgr/2iBcZBEwvBUsiEc/uUOa+bzUoXqAxlWRfkwnep9EwpjpJ1kZntAsTKcJ4pJA c4PgK84gjhbUPJPf2MUZXKJjwRK9gf/uEuPynRHRUYuM5ACy1cIi1fMRlgifvWAq Baa6MMN/TvzaTXtk6438PAiogF639xAY8rWLhz6o+KSxFcdNN7p5rd5umvqXovAL szwrc9ZQ9pBroo1ErOXNTAJ4HAUKarnKRpqZMwZJAN66YqQIJbEJEgS4cX+Elkdn ikzASsDkPkIvbXRNmD91LlG2b5wQTY442wFQjN/DvfXihSS3kkRuy+eHQSkuVIoe 5gKAtHeRGe6PQ0yVB/1Vnf0P6t3XU1j5E65cz1kJcthr+ecVbzby9B4H8qiirSEI 08i3n2sizNlRKKF+VqKYc9SRk01zRvwRoDR87SBaFL38f4Sp7a7AJCW/pySliXkq Jcr0NKA98v+1U14iijYZeTFrnRnxkGdbdjuQPWlmKlK99DPlZXg= =l2A0 -----END PGP SIGNATURE----- --njol4fd35gtem72c--