[TUHS] Trying to date "A Supplemental Document For Awk"

G. Branden Robinson g.branden.robinson at gmail.com
Fri Jun 30 00:02:23 AEST 2023

At 2023-06-29T06:27:44+0000, segaloco via TUHS wrote:
> Man of course finds use in the manual pages (although there are
> different representations of manpages in nroff over time.)

Setting aside the well known bifurcation between man(7) and mdoc(7),
which manage to stay out of each other's way in the macro name space,
I'm not aware of any comparative survey of different man(7)
implementations.  Ultrix at some point--I have no insight into the
chronology of it--had a large set of extensions that remains quietly
documented and supported by groff to this day, albeit off in a corner
where it seems to receive little attention.  (Just as well, in my
opinion, as not all of its innovations are worthy of embrace.)

As far as other vendor extensions and developments go, I have collected
all of the information known to me into the groff_man(7) page in the
any-minute-now groff 1.23.0 release.  Here are the relevant sections.
(There are two because concept and implementation are distinguishable.)

    M. Douglas McIlroy designed, implemented, and documented the AT&T
    man macros for Unix Version 7 (1979) and employed them to edit the
    first volume of its Programmer's Manual, a compilation of all man
    pages supplied by the system.  That man supported the macros listed
    in this page not described as extensions, except .P and the
    deprecated .AT and .UC.  The only strings defined were R and S; no
    registers were documented.

    .UC appeared in 3BSD (1980).  Unix System III (1980) introduced .P
    and exposed the registers IN and LL, which had been internal to
    Seventh Edition Unix man.  PWB/UNIX 2.0 (1980) added the Tm string.
    4BSD (1980) added lq and rq strings.  SunOS 2.0 (1985) recognized C,
    D, P, and X registers.  4.3BSD (1986) added .AT and .P.  Ninth
    Edition Research Unix (1986) introduced .EX and .EE.  SunOS 4.0
    (1988) added .SB.

    The foregoing features were what James Clark implemented in early
    versions of groff.  Later, groff 1.20 (2009) originated .SY/.YS,
    .TQ, .MT/.ME, and .UR/.UE.  Plan 9 from User Space's troff
    introduced .MR in 2020.

    The initial GNU implementation of the man macro package was written
    by James Clark.  Later, Werner Lemberg supplied the S, LT, and cR
    registers, the last a 4.3BSD-Reno mdoc(7) feature.  Larry Kollar
    added the FT, HY, and SN registers; the HF string; and the PT and BT
    macros.  G. Branden Robinson implemented the AD and MF strings; CS,
    CT, and U registers; and the MR macro.  Except for .SB, the
    extension macros were written by Lemberg, Eric S. Raymond, and

    This document was originally written for the Debian GNU/Linux system
    by Susan G. Kleinmann.  It was corrected and updated by Lemberg and
    Robinson.  The extension macros were documented by Raymond and

I welcome any further insights people can offer.  This man page isn't
the best place to document extensions that withered on the vine (like
Eighth/Ninth Edition Research Unix's addition of multi-column macros for
man(7)), but I wouldn't mind collecting such things into some sort of
auxiliary article.

While the mandoc(1)/mdocml project's "History of UNIX Manpages"[1] is an
invaluable resource, it doesn't really do what's written on the tin, and
serves more as a history of (some) *roff _formatters_--not of the man(7)
language.  I assume that this stance is in part due to the unease
bordering on antipathy that mandoc(1) proponents have for the man(7)
macro package.  In their view, everybody should be writing mdoc(7).
Unfortunately this lacuna has left useful historical information about
the man(7) package uncollected.


[1] https://manpages.bsd.lv/history.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://www.tuhs.org/pipermail/tuhs/attachments/20230629/843c98ba/attachment.sig>

More information about the TUHS mailing list