Date : Wed, 18 Jul 1984 02:53:47-PDT (Wed)
From : decvax!decwrl!amd!fortune!foros1!jr@Ucb-Vax.arpa
Subject: Re: C Compiler for CP/M-80?
Hi. I've been using C/80 (version 3.1, under CP/M) for a while, so
I guess I'll toss out a few comments.
Language:
more or less full K&R, with some documented restrictions:
no typedefs, no longs or floats (unless you get MATHPAK),
no bit fields, no parameterized macros, no #line, no declarations
within nested blocks.
Big complaint number one: no parameterized macros. This
turns out to be more useful than I thought it would be.
It also has an undocumented restriction: structures can't
contain pointers to structures which haven't been declared
yet.
Library:
Incomplete. It doesn't even have <stdio.h>!!!!!! If you want
to use "stdin", you have to declare it yourself. No open() or
close(), read() and write() can only do multiples of 128 bytes,
no lseek() unless you buy MATHPAK (not sure if you get it then,
but it would be easy to write).
Big complaint number two: because of the order which
subroutine arguments are pushed onto the stack (leftmost
first), routines which get passed multiple parameters
are implemented with a "kluge" (their word) which involves
#defines to call TWO routines, one of which saves information
about the top of the stack, for the other. This affects
every routine which calls printf, for instance.
Quality of compiler and code produced:
No complaints. I haven't run anything big enough to get
a feel for how fast or how large the generated code is.
Overall impression:
Still a bargain for $50. What this compiler really needs
are (1) a full preprocessor (which there are a couple of
public domain implementations in the works), and (2) and
complete runtime library (which is also in the works,
although it looks like it won't be public domain).
I hope this helps. If you have any questions or whatever, just drop
me a line.
See ya!
--
JR (John Rogers)
...ihnp4!fortune!foros1!jr
also fortune!jr and proper!jr