Newsgroups: comp.sys.amiga.reviews Path: menudo.uh.edu!usenet From: stelmack@eggo.csee.usf.edu (Gregory M. Stelmack) Subject: REVIEW: SAS/C Compiler version 6.00 Message-ID: <1992Oct1.154217.5111@menudo.uh.edu> Followup-To: comp.sys.amiga.programmer Keywords: C compiler, development, programming, commercial Sender: amiga-reviews@math.uh.edu (comp.sys.amiga.reviews moderator) Nntp-Posting-Host: karazm.math.uh.edu Reply-To: stelmack@eggo.csee.usf.edu (Gregory M. Stelmack) Organization: The Amiga Online Review Column - ed. Daniel Barrett Date: Thu, 1 Oct 1992 15:42:17 GMT [MODERATOR'S NOTE: On October 2, 1992, Doug Walker of SAS (walker@unx.sas.com) 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: amiga-reviews-submissions@math.uh.edu Request information: amiga-reviews-requests@math.uh.edu General discussion: amiga-reviews@math.uh.edu