On Tue, Dec 8, 2015 at 10:20 AM, Doug McIlroy <doug(a)cs.dartmouth.edu> wrote:
It might not
be so much a set of macros as just using a
subset of raw groff.
Yes, there were no macros back then. If you format the
document using raw groff, the odds are that you will be
speaking the same roff that Dennis did.
Doug having been there, might know/remember the
actually lineage.
Aside from some fuzziness about who wrote what and in what
language, here's what happened:
To port Jerry Saltzer's Runoff (presumably written in MAD)
to Multics, either Dennis or Bob Morris or both together
reimplemented it (presumably in PL/I). To coexist with
Saltzer's version on CTSS, the new program needed a
distinct name, hence roff.
The early Multics PL/I compiler was far from a production
tool. Justifiably, the Bell Labs comp center didn't
support it. To get roff into general use at the Labs,
I undertook yet another implementation in BCPL. I added
functionality (number registers, three-part headings, etc)
and kept the new name. Molly Wagner added hyphenation.
Eventually, I added macros that were usable either as
commands or (when parameterless) embedded in text.
From Multics 12.5:
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 string 'macro" does not appear in the Multics runoff source.
An interesting question of priority is whether nroff
or
BCPL roff was first to have a macro capability. Though
I don't remember for sure, the fact that BCPL roff unified
registers, macros, strings and diversions suggests that
I abstracted from nroff facilities.
Doug
-- Charles