[net.micro.pc] Microsoft vs. Lattice C

vlv@drux3.UUCP (Vaughn Vernon) (08/12/85)

To: drutx!ihnp4!qantel!dual!lll-crg!seismo!rochester!rocksanne!sunybcs!kitty!peter
Subject: Re: Lattice C vs Microsoft C?
In-reply-to: your article <249@kitty.UUCP>

Microsoft can already blow the socks off of Lattice!  I wouldn't
worry too much about bugs.  I know of several people who have written
LARGE systems with the MSC already and have also ported code from UNIX
with it and had NOOOOO PROBLEMS!  This is the most complete 'C' compiler
on the market today and Microsoft is really bringing their whole line
of development tools together.  Microsoft has some real Unixteers working
on there compiler which is evident.  If you have come to expect performance
from a 'C' compiler from a Unix point of view, you will be pleasantly
accommodated by Microsoft.

I personally hate Lattices' attitude tord 'C' and Unix!  IE.! - try
using there so-called MAKE utility.  It is simply stated ... a joke!
Lattice continues to provide all of it's users with so many bugs (new
ones at that) upon each release.  What a great bargin.

The bugs that may exist in the Microsoft compiler will never be confronted
by the above average programmer and/or software project!  Go ahead -
beat the heck out of it ... if you can!


				Vaughn Vernon
				AT&T ISL
				Denver, CO
				ihnp4!drutx!{drux1 | drux3}!vlv

nather@utastro.UUCP (Ed Nather) (08/14/85)

> If you have come to expect performance
> from a 'C' compiler from a Unix point of view, you will be pleasantly
> accommodated by Microsoft.
> 
> The bugs that may exist in the Microsoft compiler will never be confronted
> by the above average programmer and/or software project!  Go ahead -
> beat the heck out of it ... if you can!
> 				Vaughn Vernon

Well, I've had the MSC 3.0 compiler all weekend, and managed to find a few
bugs without trying very hard.  I installed it on my XT as per instructions,
and the first compile I tried went to never-never land and died.  After a
lot of futzing around, I found I had to remove a "fix" that extended my
type-ahead buffer to 128 bytes, since the MSC compiler uses the (teensy)
environment to point to include, lib and .h files.  Apparently there was
a conflict, and the compiler didn't check for one.  It is the only program
(including two other C compilers) that has had any trouble like this.

I then learned about the fun message "Out of environment space"
and spent time learning to avoid it.  I next learned that the compiler is
happy with (modified switchar) pathnames like /bin/include, but the linker
isn't, so you have to set up your environment variable pathnames with
(retch) backslashes or locate things where you don't need pathnames.  If
this is a Unix point of view I'll eat it, raw.

By the way, it is only about 4 to 5 times slower than DeSmet C to compile
and link moderate-sized programs; I guess that's good.  CI-C86 is about 7 
times slower.

I'm not really unhappy with the compiler -- it has a lot of good features,
allows excellent control of optimizing, permits binary default I/O if you
need it, and helps a program to expand wild card arguments.  The object
code is small and runs fast.  If you read the manual cover to cover, you
may find out, in an obscure section about re-writing earlier assembly
routines to link with the (modified) calling conventions, that two (2)
register variables are supported.  You can also guess that from the
(re-written) version of sieve.c that comes with it -- two register
variables are defined, whereas the original sieve.c didn't use them.
It helps: sieve runs in 6.2 seconds with them defined, 10.6 sec without.

Overall, it's better than the other 2 compilers mentioned above, but it
doesn't beat them on all counts, and it still tastes a lot of MS-DOS
mixed in with the Unix.

WHY are the environment space and the maximum command-line argument strings
so small?  Were they set up for 64K machines and never changed?

-- 
Ed Nather
Astronomy Dept, U of Texas @ Austin
{allegra,ihnp4}!{noao,ut-sally}!utastro!nather
nather%utastro.UTEXAS@ut-sally.ARPA

peter@baylor.UUCP (Peter da Silva) (08/16/85)

> lot of futzing around, I found I had to remove a "fix" that extended my
> type-ahead buffer to 128 bytes, since the MSC compiler uses the (teensy)
> environment to point to include, lib and .h files.  Apparently there was
> a conflict, and the compiler didn't check for one.  It is the only program
> (including two other C compilers) that has had any trouble like this.

I have had this problem before, often enough that I leave the typeahead
buffer at 16 bytes & used "ced" to handle multiple commands.

> WHY are the environment space and the maximum command-line argument strings
> so small?  Were they set up for 64K machines and never changed?

Probably. It's still a bad kludge, but then so is the MS-DOS environment
handling generally.
-- 
	Peter da Silva (the mad Australian werewolf)
		UUCP: ...!shell!neuro1!{hyd-ptd,baylor,datafac}!peter
		MCI: PDASILVA; CIS: 70216,1076