[comp.lang.c++] a summary of information about C++ compilers

pomeranz@cs.swarthmore.edu (Hal Pomeranz) (08/23/88)

First, let me say thanks for the big response to my posting.  Several
people requested a summary of the replies I got, so I thought I'd post
this in case other folks were interested too.  This document is divided
into four main sections-- each one describes one of the C++
implementations currently available (AT&T, Oregon, G++, and Oasys).  The
description consists of quotes culled from the responses I received
(quotes are attributed with numbers in square brackets-- a complete
listing of sources at the end of the message), any information I could
get about cost, and a summary statement from me.  There is also a
section of general comments.  Hope this is useful:

AT&T C++:
=========

Pro:
----

"It comes with source code..." [2]

"The two biggest disadvantages are significantly slower compile times
(but no big hit on execution speed) and the lack of debugger support. 
The AT&T translator munges names around, so the name that you see in
your source isn't the "real" name.  However, using dbx's "dump" command
and cut & paste buffers greatly eases this problem.  The next release is
rumored to include a "canonical name masher", which I suspect could be
integrated into the debugger to solve the naming problem." [3]

Con:
----

"It works as a preprocessor to the regular cc compiler, so it can be
hard to relate run-time errors to the original source.  Probably the
most annoying thing about it is its tendency to generate code that cc
won't compile, which effectively limits the C++ language to a subset of
that described in the book." [7]

"This C++ is not particularly easy to install since Sun's run BSD and
C++ was originally created under System V.  I have heard however that
version 2.0 is much easier to install." [10]

"Some have noted when the language is pushed to its limits with derived
classes, streams, and virtual functions that it may break; this however
does not occur often." [10]

Cost:
-----

"Stanford has a $250 unlimited CPU site license w/source code I think
that is AT&T's standard educational price.  It produces C source, is
very portable..." [1]

"From everything I've heard, AT&T allows educational institutions to
license the source for somewhere around $100..." [8]

"... the University licence for AT&T C++ is something like $100 (and
maybee $25 per client)." [9]

In Summary:
-----------

I seems that AT&T has a good product at a reasonable price (at least for
educational institutions).  Of course, AT&T has the benefit of having the
language's creator on the staff.  However, AT&T is a pre-processor which
creates actual C code-- this is good in terms of portability (you can write
C++ code on your machine and then take it over to machines without C++),
but can cause problems debugging.


Oregon C++:
===========

Pro:
----

"Oregon has a pretty good reputation." [6]

"It appears to be fully compatible with the ATT release and to generate
fast code." [6]

Con:
----

(none)

Cost:  For 1 server and up to 5 clients: $4750, additional clients at $380 ea.
-----  (there is a 70% educational discount).  Support is $1190 per year with
       NO educational discount applicable.

Summary:
--------

I'm not sure whether no bad comments about this compiler is a good thing or
not (probably is, I guess).  The Oregon compiler seems to cost more than
AT&T, but is apparently a real compiler, not a pre-processor.  The advertising
blurb I got from Oregon (in the General Comments section below) also implies
that the compiler is an ANSI C compiler as well. 


G++:
====

Pro:
----

"A debugger (pretty good) comes with this compiler also." [4]

"... all the sorce code for it is available..." [4]

"It is constantly being updated with enhancements and bug fixes." [4]

"... it is fast and generates very good code." [5]

