Subject: REVIEW: SAS/C Compiler version 6.00
From: [email-masked] (Gregory M. Stelmack)
Date: Thu, 1 Oct 1992 15:42:17 GMT
Newsgroups: comp.sys.amiga.reviews

[MODERATOR'S NOTE:  On October 2, 1992, Doug Walker of SAS
	([email-masked]) responded to this review by e-mail.  I have
	enclosed his comments at appropriate places below.]

PRODUCT NAME

	SAS/C Compiler for AmigaDOS, version 6.00

BRIEF DESCRIPTION

	SAS/C 6.00 is a C development environment, including editor,
compiler, linker, debugger, on-line help, and a number of useful utilities.
[Moderator's note:  the debugger is not reviewed.]

AUTHOR/COMPANY INFORMATION

	USA:		SAS Institute, Inc.
			Book Sales
			SAS Campus Dr.
			Cary, NC 27513
		Telephone:	(919) 677-8000
		FAX:		(919) 677-8166

	Europe:		SAS Institute GmbH
			PO Box 10 53 07
			Neuenheimer Landstrasse, 28-30
			6900 Heidelberg 1
		Telephone:	(49)6221-4150
		FAX:		(49)6221-474850

	New Zealand:	SAS Institute (NZ) Ltd.
			PO Box 10-109, The Terrace
			Wellington, New Zealand
		Telephone:	(64)4-4727-595
		Telex:		NZ31525 MED
		FAX:		(64)4-4727-055

	Australia:	SAS Institute Australia Pty. Ltd.
			Private Bag No. 52
			Lane Cove, NSW 2066
		Telephone:	(61)2-428-0428
		FAX:		(61)2-418-7211

	E-mail:		For technical support, see below	

LIST PRICE

	Suggested retail is $395 US, although I have seen it for $290.
Educational price is $197.50, as is the price if you trade up from a
different compiler.  Upgrades from SAS/C 5.xx are $109.  Shipping is
extra.
	[MODERATOR'S NOTE:  SAS reports that "shipping inside the USA is
	free.  Shipping to Canada and outside the USA is extra.  European
	customers need to contact SAS Insitute in Germany to determine their
	policy on shipping."]

SPECIAL HARDWARE AND SOFTWARE REQUIREMENTS

	HARDWARE

		Requires 1 megabyte of RAM.  Some features need 2 megabytes.

		2 floppy drives are required, but a hard drive is STRONGLY
		recommended.  Uses around 5 megabytes of hard drive space,
		although this varies with how much you choose to install.

		Works with any Motorola CPU, although a faster CPU leads to
		faster compiles.

	SOFTWARE

		At least AmigaDOS 1.3.  Enhanced operation with 2.0 plus.

COPY PROTECTION

	None.  Hard drive installable.
		
REVIEW

	Well, the long-awaited upgrade to the SAS/C Compiler for AmigaDOS is
finally available.  Mine arrived a few days ago, and I have been tinkering
with it extensively since then.  I haven't been able to get in-depth into
its more complicated features yet, but have a fairly good feel for how it
works overall.  If my impressions change very much, I'll post a follow-up
review.

	SAS/C is a complete development environment.  In addition to the
compiler and linker, the package includes an editor, source-level debugger,
assembler (mostly for writing assembly functions for C programs), an on-line
help facility, sample source code, and a bunch of small, useful utilities.
Quite a bit has changed since the 5.xx releases.

	The first step when I got the new compiler was to install it.  Since
all the program names have changed, and the header files updated, I first
deleted my old Lattice C area.  Then, I ran the install program included on
Disk 1.  It asks you what parts of the compiler you want installed (allowing
you to leave out the debugger, or editor, or anything else you would prefer
not to use).  It also asks for compressed or uncompressed header files.

	The only thing I left out was the Cross-Debugger.  This lets you run
the program on one machine, and the debugger on another.  Having only one
Amiga, I left it out.  I also stored uncompressed headers for two reasons:
this makes them easier to view on-line, and with the addition of GST's
(Global Symbol Tables), they don't slow down the compile.

	Once the system was installed, I next had to modify all my icons to
point to the new utilities ("se" instead of "lse", etc.).  Fortunately, the
new "scsetup" program can go into a project and create icons for any files
that don't have them.  So, I deleted all the icons in my projects using SID,
and then ran "scsetup" on the drawers.  Presto! Instant icons for all my
source files.  Then I just had to change my options using the scoptions
utility.

	Of course, on later perusal of the documentation I discovered this
neat command line switch for "scsetup" called "FORCE".  It will force
"scsetup" to create icons in the drawer even if icons already exist.  That
removes my step of deleting the icons first.  I recommend you use that
switch if upgrading from 5.xx.

	Now I was ready to code.  Things work like they did in 5.10 -- there
are icons for each source file, and you double-click on the icon to edit it.
To create a new file, click on the 'Edit' icon, and give it a name.  "se"
will create an icon for you.  The editor now has a file requester if you run
under 2.0 (it uses the ASL requester), and lets you mark blocks of text by
dragging the mouse.  In addition, it has a complete ARexx interface,
allowing you to write your own scripts.  It can also run ARexx commands, and
several are provided, one of which gives access to the on-line help facility.

	After editing, make sure you set your options with the Options
utility.  This lets you specify your compiler options in an Intuition
environment.  Once you get your options straight, click the "Build" icon, and
the compiler goes to work.

	If you really like using the CLI, be warned that 6.00 uses a
different style of command-line switch.  They now use the AmigaDOS style.
This means that there are full English-text words for compiler options.
CPU=68030 tells the compiler to generate code optimized for the 68030, for
example.  In addition, switches are no longer just toggles, something that
caused problems in 5.10.

	The new version has vastly improved error messages to help you
pinpoint errors.  In addition, it presents them in a small window that is
part of the message browsing facility.  If you have specified the
'NoErrorRexx' option, it will automatically open "se" to the spot of any
error.  Clicking the error message in the browser will do the same thing.
If 'ErrorRexx' is specified to the compiler, an ARexx facility is opened,
allowing you to use any editor in the same way.  I use "se", so I have not
much explored this option.

	[MODERATOR'S NOTE:  SAS reports that "The message browser window
	gets messages if the ErrorRexx option is enabled.  ErrorRexx is
	AUTOMATICALLY enabled if you compile from WorkBench.  You can teach
	the browser how to talk to your editor; once you have done this, you
	can double-click on the message and it will invoke your editor for
	you, then talk to it via ARexx to move to the correct file and line
	number.  Therefore, the "ARexx facility" that you mention is
	actually the message browser itself.  Macros to bind the message
	browser to SE, CygnusEd and TurboText are provided."]

	If everything goes OK, you are now ready to run you program.  If
something goes wrong, you can then run the debugger.  I have not had a chance
to play with the debugger yet, so I can't give a first-hand account.
However, it is supposed to boast an improved interface, and more importantly
let you enter C expressions to display, instead of just variable names.
That fixes one of the biggest gripes people have had about CPR.

	One of the other big additions are GSTs, or Global Symbol Tables.
Essentially, you compile your program once with the MakeGST option.  This
compiles all of your header files ONLY, and creates a GST.  Then, when you
later compile, you specify a GST to use.  Before a header file gets included,
the compiler searches the GST.  If that file is found, the precompiled
information in the GST is used.  Since GST's stay in RAM, disk access is
avoided, and the compiles go much faster.

	More importantly, the GSTs in RAM are able to be browsed.  A
facility called HyperGST is included for this purpose.  Any GST in memory may
be browsed.  This means that you can look up your structure definitions while
in the editor OR the debugger, without having to go hunting through the
header files looking for it.

	AmigaGuide is now used for on-line help.  All aspects of the compiler
have AmigaGuide help files.  This includes all the utilities, as well as the
actual library functions.  No more reaching for the books when you have a
question on the parameters for a function.

	Another new addition is not part of the actual compiler.  SAS now has
an E-mail address for technical support.  This new facility is called EMITS,
for Electronic Mail Interface to Technical Support.  There are complete
instructions on using it with the documentation, but a brief description
follows: You first need to register, sending e-mail with a few specified
lines telling them your name, registration number, and phone number.  They
will then send you more detailed instructions on reporting problems.  When
you do report a problem, you are given a tracking number, which you include
with all future correspondence on that problem.  In this manner, one person
is assigned who will take care of you through the entire lifetime of the
problem to make sure it gets straightened out.

	Well, with such a big product, I'm sure I missed something.  But that
should cover the most important points.

LIKES AND DISLIKES

	SAS/C 6.00 is MUCH improved over earlier releases.  Some of the high
points that hit me right away:

	1) "se" now lets you mark text with the mouse.

	2) An ARexx macro is included for "se" that, when attached to a key,
	lets you put the cursor on a SAS library call and hit the key.  This
	will pop up the online help to the page containing that function.

	3) Easy updating of your old 5.xx project icons to the new 6.00
	icons using the "scsetup" and 2 other utilities.

	4) Recompiling one of my software products cut the code size from
	94,000 bytes to 90,000 without changing any options.

	5) Compiles are faster, thanks to the use of shared libraries.

	6) A utility called "schelp" is included which gives you hot-key
	access to the on-line help.  Hit CTRL-HELP, and it pops up.

	7) If the compiler finds an error in a header file, it not only pops
	up the C source file it was compiling, but will now also open the
	header file and take you to the line that caused the problem.

	I am sure there will be more, as I've only been playing around with
