This is NCC, the "new" C compiler. It is intended to be used as the system
compiler for BSD/64 (my port of pre-Reno 4.3BSD to Intel/AMD 64-bit desktops).
The dialect of C accepted by the compiler is basically pre-ANSI (K&R 1978)
with some common extensions. (See the DIALECT file for specifics.) This is
both a function of the compiler's purpose -- to operate on a mid-80s codebase
-- and, admittedly, personal taste.
The binary tools work on a proprietary object file format and produce a.out-
format executables. These are documented in obj.h and a.out.h respectively.
The compiler and its tools are fully functional and have been fairly well-
tested, though they are works in progress. In particular, the optimizer is
quite minimal: the framework for a more aggressive optimizer is there, but
for the moment only rudimentary data-flow analysis is done to aid the register
allocator and clean up the more egregious output from the code generator.
ncc: compiler driver.
ncpp: an ANSI C89 compliant C preprocessor.
ncc1: the C compiler proper, produces assembly output
nas: accepts 16/32/64-bit Intel syntax assembly and produces .o object.
nld: the object linker - combines .o files into a.out executables.
nobj: object/executable inspector.
These are all original works and are BSD-licensed. See LICENSE and comments.
Charles Youse <firstname.lastname@example.org>
December 27, 2018