rwb@druxu.UUCP (BlackR) (05/05/86)
I've had the Lattice C compiler for the 520ST (from METACOMCO for $150 U.S., list) for several weeks and have a few impressions to report. 1) though the supplied editor appears useful, it is different enough from common editors (vi, emacs, or wordstar) that I haven't used it. 2) Lattice C does appear to follow K&R very closely, but I have found a few things it doesn't like that other C compilers do. Fortunately, it was easy to program around those things. 3) METACOMCO expended a lot of effort in creating a package that runs on a "small" computer system. That is, I was able to compile all of the PCHACK sources with 1 single sided drive on a 512K ST (TOS in ROM) with a RAM disk sized to hold just the compiler and standard header files (because PCHACK is so large and the compiler generates large intermediate files, I had to place the sources on 5 disks). The compiler is broken into two programs (passes), each around 88K in size, which communicate via a file of intermediate code (quadruples). Combined with the separate compilation facilities of C, this makes it possible (though inconvenient) to compile some large programs. 4) the package is not integrated into a command interpreter (as is Personal Pascal or Hippo C), so you can run the compiler from the desktop or any other command interpreter you desire. It is arguable if this is a benefit or not, but I have the freedom to chose my own shell. The tradeoff is that the integrated packages make it easy to go from a syntax error to editing. 5) the supplied libraries provide enough of the UNIX(tm) Operating System feeling to be familiar (i.e. stdio.h, math.h, setjmp.h, etc.) and they allow stdin and stdout to be redirected (but no pipes). 6) the documentation will not teach the C language or how to program in a GEM environment, but are adequate for an experienced C programmer. There is very little on how to access GEM, the BIOS, or XBIOS, so other guides are mandatory to take full advantage of the 520. 7) the linker is very powerful, operating in interactive or batch mode. In the latter, one can generate a very long list of files and libraries to link, longer than one's memory will permit. 8) finally, there is error handling by both the compiler and linker. Only the first pass of the compiler does a decent job of error handling. It tells you the error and the source line it was found on, so you have an idea of where to look (the first pass does the preprocessing and most of the compilation, generating intermediate code in the form of quadruples). The second pass (which does code selection on the quadruples, generating a relocatable code) and the linker (which pulls all the relocatable code into an executable image), do not seem to know about source lines and only report that files have errors. They don't give any indication of where in the file the problem is. One might accept this if the first pass caught all the errors, but it doesn't. In compiling PCHACK, the second pass found one error and the linker found a relocation error in about one out of every five files. I was able to guess on the pass 2 problem and fix it, but am out of luck on the linker problems. Needless to say, I am less than pleased with the Lattice package and am not recommending that anyone buy it until METACOMCO gets some things fixed (I should also note that I have compiled and linked several small programs successfully, so the package works some of the time). Since the Lattice C compiler is the compiler in the Amiga developer's kit, I expected these kinds of bugs to have been resolved. 9) compilation speed was nothing to cheer about, but can be improved by using a RAM disk for the compiler and source files (i.e. a 1Meg system with half Meg of RAM disk). The generated code was comparable in size to that of the Personal Pascal compiler (about half as big as the Hippo C). I have not performed any timing tests. In summary, this product has potential, but save your money until it is fixed. I don't know what METACOMCO's update policy is, but expect to soon find out. I also welcome responses from others who have had other experiences with this product than I have. Rodney Black AT&T Information Systems (usual disclaimers about the company disavowing any approval of my opinions) ..!ihnp4!druxu!rwb
gnu@hoptoad.uucp (John Gilmore) (05/21/86)
In article <133@druxu.UUCP>, rwb@druxu.UUCP (BlackR) writes: > 7) the linker is very powerful... Also, unfortunately, it is ridiculously slow. It runs several minutes(!) on hello.c style programs, and becomes the main slowdown in a compile-link-debug -edit cycle. > In summary, this product has potential, but save your money until it is > fixed. Agreed. I wouldn't buy it. I would get the developers kit from Atari instead. (I have not used the Atari kit but haven't heard complaints.) -- John Gilmore {sun,ptsfa,lll-crg,ihnp4}!hoptoad!gnu jgilmore@lll-crg.arpa