SAS C V6.00  ~~~~~~~~~~~  Lattice C Compiler  A Quick Review by Robert Lang  ( 31 )|( 31 )|( 31 )|( 31 )|( 31 )|( 31 )|( 31 )|( 31 )|( 31 )|( 31 ) Now that my exams are finished, I should be spending the time between them and starting work exercising to remove that damned exam-flab ! (Do we all eat under exam stress ??) Unfortunately SAS have just sent me the best exercise killer there is...although perhaps my fingers will get a workout or two. With a development system as nice as this at my hands, I'll probably never see the light of day again....better work on designing a combination exercise-machine & computer-table, I'm sure I'm not the only one in need. Enough of that, and more of SAS6. Those of you that already use SAS will have no doubt upgraded. The SAS C compiler package was awarded the "Robert Lang Best Development Award" a long time ago....but can they make it better ? They have. SAS6 has some very nice features, and is most definitely an improvement on the already brilliant system we knew in 5.10a.  The manuals Immediately obvious is the improvement on the manuals. I like to call these very nice manuals the "now-useless manuals", due to the online help facilities, but I'll get back to that later. The manuals for 5.10a were a pain in the butt to this little "non-practical" engineer. I sat down with them to discover they came in a hundred little parts that had to be assembled into the nice ring binders. An hour or so later, I'd broken out in a sweat but had the manuals made. I never really got to like them, though, since I could seldom find anything. Maybe I put them together incorrectly. The SAS6 manuals are in three parts only, ie. under five minutes construction to make the even-nicer ring binders complete. And I can find things inside. I've since sat and read the whole manuals (skimming the reference stuff of course), and learnt a lot from simple examples and thorough explanations. The main user's manual is brilliant. Unfortunately (or not) the manuals are nearly redundant. Awesome online help is available for just about everything, using Commodore's very nice "AmigaGuide" hypertext facility. You can step your way through the manuals with mouse-clicking ease, making it a dream to find things. In 2 weeks of pretty much solid tinkering with the product, I haven't referenced the hardcopy manuals once, using only online help to solve my problems. Of course the manuals contain a lot of "how-tos" that the online help doesn't, so they will be invaluable when I decide to exercise some of the features of the SAS package a little later on.  Using Workbench SAS6 is very nicely integrated. The WorkBench interface from 5.10a that I never used has been sufficiently upgraded such that I have been using it with V6. Imagine programming from the WorkBench !! Click an icon to build your project, click an icon to run it, click an icon to edit it, it's brilliant ! Fellow programmers I have been chatting with are stunned to see the old "hot fingers" using the workbench, but I'm liking it so far. I still need my shell around for some nitty-gritty, but the point and click interface is brilliant.  Configuring SCOpts is the configuration program which sets the options for default projects or for the current projects. All options of the full package can be accessed from this intuition-based program, which is very easy to use and a heck of a lot easier than remembering command line arguments. These options are read from either the workbench compilation or the shell compilation....very nice indeed. The options to the compiler have been "workbench2-ised" such that they no long use '-' switches, but use keywords instead, ie. where you used to type 'lc -L' to get a link option on the compiler, you now type 'sc link' for the link option. The compiler frontend, now called SC, can take anything as arguments, and it decides for you what action is needed, ie. you can supply C files, object files, assembly files, and link libraries on the one command line and SC arbitrates for the correct creation of your project. These changes to the general usage of SAS haven't gone unnoticed by the development team. Utilities like 'lctosc' and 'sc5' allow the usage and conversion of V5 compiler options to V6 compiler options.  Renaming A slight hassle (very slight) is the renaming of the complete system, but it's for the better. ie. lmk becomes smake, lc -> sc, blink -> slink, lse -> se. This is good consistency and bear in mind that these aren't simple renames, the whole package has been upgraded. The optimiser is even more powerful than before, with inline processing (a la C++), peephole optimisations and further enhancements to existing optimisations. It is hard to list all of the brilliant features, but let me say that the compiler operates much faster than before, and I have noticed marginal improvements in output executable size. The compiler itself runs as a series of familiar resident libraries (ie. scdebug.library) hence much of the compiler remains resident when used and only the portions you are using are loaded into memory....very efficient.  Error logging Errors can be logged to a message facility, (SCMSG) which opens a small window and displays errors as they are logged. These errors can then be selected to invoke AREXX macros to load your favourite editor (or SE as supplied) and cause it to jump to the error. Many other error logging facilities are available.  GST (acronym duplication) A special new feature of the SAS6 compiler are the Global Symbol Tables (GSTs), which are basically pre-compiled symbol tables for use with your project. What you do is when compiling your project, you specify for it to output a GST and it stores in this GST all the symbols from used headers files etc. From what I've seen, a GST can be quite large in comparison to the project (a 30k project of mine generated a 300k GST), but for most developers is not a problem and I wouldn't envisage using a GST on a small project anyway. The benefit of a GST ? It is _DAMN_ fast. I had a huge project here which I compiled a GST for. Without the GST, the phase 1 of the compilation took 9 seconds, timed by my wristwatch. With the GST, I couldn't time it, phase 1 was over before it told me it was processing phase 1....a vast improvement in speed, making GSTs a must for big applications. In general SAS6 is put together very well. The whole package installs using the Commodore Install facility, which is very familiar now and very easy to use. The package installs into one single directory, even the libraries used by the compiler, and hence future upgrades will not affect your own directories, just the 'SC' directory. So that's it. I could list features, but they are best obtained from SAS themselves, ring and ask for an order form and they will be happy to oblige. (I hope ! They may tear their hair out when they read this !)  Conclusion : In my opinion, SAS6 is the best supported and integrated development system for the Amiga to date. I'll quickly say to finish that SAS in Sydney have been brilliant when dealing with me. When I ordered my upgrade (which is $175...seems pricey, but you get the COMPLETE V6 package, no little upgrades here, so it's quite cheap in actual fact...) I was told that it would be here in about 2 weeks. Right on the deadline of those two weeks, when I was about to ring and hassle them, I was rung by them and told they had stock problems (something with customs) and that my delivery would be late. How late ? I asked and was told "it should be there Monday". Well, I've heard that before many times from Computer Companies, and not one has been accurate, not even (in fact, ESPECIALLY NOT) Commodore ! So I expected to ring SAS later in the week and hassle them, but Monday afternoon, there is was. Thanks SAS ! Price: RRP $625 (MD's price $550) Availability: Some local dealers; Megadisc  ( 31 )|( 31 )|( 31 )|( 31 )|( 31 )|( 31 )|( 31 )|( 31 )|( 31 )|( 31 )