[comp.sys.amiga] Choosing an Amiga C Compiler

mjw@aluxp.UUCP (Michael Weber) (01/16/88)

    This issue has  probably  been  discussed  before  with  religous
    incantations, but what is the C compiler of choice for the Amiga?

    Lattice  claims  that  they  have  the   official   sanction   of
    Commodore-Amiga  while  Manx  describes  a  superior  programming
    environment.  Does anyone have any  recommendations  for  a  two-
    floppy  A-500  with  2.5M  of  internal  memory?   No  commercial
    development work would be done (at least not in the near future).
    It  would be used mostly to compile and modify the sources posted
    to USENET.
-- 
Michael Weber					...!ihnp4!aluxp!mjw
AT&T Bell Laboratories
Allentown, Pennsylvania				(215) 770-2732

lachac@topaz.rutgers.edu (Gerard Lachac) (01/17/88)

In article <945@aluxp.UUCP> mjw@aluxp.UUCP (Michael Weber) writes:
>    Lattice  claims  that  they  have  the   official   sanction   of
>    Commodore-Amiga  while  Manx  describes  a  superior  programming
>    environment.

If I am not mistaken, Commodore no longer endorses ANY 'C' compiler as
the official Amiga C compiler.  That distinction was dropped a while back
(but it was Lattice).





-- 
		"Truth is false and logic lost..."
					- Neil Peart
	(who at the time didn't realize he was talking about RU)
lachac@topaz.rutgers.edu <--------OR--------> {seismo|ames}!rutgers!topaz!lachac

jdg@elmgate.UUCP (Jeff Gortatowsky) (01/18/88)

In article <945@aluxp.UUCP> mjw@aluxp.UUCP (Michael Weber) writes:
>
>    This issue has  probably  been  discussed  before  with  religous
>    incantations, but what is the C compiler of choice for the Amiga?
>
[ more observations removed from here ]
>-- 
>Michael Weber					...!ihnp4!aluxp!mjw
>AT&T Bell Laboratories
>Allentown, Pennsylvania				(215) 770-2732

I have both and can say 'either one is a good choice'.  Since I've not
gotten around to purchasing the Manx SDB, I can't say just how much it's
availability should influence your decision.  I know dbx/dbxtool on my
Sun has been a 'life-saver'.  However if I coded better, I'd have not needed
it in the first place! 8^)

Again Lattice is THE official C compiler for the Amiga.  But the best advice
is go with your wallet's suggestion.  They are both fair development systems.
(I say 'fair' because niether(SP?) has a global optimizer yet, but then
niether does my Sun.... 8^)  )

-- 
Jeff Gortatowsky       {seismo,allegra}!rochester!kodak!elmgate!jdg
Eastman Kodak Company  
These comments are mine alone and not Eastman Kodak's. How's that for a
simple and complete disclaimer? 

stroyan@hpfcdc.HP.COM (Mike Stroyan) (01/18/88)

>This issue has  probably  been  discussed  before  with  religous
>incantations, but what is the C compiler of choice for the Amiga?

>Lattice  claims  that  they  have  the   official   sanction   of
>Commodore-Amiga  while  Manx  describes  a  superior  programming
>environment.  Does anyone have any  recommendations  for  a  two-
>floppy  A-500  with  2.5M  of  internal  memory?

I have only used the Manx compiler, and so can't comment on which
compiler is best.  However, I will heartily recommend that you get VD0
and Facc from ASDG to compliment whichever compiler you choose.  With
2.5M of memory, they make the compile/debug cycle much faster than a
compiler on its own.

Mike Stroyan, [hplabs!]hpfcla!stroyan

daveh@cbmvax.UUCP (Dave Haynie) (01/20/88)

in article <945@aluxp.UUCP>, mjw@aluxp.UUCP (Michael Weber) says:
> Keywords: Lattice, Manx, others?
> 
>     This issue has  probably  been  discussed  before  with  religous
>     incantations, but what is the C compiler of choice for the Amiga?
> 
>     Lattice  claims  that  they  have  the   official   sanction   of
>     Commodore-Amiga  while  Manx  describes  a  superior  programming
>     environment.  

Not an official C-A endorsement (since I paid for it myself), but I've
had excellent results with Lattice, especially the new version 4.0.

>     Does anyone have any  recommendations  for  a  two-
>     floppy  A-500  with  2.5M  of  internal  memory?   No  commercial
>     development work would be done (at least not in the near future).

At home I've got the A1000, two floppies, and 1 meg total of RAM.  The
old Lattice really ached for another floppy or meg of RAM, but the new
one's much better in this respect.  Lattice 4.0 adds the ability to 
compress include files, which I understand Manx has done all along.  The
neat thing is that these compressed files from the programmer's point look 
exactly the same as the non-compressed files, and the compiler can freely
intermix them.  They basically tokenize C keywords.  This helps not only in
"does it fit on the disk", but in "how long does it take to read in all 
those stupid include files".

