[net.micro] C compiler info wanted

Fat.Tag@SU-SIERRA.ARPA (10/11/83)

From:  Tim Gonsalves <Fat.Tag@SU-SIERRA.ARPA>


I am interested in getting a C compiler for a Z-100 (8088, MS-DOS, 2 5"
320KB floppy drives) and would appreciate comments on available ones,
particularly Computer Innovation's C86 and Mark DSmet's C88.  Are there any
public domain compilers available?

Comments on the following would be helpful:
. what do you like/dislike about your compiler?
. how much disk space, memory does the compiler+library occupy?
. how complete is the language implemented?
. is separate compilation supported?
. is the compiler fast, is the code compact, is the code fast?  -  do you have
to take a coffee break during a compilation?  -  how fast is "fast" and how
large is the code file for source programs of various sizes?
. what is the maximum program size?
. anything else of interest!

				Thanks for your help,
				    Tim Gonsalves
				Gonsalves@SU-Sierra.Arpa
-------

LCAMPBELL%dec-marlboro@sri-unix.UUCP (10/11/83)

From:  Larry Campbell <LCAMPBELL@dec-marlboro>

I have a copy of Mark William's C for CP/M-86, and since they claim to soon
be shipping the same thing for MS-DOS, I think my experience will be helpful.
I also have Computer Innovation's compiler, but I don't use it, for reasons
detailed below.  First, MWC-86:

1) Very professionally done product (in my opinion).  The compiler and linker
   are rather slow, but they WORK WELL.  I have a program whose source
   code runs to about 180K bytes of source, in about 25 modules.  Compiling
   and linking the whole thing takes about 40 minutes on a DEC Rainbow
   with 256K and 4 floppies.

2) You have to use their linker (won't someone PLEASE standardize object
   file formats so I can mix languages from different vendors??) and assembler,
   but they're both pretty featureful and bug-free.

3) The error messages are wonderful!  The compiler recovers gracefully
   from syntax errors and always points me right to my mistake.

Drawbacks:

1) You don't get sources to the libraries.

2) No source level debugger.

3) No large memory model support (today).

CI-C86:

1) Not nearly as professionally done.  You have to type a lot to compile
   and link a C program.  Where MWC will compile and link FOO.C with
   the following command:

	CC FOO.C

   CI-C86 requires that you type

	CC1 FOO
	CC2 FOO
	CC3 FOO
	CL FOO CLIB.ARC

2) It won't compile some of my modules.  One thing that's particularly
   annoying is that the following construct (paraphrased from an
   example in K&R, so I KNOW it's legal) won't compile:

	routine1 (foo)
	double foo;
	{
	double
	   bar ();
	return (bar (f00));
	}

	double bar (x)
	double x;
	{
	return (x*x);
	}

	(oops, that's foo, not f00, in the 1st RETURN statement)
	MWC-86 compiles this just fine.  One other of my modules, which
	MWC-86 compiles OK, causes CI-C86 to fatal ignominiously.

Advantages:

1) You get source code for the runtime library.  Big win.

2) They claim to have a large memory model compiler available today
   (although I've not yet seen it).

I've heard good things about the Lattice compiler, but I've not yet
been able to try it.  The August (?) issue of Byte (special issue
on C) seemed to conclude that Mark Williams, CI, and Lattice were the
only serious contenders.  Based on my sample of 2, I'd recommend
Mark Williams.

I'd love to hear from anyone who has had experience with a C compiler
that supports the large memory model;  I need one badly.  Preferably
one that exists for both CP/M-86 and MS-DOS.

- Larry Campbell

  (P.S. - there should be a "double" before "routine1" in the
  	  above example...)
   --------