On Wed, Jan 12, 2022 at 1:07 PM G. Branden Robinson <g.branden.robinson@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).
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.