Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!uwvax!uwmacc!oyster
From: oyster@uwmacc.UUCP (Vicarious Oyster)
Newsgroups: comp.sys.atari.st
Subject: Re: C Compilers
Message-ID: <691@uwmacc.UUCP>
Date: Tue, 16-Dec-86 18:05:03 EST
Article-I.D.: uwmacc.691
Posted: Tue Dec 16 18:05:03 1986
Date-Received: Thu, 18-Dec-86 01:41:57 EST
References: <861216-121152-4199@Xerox>
Reply-To: oyster@unix.macc.wisc.edu.UUCP (Vicarious Oyster)
Organization: UW-Madison Academic Computer Center
Lines: 58

In article <861216-121152-4199@Xerox> Bicer.ES@Xerox.COM writes:
>I need a C compiler which is:
>1- Usable with 1 single sided drive 520 ST.
>2- Fast in compilation.
>
>The following points are not absolutely necessary but would be nice:
>3- Full K&R.
>4- Gem Access and be able to write desk accessories.
>5- Assebler support.
>
>Currently I am looking into these compilers:
>- Lattice (is it usable with 1 drive, and how fast are compilations?)

   Lattice is not extremely fast, but as with all disk-bound programs,
speed can be enhanced through the judicious use of a RAMdisk.  My typical
compile-link time, using a physical disk for the source file, the object
file, and the executable file, is ~1.5 minutes.  It can be used with
a single-drive system with a bit of one-time adjusting (I currently
have 2 drives; when I had only one drive, I had 1MB of RAM, so I may not
be accurately describing your situation).
   As far as I can discern, it is a good K&R implementation.  The current
version has a couple known bugs, one of which seems especially obnoxious,
but I've never personally run into it (something about not generating the
correct shift instruction for division by a constant multiple of 2).  It
has a full GEM library, but the documentation is scarce-- in fact, they
provide the assembler source code for the routines (which is good), and
tell you to look at the source for complete decriptions (which is not so
good).  I'm not sure about writing desk accessories.  With other C's, you
have to link with a different startup module, and they only provide one with
Lattice (if anybody has some DA C code sitting around, I could try to get
it running with Lattice).  I'm not sure if you can imbed assembly code
in-line, but Metacomco (the Lattice people) sell a decent assembler.
Also, the linker does provide for linking "the other" type of object
modules.  I have written some reasonably short GEM and non-GEM programs,
and I have not had trouble with either flavor.
========================================================================

   Somebody else mentioned the Sybex Gem book, saying it fully described
GEM.  Well, it's a very good book, and I too recommend it; however, there
are things it simply doesn't describe (I can't remember offhand, but
one of them had to do with the ICON data type.  Of course, at the time,
I wanted to know about those few things...).  Otherwise, it describes
GEM in a very understandable way, with plenty of examples, including
a full-blown major application.  I used it and the Pro*GEM documentation
exclusively to puzzle out all the fun GEM features, and that included
initializing the data structures by hand, since I have no resource
construction set.  (My first project was to have been a small RCS that I
could use to bootstrap a full-scale RCS, but I started going back to
school, as well as learning electronics and computer repair, as well as
working nearly full time, while keeping my social calendar full, and...
well, I've got a functional spec done!  I'm currently investigating
all the little pieces of GEM, with an eye towards the RCS, but it's
going  v e r y   s l o w ly.)
--

 - Joel Plutchak
   uucp: {allegra,ihnp4,seismo}!uwvax!uwmacc!oyster
   ARPA: oyster@unix.macc.wisc.edu