LCAMPBELL@DEC-MARLBORO@sri-unix.UUCP (10/11/83)
From: Larry Campbell <LCAMPBELL at 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: double routine1 (foo) double foo; { double bar (); return (bar (foo)); } double bar (x) double x; { return (x*x); } 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