Other Lattice features I like are the capability to produce in-line
library calls, and the ANSI C prototyping capability (helps tremendously
on type checking of function calls for those late night hacking sessions).
DiskSalv 1.0 and 1.2 (not quite out yet) were developed completely on
the above system; 1.2 comes out to be over 48K of source code.  Lattice
also includes an object library with lots of UNIX, ANSI, and even some
MS-DOS compatible function calls.  The compiler is smart enough to optimize
some of the common calls, like "printf()" and "strlen()", based on what's
passed to them, but this is only an option.

I understand that Manx includes many of the UNIX-style utilities, like
make and vi (Yuck) which Lattice charges extra for.

>     It  would be used mostly to compile and modify the sources posted
>     to USENET.

Amiga sources seem about split between the two, though I've rarely found
it difficult to get things running under Lattice.  Even much of the UNIX
specific code compiles with little change under Lattice.

> Michael Weber					...!ihnp4!aluxp!mjw
-- 
Dave Haynie  "The B2000 Guy"     Commodore-Amiga  "The Crew That Never Rests"
   {ihnp4|uunet|rutgers}!cbmvax!daveh      PLINK: D-DAVE H     BIX: hazy
		"I can't relax, 'cause I'm a Boinger!"

john13@garfield.UUCP (John Russell) (01/21/88)

In article <3168@cbmvax.UUCP> daveh@cbmvax.UUCP (Dave Haynie) writes:
>
>>     It  would be used mostly to compile and modify the sources posted
>>     to USENET.
>
>Amiga sources seem about split between the two, though I've rarely found
>it difficult to get things running under Lattice.  

