Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!newstop!sun!coherent!next!sstreep From: sstreep@next.com (Sam Streeper) Newsgroups: comp.sys.atari.st Subject: Re: C Programming Languages...(Lattice) Message-ID: <318@next.com> Date: 11 Dec 90 19:50:39 GMT References: <36774@cup.portal.com> Reply-To: sstreep@elvis.UUCP (My Account) Organization: NeXT, Inc. Lines: 68 In article <36774@cup.portal.com> Yonderboy@cup.portal.com (Christopher Lee Russell) writes: >I am very interested in programming in C on my new (used) Atari ST. I am >curious what PD C compilers might be available and if they are any good. I >got Lattice C version 3.03 with my Atari.. Is it possible to get an upgrade >to this? (Is the company still supporting Atari).. Also what are considered >the best C compilers that are not PD... Thanks ahead of time.. > ....Yonderboy@cup.portal.com Well, I'll sum up my experience with C compilers... Megamax C (commercial, probably not available anymore) I used to use this compiler from a ramdisk on my old 520 ST. My impression is that this is the best C compiler for someone without a hard disk because it will all fit on a ramdisk and it's very fast. It has a few bugs (not too bad, though) and some irritating quirks due to its one pass nature, but that's the price you pay for a small, fast compiler... Its not suitable for large projects because it only uses relative addressing, but for small projects it can generate smaller, faster code than anything else I've used. Laser C (commercial) This is my compiler of choice. (I now have a mega 2 and hard disk, not really necessary with this system, but any development is unnecessarily painful without a hard disk) This compiler is super fast, the source level debugger is great, and it can produce great code if you know how to write for it. It also allows inline assembly with full access (by name) to all variables, which I need. Its a one pass compiler which means its more finicky about the code it will accept than most 2-3 pass compilers; porting unix code is almost always a pain. Mark Williams C (commercial) A good solid compiler, but too slow for my patience level; a hard drive is all but required. Accepts more C flavors than Laser C, much better for porting (non-ansi) unix code. Both have good documentation. The assembler is painfully non-standard. Generated code is bigger than Laser C. Prospero C (commercial) The only Ansi compiler in this group. This compiler works well, but I don't really like it. The linker is not smart, so all executables tend to be quite large. This is the only compiler listed that will not let you change the run-time start up module, which I think is unacceptable (to me, anyway) Some of the Gem bindings have different names than the other compilers, which makes porting Atari programs harder than necessary. It also compiles fairly slowly, even on a hard disk. On the plus side, this compiler also works together with the prospero assembler, fortran, and pascal compilers (all of which are sold separately). The docs are good, the support is actually quite good. Sozobon C (public domain or freeware) A good compiler, generates good code. When you have trouble, though, you're in for a fight because this compiler has the worst documentation in the group. What do you expect for the price? I think language documentation is very necessary. Once you figure out the compiler and your libraries of choice, though, this product works well. Comes with source code, which is great and very interesting. If your time is worth very much, I would get a commercial compiler with documentation and a source level debugger... So there's my opinions, for what they're worth. I haven't used Turbo C, Lattice C, Aztec (manx) C, or the atari GNU C compiler, so other's might wish to add something on these. Note that my emphasis has always been on writing code for the Atari, so Laser C is my choice. Anyone porting from a unix box would almost certainly find another compiler better... -sam (sam_s@NeXT.com) "life is what happens to you while you're busy making other plans" -JL