Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!vaxine!wjh12!genrad!grkermit!masscomp!clyde!burl!ulysses!mhuxl!ihnp4!zehntel!hplabs!hpda!fortune!dsd!avsdS!nelson From: nelson@avsdS.UUCP Newsgroups: net.micro Subject: C compiler comments Message-ID: <751@avsdS.UUCP> Date: Wed, 23-May-84 13:43:52 EDT Article-I.D.: avsdS.751 Posted: Wed May 23 13:43:52 1984 Date-Received: Mon, 28-May-84 05:39:39 EDT Lines: 47 # The following flame about C compilers for micros specifically discusses BDS C for 8080 and Aztec C for 8080/Z80. However, the point being made is that standardization is not always an acceptable tradeoff for speed. I'd like to hear from users with experience on MS-DOS or CPM/86. From what I hear, DeSmet seems to be the winner in that arena, and the cheapest. I've recently been forced to use Aztec C for Z80 on a Kaypro 10 - all software on the hard disk. I am shocked and disgusted at how slow it is. I've come to the conclusion that I'd rather suffer the trouble of a non-standard I/O library as in BDS C than have to wait more than 5 times as long for compile/assemble/link. Yes, it really does take 5x or more longer, really does run slower, really is a less complete library. The BDS library differs only in open, fopen, fwrite and such things. Furthermore these are close enough to real v7 to require little change. BDS C requires you to allocate space for the file pointer and then call fopen with that arg, rather than returning the arg to you. A relict from the early days of BDS when alloc() didn't exist, I suspect, and one that is easily remedied. The other big problem with BDS is that all files linked together that use globals must use the same globals declared in the same order! This is more like FORTRAN unnamed common, and is not true globals, but there is an advantage - the BDS linker really screams because it doesn't have to resolve references to external vars. It's easy to program this way (use an include file for all globals), but makes porting to BDS problematical. Aztec C does not recognize the #if construct, only #ifdef! BDS C has a symbolic debugger, I/O redirection facilities, and lots of handy tools (Aztec has been slow to supply them). I will gladly use Aztec for problems requiring floats, and must use it when compiling source for v7 compilers, but in the micro world speed is your greatest obstacle during developement. All this hue and cry about standards is a moot point to us non-coffee drinkers (goto coffee_break; /* Standard advice */). BDS C can compile and link programs in 1 minute that take 5 minutes with Aztec. Slowness like that is inexcusable. If the implementation is close enough to v7, I will gladly suffer the small inconveniences. Glenn Nelson Ampex Corp., Redwood City, CA ...!{nsc|hpda|megatest|amd70}!fortune!dsd!avsdS!nelson 415-367-2499