[TUHS] Likely Late-73/Early-74 C Reference Manual (And NROFF Doc and Summary Changes)

segaloco via TUHS tuhs at tuhs.org
Sun May 21 05:53:32 AEST 2023

Came across something interesting by chance in the Sixth Edition document set I recently received.  I took the binder to the park for a little light reading and found myself perusing the C reference manual.  As an aside, I will always appreciate the style of the manual, and I still pick up something new or see something differently every time I flip the pages.  The introduction includes these paragraphs:

> Most of the software for the UNIX time-sharing system is written in C, as is the operating system itself.  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.
> This is a manual only for the C language itself as implemented on the PDP-11.  Hints are given occasionally in the text of implementation-dependent features, and an appendix summarizes the differences between the Honeywell and DEC implementations; it also contains some known bugs in each.

I didn't think too much of this initially, but then I found myself looking through some other old documents yesterday evening and found myself reading the memorandum version of the manual that Dennis linked to on his Bell Labs usr page:  https://www.bell-labs.com/usr/dmr/www/cman74.pdf

In this version, the paragraphs have been altered and merged:

> Most of the software for the UNIX time-sharing system is written in C, as is the operating system itself.  C is also available on the HIS 6070 computer at Murray Hill and and on the IBM System/370 at Holmdel.  This paper is a manual only for the C language itself as implemented on the PDP-11.  However, hints are given occasionally in the text of implementation-dependent features.

So between the two, the print document I have here indicates the compiler for IBM mainframes is still in the works, but by the January 15, 1974 document, it is noted as complete and in use in Holmdel.  Additionally, this print document mentions an appendix detailing DEC vs. Honeywell differences and some other bug notes.  Unfortunately this appendix doesn't actually appear to be in the binder, so either it wasn't done yet or was tossed by a previous owner some time ago.  Luckily, this appendix, despite the reference being dropped, *is* on the cman74 version.

In any case, upon discovering this, I then spot checked the rest of the contents of the two by seeing if any paragraphs had strange offsets from each other or there were noticeable changes in the visual flow.  I didn't read each and every line, instead opting to see if paragraphs still had the same number of lines, the same "outline" (i.e. lines seem to start, end, and break pretty much the same), and that pages started and ended the same, and everything pretty much matched.  There may be punctuation changes or other minor edits, but I didn't see anything indicating major changes in the language.  The only other thing noticeably different is the references list, with Dennis's cman74 copy containing two extra references mine does not: "A User's Guide to the C Language on the IBM 370." by T.G. Peterson and M.E. Lesk, 1974, and "Programming in C- A Tutorial." by B.W. Kernighan, 1974.  The latter is listed as unpublished in cman74.  In my copy, aside from the two omitted references, the reference to the CACM paper does not have a date, instead just saying "To appear in C. ACM." and "The GCOS C Library" is listed as an unpublished memorandum with a speculative year of 1974.

So all in all, this appears to be a C Reference Manual most likely from late 1973, or however unlikely, one that was very rapidly published in the first few weeks of 1974 before the mentioned changes on January 15th of that year.

Are there any known copies of the manual that predate this which I can compare back with, or in any case is this particular revision known and captured somewhere?  If not, it should be trivial to take the sources from V6 and produce a facsimile copy until it bubbles up in my scanning list (much ahead of it, got the ROFF manual scanned the other day, hoping to hit TMG and m6 in the next few.)

There is also an NROFF manual here that I see referenced in the TOC of the V6 document set in the source, but don't actually see in files.  It is dated 9/11/74 and is only labeled "NROFF Users' Manual", no TROFF in the title.  It is also noted as the "Second Edition" in the header.  This document makes reference to the "TROFF User's Manual", dated April 1974, also by Ossanna.  Of note too is a "Quick NROFF Addendum" dated 5/19/75 that is included at the end.

Finally, a slightly later version of the UNIX summary appears, dated August, 1975 instead of May, 1975, the date of the one in the V6 sources.  It has minor chnages, most noticeably that the last few pages regarding NROFF and TROFF stuff have been split into two sections, one with more NROFF-y stuff and one with more more TROFF-y stuff.

Anywho, nothing earth shattering here, but at the very least, a couple of document variants vs. what is currently on the archive.

- Matt G.

More information about the TUHS mailing list