(My mail message to the original poster bounced, but I won't burden the net
 with it since it's all been said before anyway.)

Just one nit to pick here -- if you are a novice, the Manx error-checking
is much friendlier and more helpful than that of Lattice (although it's been
a few versions since I looked at Lattice).

When I started, virtually none of the sources posted to the net could be
compiled without a single change under Lattice. Much of this was due to
not eliminating warning messages, lack of compilation info such as special
compiler switches and such, and highly customized programming environments,
but a lot was also caused by compiler pickiness; I think (famous last words)
Lattice used to generate tons of cryptic and unhelpful error messages in
common situations like line splitting due to either 80-column wrapping in
posting or expressions like

...(struct IntuitionBase *)
	OpenLibrary(...

No doubt the situation has improved, but it's best not to assume so. If you
are a novice, as I was at the time, good error-trapping is vital. Especially
if the program compiles with many warnings, then doesn't work properly.

John

PS Manx had it's share of oddities early on, like the Guru that used to occur
during compilation of PopCLI when it tried to do structure assignment...
-- 
"Am I dreaming, or was there a show on this weekend called 'Jimmy the Greek:
 Live at the Apollo'?"
					-- David Letterman

john13@garfield.UUCP (John Russell) (01/21/88)

In article <4414@garfield.UUCP> john13@garfield.UUCP (John Russell) writes:
>
>Much of this was due to not eliminating warning messages

Oops, I should clarify I meant the _programmers_ didn't take the time to
cast things correctly, declare their functions beforehand, etc. This has
been much better recently.

John
-- 
"Am I dreaming, or was there a show on this weekend called 'Jimmy the Greek:
 Live at the Apollo'?"
					-- David Letterman

cmcmanis%pepper@Sun.COM (Chuck McManis) (01/22/88)

In article <4414@garfield.UUCP> john13@garfield.UUCP (John Russell) writes:
> Just one nit to pick here -- if you are a novice, the Manx error-checking
> is much friendlier and more helpful than that of Lattice (although it's been
> a few versions since I looked at Lattice).

This struck me as a bit odd, but maybe it is just me. The Lattice compiler
complains more often about bad code, things like a return value that doesn't
match the type of the function, functions that are used inconsistently, 
argument types that don't match the function declaration etc. Manx on the
other hand was very forgiving of such practices. Now personally, I prefer
Lattice complaining that I write bad code. Also in 4.0 Lattice spits out
the line where the error occurred and then puts a caret '^' under the point
of detection. Fortunately you can turn this feature off. I generally check
into all the warnings that Lattice turns out and put in casts where 
appropriate to prevent such messages. Generally, after I have done this 
these programs have a much better chance of passing lint.


--Chuck McManis
uucp: {anywhere}!sun!cmcmanis   BIX: cmcmanis  ARPAnet: cmcmanis@sun.com
These opinions are my own and no one elses, but you knew that didn't you.

rap@dana.UUCP (Rob Peck) (01/23/88)

In article <4414@garfield.UUCP>, john13@garfield.UUCP (John Russell) writes:
>
> Lattice used to generate tons of cryptic and unhelpful error messages in
> posting or expressions like
> 
> ...(struct IntuitionBase *)
> 	OpenLibrary(...

I have to agree with the original poster in that I mostly used
Lattice 3.03 (and even now occasionally pop it in for the convenience
of using EXECUTE makesimple on that original disk, while I go for
coffee, a brownie and wash the windows).  But unmodified unix-like
sources would cause that version of Lattice little difficulty.  The
quoted construct just above caused no problems at all and in fact
I use that ALL the time.  Just my $0.02 worth.

Rob Peck				...ihnp4!hplabs!dana!rap 

john13@garfield.UUCP (John Russell) (01/24/88)

In article <39596@sun.uucp> cmcmanis@sun.UUCP (Chuck McManis) writes:
>
>The Lattice compiler
>complains more often about bad code, [ than Manx ]

Like I said, it's been a few versions since I gave up on Lattice. My only
memory of their error checking was looking in the manual to see what
"ERROR 105" or somesuch was, and then finding that although it was something
like "bad argument to function", the cause was a split at the 80th column 100
lines back in the code.

The ^^^^ under the offending line that Chuck describes in the latest Lattice is
the same as Manx does when flagging errors or warnings, so it sounds as if they
are about equal on that score now.

John
-- 
"Am I dreaming, or was there a show on this weekend called 'Jimmy the Greek:
 Live at the Apollo'?"
					-- David Letterman

malibo@arizona.edu (Rob McConeghy) (01/25/88)

In article <4431@garfield.UUCP>, john13@garfield.UUCP (John Russell) writes:
> In article <39596@sun.uucp> cmcmanis@sun.UUCP (Chuck McManis) writes:
> >
> >The Lattice compiler
> >complains more often about bad code, [ than Manx ]
> 
> Like I said, it's been a few versions since I gave up on Lattice. My only
> memory of their error checking was looking in the manual to see what
> "ERROR 105" or somesuch was, and then finding that although it was something
> like "bad argument to function", the cause was a split at the 80th column 100
> lines back in the code.

FLAME ON -

When people ask advice about which compiler to buy, they want to
hear from folks who have experience with the current versions.
They DONT want to hear about your opinions about, or experiences
with, two year old, twice updated versions.
They also don't want to hear any second-hand hearsay thoughts about
features you may think are, or are not, in a compiler you haven't used.

If somebody asks you what car they should buy, you don't tell them
that you heard that Model-T Fords only come in black.

If you don't have Lattice 4.0. I, for one, don't want to hear anything
you have to say about Lattice. And the same goes for Manx. 
And if you haven't personally used both current versions, I am not 
interested in reading your opinions about how they may compare.

FLAME OFF.

I have Lattice 4.0. I am happy with it. I have used it successfully
to port several fairly large Unix and generic programs without any
problems. It has a nice manual with lots of Unix/ANSI/etc standard
functions. It does lots of error checking but you can turn off
lots of the warning types like those cause by missing VOID's etc., if
you don't like to see them. I was also happy with Lattice 3.10.
I always upgrade my compilers to the current versions and I also keep
tabs on the Lattice BBS in case any interim bug-notices or bug-patches
become available. I recommend both these practices to anyone who is
using any piece of software on a regular basis for serious work.

I was rather amused by a recent posting that mentionned that the
error checking in Lattice was so good that it helped them get their
programs to pass Lint. I was always under the impression that Lint
was supposed to be used before you give your program to the compiler.

I have never had any problem with Lattice accepting multi-line macros.

john13@garfield.UUCP (John Russell) (01/27/88)

In article <3558@megaron.arizona.edu> malibo@arizona.edu (Rob McConeghy) writes:
>FLAME ON -
[ flames ]
>FLAME OFF.

You're right, of course. Sorry for letting my fingers (rather than my brain) do
the walking.

John
-- 
"Listen fathead, the ONE thing we DON'T need is some trigger-happy lunatic
 in charge... No I didn't mean you Mr. President... Yes sir, I'm sure you
 do get a lot of that sort of thing."
				-- Judge Harold T. Stone

uzun@wolf.UUCP (Roger Uzun) (01/28/88)

Well I have used both Lattice 4.0 and Manx 3.40.  I own Lattice
4.0 at home and it is a pretty strong compiler.  It has

1) Support for most all Unix Calls
2) Decent error checking for a C compiler.
3) Pretty efficient code generation

But it also takes forever to compile even from all ram and
the way they handle include files for system equates, while
improved over earlier versions, is still poor compared to manx.
Also any program I compile links in a bunch of error checking
code for ^c and the like and is at least 7K long.  This can probably
be corrected by a compiler switch but I have never found one other 
than -v and this did not seem to reduce code size a whole lot.  All
in all I must recommend that, If they will cost you about the same
money, go with Manx 3.6 because it has the following strengths

1) faster compile time
2) direct 020,881 support
3) faster compile time again
4) A souce Level Debugger that is GREAT (I saw it at AmiExpo)
5) Still faster compile time
6) Make Utility

I got lattice 4.0 because I could upgrade for $75.00 and I do my
commercial work on another machine.  If i had my choice I would have
chosen Manx

-Roger "LALR(n)" Uzun