Yes, I
love the way go and plan9 C compilers work. IMHO all new compilers should be written like that. I
detest clang & llvm, especially when, for example, Freebsd make buildworld (from scratch) takes over an hour because of clang+llvm times. Surely llvm author(s) could've achieved all the flexibility llvm provide for various frontends in a different way? [FreeBSD is also at fault. I think it can be compiled with gcc but no other small and fast compilers like tcc]
On Mar 7, 2024, at 5:12 PM, Rob Pike <robpike@gmail.com> wrote:
By the way, the unmatched portability of Plan 9 and Go stems from the way Ken structured that compiler. My talk at GopherCon about the Go assembler describes this architecture and why it worked so well. Others feel that by being unorthodox it is clearly bogus and we are jackasses, but such complainers only notice the difference and don't ask why the difference is there.
-rob
Yes. Ken wrote the first version for the National 32000 (maybe even 16000?) on the Sequent. He ported to the MIPS when we started Plan 9.
-rob
What is the history of Plan9's C compiler? Was it a from scratch implementation?
Chris Fraser and Dave Hanson did LLC and wrote a book about it, very clean and pedagogically valuable.
-rob
I believe Snyder was an MIT Master's thesis, finished in 1975[1]. There was a fair amount of C and compiler work at MIT LCS, perhaps JNC can post some info. I think Snyder's compiler was used for the MIT PC/IP[2] project; the links at BitSavers imply they are related. PC/IP brought TCP and clients to DOS 3 machines and was commercialized as FTP software and was one of the reasons for the creation of the MIT license[4]. BDS C[3] was done by an MIT drop-out, Leor Zolman. I bought my first motorcycle from him :) BDS C was used for the first implementations of MINCE (mince is not complete emacs -- those kinds of acronyms were popular) and Scribble, downsized clones of emacs and Scribe, respectively.
Judging from what's at the bitsavers I posted, the source for pcip and this is the backstory to them.
Warner