<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 8, 2015 at 10:20 AM, Doug McIlroy <span dir="ltr"><<a href="mailto:doug@cs.dartmouth.edu" target="_blank">doug@cs.dartmouth.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">> It might not be so much a set of macros as just using a<br>
> subset of raw groff.<br>
<br>
Yes, there were no macros back then. If you format the<br>
document using raw groff, the odds are that you will be<br>
speaking the same roff that Dennis did.<br>
<br>
>  Doug having been there, might know/remember the actually lineage.<br>
<br>
Aside from some fuzziness about who wrote what and in what<br>
language, here's what happened:<br>
<br>
To port Jerry Saltzer's Runoff (presumably written in MAD)<br>
to Multics, either Dennis or Bob Morris or both together<br>
reimplemented it (presumably in PL/I). To coexist with<br>
Saltzer's version on CTSS, the new program needed a<br>
distinct name, hence roff.<br>
<br>
The early Multics PL/I compiler was far from a production<br>
tool. Justifiably, the Bell Labs comp center didn't<br>
support it. To get roff into general use at the Labs,<br>
I undertook yet another implementation in BCPL. I added<br>
functionality (number registers, three-part headings, etc)<br>
and kept the new name. Molly Wagner added hyphenation.<br>
Eventually, I added macros that were usable either as<br>
commands or (when parameterless) embedded in text.<br>
<br></blockquote><div><br></div><div>From Multics 12.5:</div><div><br></div><div>runoff_mr1.bcpl<br></div><div><br></div></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div>//                  Roff for MULTICS </div></div></div><div class="gmail_extra"><div class="gmail_quote"><div>//  </div></div></div><div class="gmail_extra"><div class="gmail_quote"><div>//  The first ROFF for Multics was written in March, 1969, by</div></div></div><div class="gmail_extra"><div class="gmail_quote"><div>//  Doug McIlroy of Bell Labs.  Art Evans made extensive</div></div></div><div class="gmail_extra"><div class="gmail_quote"><div>//  modifications to it in May and June, 1969, adding many</div></div></div><div class="gmail_extra"><div class="gmail_quote"><div>//  comments and making various changes. </div></div></div><div class="gmail_extra"><div class="gmail_quote"><div>//  Footnoting added by Dennis Capps in 1970.</div></div></div><div class="gmail_extra"><div class="gmail_quote"><div>//  Maintained by Harwell Thrasher in 1971. </div></div></div><div class="gmail_extra"><div class="gmail_quote"><div>//  Many new features added and bugs fixed by R Mabee in 1971-1972.</div></div></div><div class="gmail_extra"><div class="gmail_quote"><div>//  RUNOFF and BCPL were brought over to the 6180 Multics (from 645) in May of 1973 by R F Mabee.</div></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>The string 'macro" does not appear in the Multics runoff source.</div><div><br></div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
An interesting question of priority is whether nroff or<br>
BCPL roff was first to have a macro capability. Though<br>
I don't remember for sure, the fact that BCPL roff unified<br>
registers, macros, strings and diversions suggests that<br>
I abstracted from nroff facilities.<br>
<br>
Doug<br>
</blockquote><div><br></div><div>-- Charles</div><div><br></div></div></div></div>