"... is a real, useable product.  It produces reasonably good code and
supports all the features of C++ as listed in `The C++ Programming
Language'." [7]

"Unlike the AT&T C++ compiler, it generates native code (instead of
generating C, which then must be compiled) and has some debugger support
(through gdb+, the C++ version of gdb).  This makes compiles faster/more
natural but limits portability of the compiler (not of C++)." [7]

"... it is a native code compilier which means it can make optimizaitons
posible in c++ but not in standard c." [9]

Con:
----

"...it just isn't a full implementation of cfront and there are too many
bugs for it to be a really acceptable choice for any serious
development.  There is also the current controversy over whether or not
using g++ means it falls under the GNU licensing agreements." [1]

"... it isn't error free yet.  There are some quarks in it that can be
kinda frustrating.  But I am sure that most of these problems will be
fixed." [4]

"The GNU compiler was very nice, but too early in its development cycle
for us to be able to depend on it.  Essentially, it required too much
care and feeding, as versions were being released almost weekly.  And
then there is the FSF license..." [6]

"It is not mature enough that it can be used carelessly, it occasionally
breaks on good code and sometimes accepts bad code.  It also *doesn't*
break sometimes when the AT&T C++ compiler breaks." [7]

Cost: FREE
-----

In Summary:
-----------

There seem to be two big problems with g++: (1) it isn't a finished product
yet and there are still bugs, and (2) companies can't sell products produced
with FSF software (obviously, this last really isn't a problem for educational
sites).  GNU seems to produce very fast, high quality compilers.  I expect
g++ to be something else when it's finished.  G++ is available via anonymous
FTP from prep.ai.mit.edu or uunet.uu.net


Oasys:
======

Pro:
----

"The people I have talked with are *VERY* satisfied." [11]

"it works fair, albeit somewhat slow." [12]

"Support from OASYS is very good." [12]

Con:
----

"It generates C code but they don't give you C source to create your C++
preprocessor with, so you are stuck with whatever machines Oasys decides
to support..." [1]

"I rejected the Oasys pre-compiler because it *was* a pre-compiler.
Maybe I'm a chauvinist, but I likes my code compiled." [6]

"We have problems with the debugger which is currently not working
(although this may be due to a mistake by us, it is supposed to
run)." [12]

Cost:  ???
-----

In Summary:
-----------

I didn't get enough response on this one to get a good feel for it.  Try
contacting one of the sources listed if you're interested.


General Comments:
=================

"If you get C++, I also strongly recommend that you get Keith Gorlen's
public domain OOPS library, which implements some really useful
container classes." [3]

"I'd recommend getting both g++ and some other C++ compiler if you're
doing anything serious.  You will want to do most of your work in g++ as
the error messages are better.  You will want to validate (and bug fix)
using the other one." [7]

The following is a blurb I received from Oregon Software (apparently, they
read comp.lang.c++).  Take it as an advertisement:
>
> Oregon C++ from Oregon Software (503) 245-2202 is the first true compiler
> available for the SUN 3.  Oregon C++ is a complete implementation of Bjarne
> Stroustrup's language, including his modifications made subsequent to
> writing his book.  C++ produces more reliable and maintainable code
> through the top down, object oriented approach to software design.
>
> As a true compiler it forgoes the translator step that produces C code,
> then compiles it.  Removing the translation step permits the implementation
> of the Oregon Debugger, a full SOURCE LEVEL DEBUGGER capable of handling
> all the C++ language additions including operator overloading, scope
> interpretations, objects, and instances.
>
> Oregon C++ is three compilers in one, with a switch selectable mode between
> C++, ANSI C (as currently proposed), and K&R C.  ANSI C and K&R C code can
> also be debugged using Sun's 'dbx' and 'dbxtool'.
>         
> Oregon Software is committed to keep pace with AT&T's releases of the
> language including enhancements.  Oregon C++ is compatible with Oregon
> Modula-2, and Pascal-2 and existing C libraries.  Included on the tape
> is the Keith Gorlen's NIH OOPS Class libraries.
>	
> For more information on Oregon C++ contact Ken Cramer, Product Manager
> at Oregon Software (503) 245-2202 or via net at ...!uunet!oresoft!ken
	
"C++ is the UNIX language in the future, I'm sure !" [11]


List of sources:
----------------
[1]  John Danner	cracker@jessica.stanford.edu
[2]  John Shopiro	research!shopiro
[3]  Gordon Durand	gad@cadnetix.com
[4]  Terry Sigle	terry@se-sd.SanDiego.NCR.COM
[5]  Neal		neal@cs.rochester.edu
[6]  Dave Steinhoff	...uunet!amara!des
[7]  Franz Amador	franz@june.cs.washington.edu
[8]  Jason Scheck	jasons@tekred.CNA.TEK.COM
[9]  Eric Brown		brown@galaxy.ee.rochester.edu
[10] Mark Surles	surles@cs.unc.edu
[11] Bertil Reinhammar	...!uunet!mcvax!enea!rainier!bertil
[12] Torbjorn Kronander	...!uunet!mcvax!enea!rainier!joakim!tobbe

I hope this was informative for everyone.  I can't say which choice we'll
make, but all of this info certainly helped.

Cheers!
Hal
-- 
______________________________________________________________________________
|UUCP: ...!rutgers!bpa!swatsun!pomeranz          | Living on a lighted stage
|CS Net: pomeranz@cs.swarthmore.edu              |    approaches the unreal...
|BitNet: vu-vlsi!swatsun!pomeranz@psuvax1.bitnet |                  -Rush

henry@utzoo.uucp (Henry Spencer) (08/23/88)

One thing I missed in this article was anything on memory usage.  The GNU
compiler in particular is notorious for eating 8MB memory boards alive.
-- 
Intel CPUs are not defective,  |     Henry Spencer at U of Toronto Zoology
they just act that way.        | uunet!attcan!utzoo!henry henry@zoo.toronto.edu

raymond@pioneer.arc.nasa.gov.arpa (Eric Raymond RIA) (08/26/88)

Any info on C++ for the Mac?  For the PC (80x86)?

markd@proxftl.UUCP (Mark Davidson) (08/26/88)

I know that this is a PC-only product, but I've noticed that no one has
mentioned Zortech's C++ compiler for MS-DOS, which is supposedly a true
compiler and not just a pre-processor.  I've heard that it will handle all
of the code in Bjorn's (I can't remember how his last name is spelled) C++
book and at only $99.95, the price is hard to beat.  Has anyone had any
experience with this package?
-- 
---
  In real life: Mark E. Davidson       uflorida!novavax!proxftl!markd
  Proximity Technologies, 3511 NE 22nd Ave, Ft. Lauderdale FL, 33308
  #define STANDARD_DISCLAIMER          <Quote construction site>

ech@poseidon.UUCP (Edward C Horvath) (09/02/88)

In article <13863@ames.arc.nasa.gov> raymond@pioneer.arc.nasa.gov.UUCP (Eric Raymond) writes:
>Any info on C++ for the Mac?  For the PC (80x86)?

Apple have announced that they will release a C++ preprocessor as a component
of MPW 3.0 (currently in Beta, scheduled for release by the end of '88).
They've also announce that the (more or less concurrent) release of MacApp
2.0 will also support C++ (MacApp 2.0 just went Beta: version B5 is available
from APDA now.  Beta copies of MPW 3.0 are NOT generally available yet, but
the MacApp 2.0B5 works fine with MPW 2.0.2).

=Ned Horvath=