CPP

LCC uses a stand-alone pre-processor (cpp). The book doesn’t mention any particular details about it. Presumably, it was whatever cpp happened to be lying around the Bell Labs offices at the time. Perhaps it was even written by Brian Kernighan or Dennis Ritchie.

The Plan 9 cpp clearly shares a common ancestor, but was updated to support C 99 variadic macros and fixed a bug with improper ## and # expansion within macros. (The Plan 9 version also uses Plan 9 I/O and supports UTF-8.).

As a side note, the Plan 9 C compilers have a subset of the pre-processor built in. The stand-alone version is usually not needed.

I back-ported (or perhaps side-ported) the C 99 updates and bug fixes to LCC-816.