Hello everyone, I'm currently laying the groundwork for a restart of my mandiff
project, expanding it to encompass not just the manual-proper, but also the documents
leading to the "Documents for UNIX" collections as well. Thus far I'm
about halfway done on a ROFF restoration of the earliest surviving draft of Dennis
Ritchie's The UNIX Time-Sharing System paper[1], reconstructed from existing, later
NROFF text and ROFF conventions from the Third Edition manual[2].
Thus far, the additional documents I've found explicitly referenced in the earlier
days are:
User's Reference Manual to B - K. Thompson[3]
C Reference Manual - D. M. Ritchie[4 - see note]
M6 Manual - A. D. Hall[5]
ROFF Manual - J. F. Ossanna[6 - see note]
A Manual for the TMG Compiler-writing Language - M. D. McIlroy[7]
UNIX Assembler Manual - D. M. Ritchie[8 - see note]
NROFF Users' Manual - J. F. Ossanna[9 - see note]
YACC Manual - S. C. Johnson[10 - see note]
Aside from these references, there are two other B papers, one a tutorial[11] by B. W.
Kernighan and the other a MH-TSS reference by S. C. Johnson[12]. I don't think I saw
either referenced in the manual-proper. The latter then makes further reference to a
"Bell Laboratories BCPL" by R. H. Canaday and D. M. Ritchie, although I suspect
this is lost, I can't find it.
Anywho, my plan is to take any known ROFF/NROFF sources for the above documents and
reconstruct the earliest versions possible and then add them to my revamped repository in
the timeframes that they first start showing up as references in the manual to derive a
more holistic view of the creation of manuals and guides in the early days. A few matters
prompted me to start over:
1. Noticing that there is direct lineage between some of the text in the UnixEditionZero
paper and later manual pages like as(I), I want to capture the base text as far back as
possible, which in this case would mean ensuring a commit in the chain captures the
transfer of the text from the UnixEditionZero paper to as(I) to give a more complete
history.
2. Al Kossow has now scanned and preserved a UNIX Program Generic II manual, meaning I no
longer have to make as many assumptions about what changed and what didn't in the
USG/Research split. Thus far, assumptions about the Program Generic line have been based
on the extant MERT manual (which in turn is described as deriving from the Program Generic
III manual.)
3. The picture of PWB/2.0 is becoming a bit clearer as time goes on, but is still murky,
and that has implications for the changes between the Sixth Edition (where my current
mandiff repo[13] ends) and the Seventh Edition. Rather than having to go back and redo a
bunch of work, I think the first pass can stand on its own as a source of guidance on
redoing this.
4. The cleanliness of the repository history is not to my liking, there are several
instances of multiple commits across pages related to some larger, holistic change that
would really be easier to study if they were in one. Starting over, I now have a much
clearer picture of V1->V6 that I can use to produce a tighter history.
Anywho, to summarize what I'm looking for feedback on, first, are there any major
documents I'm omitting from this investigation? Any particular technical memoranda
that are crucial to the big picture? Additionally, is anyone aware whether USG Program
Generic I (or earlier?) had a formal edition of the Programmer's Manual or if they
would've just referred folks to the research manual prior to PG II? With the latter
question I'm trying to determine if USG manual history starts with the PG II manual
Al Kossow has scanned or if I should be considering a hole in the record where a PG I
manual goes.
Thanks for following along, hopefully getting this groundwork in place will ensure the
next go at this project is even more fruitful than the last!
- Matt G.
--- References ---
1 -
https://www.tuhs.org/Archive/Distributions/Research/McIlroy_v0/UnixEditionZ…
2 -
https://www.tuhs.org/cgi-bin/utree.pl?file=V3/man
3 -
https://www.bell-labs.com/usr/dmr/www/kbman.html
4 - I may have a copy of the earliest version of this I can identify. The earliest
version I can find online is dated January 15th, 1974
(
https://www.bell-labs.com/usr/dmr/www/cman74.pdf) and contains the text "C is also
available on the HIS 6070 computer at Murray Hill and on the IBM System/370 at
Holmdel" whereas this particular copy of the paper states "C is also available
on the HIS 6070 computer at Murray Hill, using a compiler written by A. Snyder and
currently maintained by S. C. Johnson. A compiler for the IBM System/360/370 series is
under construction." The manual is TROFF printout and isn't formatted as a
memorandum like the link included here. References to the C Reference Manual begin to
show up as early as the Second Edition manual, although these imply the C manual is still
being written. Does anyone know if the C Reference Manual started in ROFF and then moved
to NROFF some time before the earliest copies we're aware of? In any case, I intend
to scan this copy, it just hasn't bubbled up in my project list yet.
5 -
https://tuhs.pdp-11.org.ru/Documentation/TechReports/Bell_Labs/CSTRs/2.pdf
6 - I have a copy that defers from the one I could find here:
https://www.cs.dartmouth.edu/~doug/roff71/roff71.pdf It is not in technical memorandum
format and also may be missing a few pages (in mine, the tutorial ends with the
"Translation" section but the linked document contains a couple more paragraphs
on page offset (.po), merge patterns, and an envoi (conclusion). The most striking
difference is that the linked paper is Doug's version for TSS, but the paper
I've got lists the invocation in the UNIX style (roff +N -M name1 name2 ...) and is
likely representative of the UNIX version with Joe Ossanna's work. Doug if you catch
this and believe the attribution on this page
(
https://wiki.tuhs.org/doku.php?id=systems:2nd_edition) should have your by-line or both
you and jfo, happy to make the edit. The text of the UNIX version I have does seem to
descend from your original paper. By the way, an even earlier version of this paper for
runoff is available here (
https://manpages.bsd.lv/history/runoff69.low.pdf)
7 -
https://www.tuhs.org/Archive/Distributions/Research/1972_stuff/tmg.pdf
8 - This is first referenced in the Third Edition manual. Some of the text may derive
from the second Appendix of the "UnixEditionZero" paper linked above, the
manpage certainly has influence from that document. Not sure if any of that implies the
manual may have started in ROFF, but in any case, constitutes an early reference.
9 - This reference first appears, verifiably, in the Third Edition. However, the Second
Edition manual does list nroff(I) in the TOC, but this page is not actually included in
the extant PDF in the archive. In any case, the earliest version of the NROFF Users'
Manual I'm aware of is the Second Edition, dated 9/11/74. Is any such First Edition
extant on the public record?
10 - The earliest reference to this manual I can find is in the Third Edition. Not sure
if there are any earlier specimens than the text in the Sixth Edition sources.
11 -
https://www.bell-labs.com/usr/dmr/www/btut.html
12 -
https://www.bell-labs.com/usr/dmr/www/bref.html
13 -
https://gitlab.com/segaloco/mandiff