Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!philabs!cmcl2!harvard!h-sc1!breuel From: breuel@h-sc1.UUCP (thomas breuel) Newsgroups: net.micro.amiga Subject: Re: Aztec C, good, bad, HELP! Message-ID: <1100@h-sc1.UUCP> Date: Tue, 13-May-86 23:38:56 EDT Article-I.D.: h-sc1.1100 Posted: Tue May 13 23:38:56 1986 Date-Received: Thu, 15-May-86 06:19:44 EDT References: <276@bucsb.bu.edu.UUCP> Organization: Harvard Univ. Science Center Lines: 103 |So... | |I took the (expensive) plunge and bought Aztec C V 3.20a this past weekend. |Portability problems aside, I could *almost* be pleased with it. |If you get your programs to compile & link, the code size is wonderful. | |The good points: | Aztec C is a fast compiler, no bones about it. | LN (the linker) is fast *if* the 85k library is in ram. | The code produced is very small. | |The mediocre points: | The C compiler has it's share of bugs, nothing major, | although I still have a problem compiling the latest version of | MicroEMACS 3.6, because the compiler generates an "internal" error | which the book says I shouldn't be receiving. (Bind.C, any help out there?, | it fails in EPATH.H) Manx is aware of the bugs. To compile MicroEMACS 3.6, you have to do two workarounds: you must use the +L option (MicroEMACS 3.6 has a bunch of type errors), and therefore you have to remove all expressions from '#if' statements, and in epath.h you have to move the '#if ... #endif' from inside the structure to the outside. | There is no tentative ansi draft support.. just vanilla C | with a vanilla runtime library. According to Manx technical support, this is forthcoming (in fact, they are on the ANSI draft committee, they say). The next release of the compiler will support returning of structures and might support argument type declarations in forward function declarations (or whatever ANSI calls it). |The BAD points: | Aztec uses non-standard object format. Hence, the object library | manager I wrote for code as described in the technical reference | is USELESS with aztec. | |Unfortunately, the librarian is a very necessary tool for the type |of development I do, because I split my source in the ONE-ROUTINE-PER-FILE |fashion, and depend on the library manager to aid in the link. You are swimming upstream, so to speak. I don't think that this development technique is too efficient (in terms of link time) with any system. |LN (the linker) only makes one pass through libraries, and you must |have all the code in the library organized in the correct order of |external references if you want to link with one scan on the library. |Now, it's true that Aztec provides a tool for this, IF you buy the |commercial, $500 compiler. I feel that I've been penalized for buying |the cheap (ahem, $300) developer version, because it does not have |the object ordering tool. (Again, I am forced to use their tools because |of the non-standard object format) The price difference between commercial and developers version is $100, so you either paid $400 already, or you can get the commercial version for $400. I would strongly recommend you to get the commercial version. It has lots of useful goodies that make development much easier. $400 is a lot for a 'C' compiler, but, then, you get not only one of the best 'C' compilers in existence, but also: vi, make, as, grep, diff, a debugger, a librarian, a disassembler, and lots more. Lattice and Manx are comparable in price (but not in performance), by the way, when you add up the prices of all the Lattice programs and utilities ('C' compiler, assembler, decent text editor, and 'make' together also cost about $400). |Another inconsistency, |They provide the ADUMP command for dumping AMIGA format object, |but not the utility for dumping their object (symbols, etc). |ADUMP is useless if you are using the Aztec products. And the other |utility is sold only with the commercial compiler. Does this make sense |to you? Well, again, get the commercial version... | If anybody has comments, suggestions, SOLUTIONS, corrections, | please reply. I would really like to get my TERMINAL program | to take advantage of the new compiler, and be half the size. | | Aztec, I'm sorry. But, I feel you owe me more for my $300, | and that I shouldn't be penalized for not buying the commercial version. I think spending the extra $100 for the commercial version is well worth it if you want to do serious development. The price of the system is admittedly sort of high, but you get probably one of the best 68k compilers in existence, and lots more. I only have the Aztec/Manx 'C' compiler (no Lattice), and I find that I can live very well with it. Most public domain stuff compiles very easily and doesn't require any changes. The compiler has a few bugs, but they are not very serious and will be fixed in the next release according to Manx. Thomas. PS: I have no connection with Manx other than that I am a satisfied customer. PPS: you can upgrade from any version to a higher version by paying the difference plus $10, if I recall correctly.