[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
G. Branden Robinson
Sat, 1 Jan 2022 00:06:28 +1100
At 2021-12-30T21:18:04-0500, Douglas McIlroy wrote:
> The man page roff(7) incorrectly attributes roff to Joe Ossanna.
I agree, that's true of the roff(7) man page in groff 1.22.4 (and some
number of releases before that I haven't taken the trouble to count).
> Ossanna wrote nroff and troff, but roff preceded that work. The name
> roff was first used to distinguish a rewrite for Multics from the
> original runoff, probably because both were maintained on CTSS. I
> wrote an extended roff in BCPL for GECOS and kept the Multics name.
> Ken and/or Dennis rewrote the BCPL program in assembly language for
> Unix. There never was a pure runoff for Unix.
Thanks, Doug! I _think_ all of your statements here are consistent with
what I've had in the roff(7) page since commit f28c837d2c on 5 September
Here are the current paragraphs of the page relating to *roffs and early
Unix and roff
By 1971, McIlroy’s runoff had been rewritten in DEC PDP-11
assembly language by Dennis Ritchie for the fledgling Unix
operating system and seen its name shortened to roff (perhaps
under the influence of Ken Thompson), but had added support for
automatic hyphenation with .hc and .hy requests; a generalization
of line spacing control with the .ls request; and what later
roffs would call diversions, with “footnote” requests. This roff
indirectly funded operating systems research at Murray Hill, for
it was used to prepare patent applications for AT&T to the U.S.
government. This arrangement enabled the group to acquire the
aforementioned PDP-11; roff promptly proved equal to the task of
typesetting the first edition of the manual for what would later
become known as “v1 Unix”, dated November 1971.
Output from all of the foregoing programs was limited to line
printers and paper terminals such the IBM 2471 (based on the
Selectric line of typewriters) and the Teletype Corporation Model
37. Proportionally-spaced type was unknown.
New roff and Typesetter roff
The first years of Unix were spent in rapid evolution. The
practicalities of preparing standardized documents like patent
applications (and Unix manual pages), combined with McIlroy’s
enthusiasm for macro languages, perhaps created an irresistible
pressure to make roff extensible. Joe Ossanna’s nroff, literally
a “new roff”, was the outlet for this pressure. By the time of
Version 3 Unix (February 1973)—and still in PDP-11 assembly
language—it sported a swath of features now considered essential
to roff systems; definition of macros (.de), diversion of text
thence (.di), and removal thereof (.rm); trap planting (.wh;
“when”) and relocation (.ch; “change”); conditional processing
(.if); and environments (.ev).
I welcome your corrections of this material and anything else in the
page. If groff Git it troublesome for you to get to, Michael Kerrisk's
Linux man-pages project web page takes snapshots of groff when he does
releases of the man-pages package proper. For this page, little has
changed since his last snapshot, and nothing substantive about the
Two things I should admit to in frankness...
1. Kerrisk's snapshot of our pages has some partial ECMA-48 escapes
leaking into the text due to the grotty-output scraping he does to
obtain HTML. I guess if grohtml worked better, he wouldn't have had
to do that. My recent changes to support bold italics in
(sub)section headings have surprised his tool.
2. It sure would be nice to release groff 1.23.0. We haven't heard
from Bertrand in a long time so I guess I'll have to volunteer as
the release guy--for one cycle anyway. People might have noticed me
taking baby steps toward this by learning more about GNU Autotools,
resolving some issues with portability to non-GNU/Linux systems, and
starting a release checklist document in the tree.
Happy New Year!
Description: PGP signature
- roff(7), Douglas McIlroy, 2021/12/30
- Re: roff(7),
G. Branden Robinson <=