[comp.sys.ibm.pc] MIX-c compiler experiences

gunning@sunybcs.UUCP (04/29/87)

I have been using my MIX compiler for about 6 months and have several
complaints.  First, it is SLOW.  VERY slow.  Second, it only supports the
small memory model but this is not mentioned in either the advertisements
or in the manual.  The way I found out was that once my program reached a
certain size it crashed to the operating system, with no message, when I 
tried to run it.  I called MIX and the person who answered informed me that
my program was too big for the compiler to handle.

Well, I can't say I am upset about this; after all the compiler only costs
39.95.  It is, as far as I can tell, a full implementation of the K&R specs
for the language and I have not had any problem compiling (small) programs
which were developed with other compilers.  Included with the compiler is a
facility for speeding up the compiled code (at the expense of size) and a
facility for compacting the code (at the expense of speed).  Both seem to 
work as claimed; when the SPEEDUP program is run on a compiled file, the
program does indeed run faster. I have not benchmarked it to determine just
how much faster it is but it is a noticeable improvement.

The manual has one major problem: each section of the manual has its own
index.  This is a nice feature EXCEPT that a complete index is not provided
at the end of the manual.  So if you want to find something you have to
search several indices instead of just one.  But this is just a minor 
inconvenience.

As for how this compiler compares to others: I used the Microsoft C Compiler
(version 3.0) extensively last summer.  It was an EXTREMELY frustrating 
experience due to the fact that the compiler had NO ability to recover from
syntactical errors.  This meant that I had to recompile a program after
fixing EACH syntax error, including missing semicolons.  Totally ridiculous.
The MIX compiler performs much better than this.  It does a very good
job of recovering from every error I have inadvertently introduced into
my programs.  When you consider that the Microsoft compiler lists for about
TEN TIMES the price of the MIX compiler you may be willing to overlook the
limitations of the MIX compiler.

As for the debugger, Ctrace, it is *WONDERFUL* when it works.  I have had
problems using it with non-toy programs.  The latest frustration is that
it prints the message: "Ctrace error zt" and crashes.  No explanation of
error messages is given in the manual and when I called MIX to ask what
"error zt" means, the person I talked to told me that it was an internal
error that should never occur.  This problem may have arisen because I
was nearing the 64K barier on file size and Ctrace, like the C compiler,
can only handle programs which are smaller than 64K.

In summation: I can highly recommend both the C compiler and Ctrace for
people who will be writing programs which use the small memory model
and who don't mind waiting a little while for the compiler to do its
work (about 2-3 minutes for a 60K file).  For a combined price of $80 you
get a wonderful debugger, an excellent compiler, and a very good manual
which also has a tutorial section for novice C programmers.  For those 
people who want a blindingly-fast compiler that supports multiple memory
models, I suggest that you look elsewhere.

As for waiting for Turbo-C: I guess it depends upon how patient you are.
I have given up on Borland.  I called their order number today to find out
when Turbo-C would be available and now they are saying sometime in mid-May.
I decided to buy the Datalight Optimum-C compiler for $139.  It supports
5 memory models, has the ANSI extensions, has ROMable code support/startup,
is compatible with the DOS linker and assembler, comes with a Make utility,
and provides 12! types of optimization.  Most importantly, it is available
NOW (I ordered it this morning and it was shipped this afternoon). For a
review of this compiler see _Dr._Dobbs_Journal_, August 1986 and 
_Computer_Language_, February 1986.  Note that these reviews were conducted
prior to the new "global optimizer" version.

 
-- 
CSNET  :  gunning@buffalo.CSNET
BITNET :  gunning@sunybcs.BITNET
UUCP   :  ...!{allegra,decvax,watmath}!sunybcs!gunning

vandys@Lindy.UUCP (04/30/87)

  Yah, I bought the package for its price, too.  Let me amplify on the
debugger, though: FLAKY.  I suffered through corrupted screen I/O,
mysterious crashes, and lost breakpoints.  When it worked, it was truly
nice.

  The libraries were okay, if a little short on quality.  My favorite
was:
  if( (fp = fopen(argv[1],"r")) == NULL ){
    perror(argv[1]);
    exit(1);
  }
  which would result (for a non-existent file) in:
  <file>: No error.

  Oh, well.  They also didn't seem to take typing too seriously, as
redeclaration of function types and usage of void function's values
elicited no complaint whatsoever.

  So, bottom line: a "cheap thrill" C compiler.  I think you'd be out
on a limb to try and use it for anything serious.  For myself, I still
use Microsoft C version 1, and it's a much better compiler:  better
error messages, better code, and faster compiles.  Amazingly, symdeb
works on it, too!

                      Andrew Valencia
		      vandys@lindy.stanford.edu
		      br.ajv@rlg.BITNET