it for a few days.

	My only real dislike at the moment is that I don't have a flicker
fixer, and thus run a non-interlaced workbench.  With the help facility,
message browser, and editor up, I run out of screen space fast.

	One improvement I would like to see is an amigaguide file for the
system autodocs.  All the SAS/C functions are on-line, but none of the
AmigaDOS ones.  If this has been done, I would appreciate a pointer to the
file.

	[MODERATOR'S NOTE:  SAS reports that "A utility comes with the
	AmigaGuide developers' kit that will convert autodocs as provided by
	Commodore to AmigaGuide format.  The reason we don't provide any
	AmigaGuide files for the autodocs is that we expect most developers
	to get AmigaGuide from Commodore soon (Commodore plans to take steps
	to make it more widely available) and you'll be able to keep your
	documentation more current by rerunning the utility on each set of
	autodocs."]

COMPARISON TO OTHER SIMILAR PRODUCTS

	I have only used other C compilers on the Amiga a little bit, so I
can't do detailed comparisons on code generation, etc.  I can say that SAS
has a much nicer interface and is easier to work with than the other
compilers I have used.  I have done extensive coding on various mainframe
platforms, and like the feel of SAS/C on the Amiga much better than any
other development environment I have used.  I have found others that beat it
in particular areas, but none that have been as well-rounded.  SAS/C always
has had something the other environments didn't.

BUGS

	I have found 2 bugs so far, both of which were promptly responded to
by SAS.  The first is that in the editor "se", if you have your options set
to "Use the TAB character for TABs" and "Auto Indent", the program WILL
crash when inserting lines.  This has been fixed and will be available in
the first set of patches.  For now, use "Expand TABs to spaces" as the
easiest workaround.

	The second was with registering for EMITS.  It didn't seem to like
my old Lattice-style registration number.  Again, SAS cleaned this up pretty
quick, and it seems to work OK now.

	Besides that, everything is clean.  I would like to emphasize that
SAS was EXTREMELY quick in responding to and cleaning up these problems.

SUPPORT

	See above.  Basically, I had GREAT support when I found the above two
problems.

WARRANTY

	I could not find information on the warranty -- it was probably on
the disk envelope, which I threw away soon after opening (blush).  SAS has
been very good on other problems, and I would expect them to be just as good
if you receive bad disks.  And, of course, always back up your originals!

	[MODERATOR'S NOTE:  SAS reports that "It is on the envelope.  It's
	basically a 90-day warranty on media defects, but we have always
	helped registered customers out in the past if they have some kind
	of catastrophe and lose all copies of the product."]

CONCLUSIONS

	Over all, I am quite impressed with the new compiler environment.  I
think that is one of the most important points to stress -- SAS/C is a an
entire development environment, including everything you need to get going.
In addition to improvements in the code generation, the new on-line help
facilities and improved user interfaces have made it MUCH easier to do C
development.  Programming on the Amiga has always been FUN, and SAS has now
made it less WORK.  Overall, it is the best all-around development
environment I have worked with on any platform.

COPYRIGHT NOTICE
	
	Copyright? What Copyright? Spread it around, grant me fame :)

---

   Daniel Barrett, Moderator, comp.sys.amiga.reviews
   Send reviews to:	[email-masked]
   Request information:	[email-masked]
   General discussion:	[email-masked]