[TUHS] *roff history as told to GNU

Dan Cross crossd at gmail.com
Thu Jan 13 06:01:40 AEST 2022


On Wed, Jan 12, 2022 at 1:07 PM G. Branden Robinson <
g.branden.robinson at gmail.com> wrote:

> Hi, Dan,
>
> At 2022-01-12T11:33:35-0500, Dan Cross wrote:
> > I have some questions about the earlier history.
>
> I've been collecting a detailed narrative history not just of the *roff
> _programs_ but also of the development on the language in the roff(7)
> manual page.  Below I'll share a current chunk of it that is planned for
> the next release (groff 1.23).  It has been heavily revised since
> groff 1.22.4.  Many of my revisions have been motivated by accounts from
> this list, from the "history of man pages" (more of a history of troff)
> at manpages.bsd.lv, and the minnie TUHS archive.
>

Very interesting. The email mentioning DSR from Dan Halbert linked to a
wikipedia article that in turn links here:
https://manpages.bsd.lv/history/saltzer_23_10_2011.txt

This is an email from Jerry Saltzer that refers to a port of the _CTSS_
BCPL ROFF sources purportedly written by Doug. I wonder if that was
actually a thing, or an error?

> As I understand it, in the beginning there was RUNOFF, which I believe
> > originated on CTSS? The CTSS sources contain a RUNOFF program that's
> > made up of ~1100 lines of MAD and ~1300 lines of assembler.
>
> This is a detail I hadn't encountered before; instead I've read claims
> that distorted it into being a solely high-level language project.
>

Fortunately, the source is online:
https://github.com/rcornwell/ctss/tree/master/src/runoff
The `.fap` files are assembly; for example
https://github.com/rcornwell/ctss/blob/master/src/runoff/lmio12.fap

Brief inspection shows the FAP code mostly dealing with very low-level
details either interfacing with the system for IO/memory or character
handling. Without further examination, I'd be willing to believe the bulk
of the program's logic is in MAD.

> There is certainly a RUNOFF in Multics, written in BCPL (there's a
> > small "outer module transfer vector" program in ALM).
>
> As I understand it, _this_ RUNOFF is undisputedly Doug McIlroy's.
>

Indeed; one finds the following in at least one of the Multics RUNOFF
source files:

From
https://github.com/dancrossnyc/multics/blob/main/library_dir_dir/system_library_standard/source/bound_runoff_.s.archive/runoff_mr1.bcpl
:

//              Roff for MULTICS
//
//  The first ROFF for Multics was written in March, 1969, by
//  Doug McIlroy of Bell Labs.  Art Evans made extensive
//  modifications to it in May and June, 1969, adding many
//  comments and making various changes.
//  Footnoting added by Dennis Capps in 1970.
//  Maintained by Harwell Thrasher in 1971.
//  Many new features added and bugs fixed by R Mabee in 1971-1972.
//  RUNOFF and BCPL were brought over to the 6180 Multics (from 645) in May
of 1973 by R F Mabee.

The copyright statements on all of the runoff source files seem to be dated
1974 (I haven't looked at every one).


> [snip]
> Here's what I have, though it looks better typeset[2].  Corrections from
> witnesses are warmly welcomed. [snip]
>

Thank you; that was very interesting.

        - Dan C.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20220112/aba2ff22/attachment.htm>


More information about the TUHS mailing list