Date : Fri, 08 Oct 1982 03:00:37 EST (Fri)
From : Ben Goldfarb <goldfarb.ucf-cs@Udel-Relay>
Subject: Re: C Compilers
While Whitesmith's C is expensive compared to other comparable products,
it would be a bargain if it were a full implementation of the language
compatible with Unix and if it were easy to use. It is neither. In
addition, Whitesmith's support is indifferent, as I will document below.
But first, here's how you compile something using the CP/M version:
[from memory -- subject to slight inaccuracies]
A>pp test.c -o test.tm0
A>p1 test.tm0 -o test.tm1
A>p2 test.tm2 -o test.8
A>an test.8 -o test.r
A>ld80 -o test.com chdr.r test.r clib.a mlib.a .... (ad nauseum)
Naturally, all of the above can be done using a SUBMIT file, or one of the
other, superior utilities of that sort. But it takes a helluva long time!!
The library searches are all done on the disk, as is all the intermediate
data storage, etc.
Compare the above with the following for BDS C:
A>cc1 test.c
A>clink test
Also, the compatibility with Unix is lacking, especially in the I/O
department. When I was contemplating purchasing Whitesmith's C and
Pascal for one of my company's PDP-11's running RT-11, I called the big W
and inquired as to whether they would ever implement printf() as Unix
does. The response was a very haughty "I doubt that we'll ever implement
printf(). Our putfmt() is a much superior grammar." [I wonder whether
Dr. Chomsky would agree with him.] In any case that response was from
a fellow named who was not there the next time I called after I made
the mistake of buying the package.
The problem at that point was that I wasn't able to use the only program
segmentation facility available to memory-starved RT-11 systems, that is
overlays. The reason was that Whitesmith's generates unnamed .PSECTS in
their object code output, which have the wrong attributes by default. When
I asked the boys at Whitesmith's what I could do, their response was that
I could "edit the assembly code generated by the compiler" (obviously a
ridiculous solution). That was not as bad as it got -- actually even if I
HAD edited the MACRO file, I would have still had default .PSECTS in the
library (CLIB) which I did not have the source for. I was advised by
Whitesmith's that I could correct that situation by purchasing the source
for the library for ~~ $3000.
The big problem is that Whitesmith's really only gives cursory support
to anyone using an OS other than their own IDRIS (have you ever met anyone
who used IDRIS?) One of their people admitted this to me during one
of my calls.
You mentioned their Pascal "compiler". Actually it is a Pascal filter,
translating Pascal source to C (which, of course, adds one more pass to
the busy work described above). First of all, it does produce buggy object
code, as I found out first hand with the RT-11 version. Secondly, it is
pretty close to Wirth-Jensen, which means pretty close to worthless. Finally,
when I called them to ask specific questions (in advance of its purchase) the
person on the phone told me that he couldn't really tell me much about it --
that most people buy C and then they think it is a good idea to tack on $100
or so to get Pascal. He gave me the impression that it was an extra bone
in the soup and no more.
From what I have seen of code generated by the CP/M version it is quite large.
I really fail to see where this overpriced compiler will ever do me any
good. I have been using BDS and have nothing but good things to say about
it. If you can get along without longs and floats, definitely buy it!
Ben Goldfarb
ARPA: goldfarb.ucf-cs @ Udel-Relay
UUCP: ...!duke!ucf-cs!goldfarb