On Thu, Feb 02, 2023 at 02:02:32PM -0500, Noel Chiappa wrote:
There was recent discussion here about the Typesetter C compiler; I don't
have the energy to look through the tons of opinion posts about recent
programming styles, to find the posts about actual Unix history which related
to that compiler, but I seem to recall that there was interest in locating
the source for it? I had strted to look, but then got distracted by some
other high-pri stuff; here are a few notes that I had accumulated to reply -
I hope they aren't too out-of-date by now.
I have a copy of it, from the dump of the CSR machine (I can't make the whole
dump public, sorry; it has personal material from a bunch of people mixed in).
discussed in
https://minnie.tuhs.org/pipermail/tuhs/2023-January/027393.html
The best case would be a copy of the tape that was licensed and
distributed externally. With nroff/troff/ar/stdio.
I was pretty sure the C compiler from Mini-Unix, here:
https://minnie.tuhs.org/cgi-bin/utree.pl?file=Mini-Unix/usr/source/c
was from the right timeframe to be the Typesetter C, but a quick check of
c0.h, shows that it's not; that one seems to be more like the V6 one. (Ditto
for LSX.)
The PWB1 one:
https://minnie.tuhs.org/cgi-bin/utree.pl?file=PWB1/sys/c/c
seems, from a very quick look at c0.h (using that nice side-by-side compare
feature on the TUHS archive - thanks, Warren!), to be somewhat close to the
Typesetter C. It would be interesting to compare that one to the CSR one
(which definitely is) to be sure.
Yes, PWB/UNIX 1.0, AUSAM where READ_ME includes:
"the 'C' compiler contained herein is
not merely a local abheration of
'C' but is in fact a version from bell
labs via indirect means
the lanuage accepted by this 'C'
would is identical to that accepted by the 'C'
compiler distributed with PWB/UNIX
also corresponds to syntax given in
Kernigan and Plaugher's book on 'C'"
the Interdata 7/32 tree in modified form
and binaries in Tim_Shoppa_v6/unix_v6.rl02.gz as you described in
http://mercury.lcs.mit.edu/~jnc/tech/ImprovingV6.html
Compared to v6 the phototypesetter compiler adds:
unsigned union typedef.
The v7 compiler included enums and structure assignment
described in "Recent Changes to C" November 15, 1978
https://www.bell-labs.com/usr/dmr/www/cchanges.pdf
2bsd includes diffs for it
upgrade/c/READ_ME:
"Mon Apr 16 23:33:04 PST 1979
The C compiler modifications here given as diffs will change a phototypesetter
C compiler to have a larger symbol table (change to c0.h) and to generate
switch code in I space (c11.c). We install the changed C compiler as
-t0 and -t1; see the source for cc.c. You need make a modified C compiler
only if you intend to recompile ex (-t0) or if you wish to compile with
smaller data spaces per user; all code will work fine without -t1, and
all programs but ex will compile with normal symbol table size."
and refers to it in src/ex:
/*
* Since the phototypesetter v7-epsilon
* C compiler doesn't have structure assignment...
*/
/*
* Would like to use structured assignment but early
* v7 compiler (released with phototypesetter for v6)
* can't hack it.
*/
Also, the V7 C compiler (not pcc, but the PDP-11 one) seems to be a fairly
close relative, too.
Noel