home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!usc!sdd.hp.com!swrinde!gatech!concert!sas!mozart.unx.sas.com!walker
- From: walker@twix.unx.sas.com (Doug Walker)
- Newsgroups: comp.sys.amiga.programmer
- Subject: SAS/C 6.0 Details (LONG!)
- Message-ID: <BsxCu2.5A7@unx.sas.com>
- Date: 13 Aug 92 13:44:26 GMT
- Sender: news@unx.sas.com (Noter of Newsworthy Events)
- Organization: SAS Institute Inc.
- Lines: 203
- Originator: walker@twix.unx.sas.com
- Nntp-Posting-Host: twix.unx.sas.com
-
-
- The following sections describe in more detail some of the changes and
- enhancements to the SAS/C(r) Development System, Version 6.0.
-
- Version 6.0 contains 1200 pages of all-new documentation, including
- a quick reference guide, library reference manual, and a two-volume
- user's guide. Except for the quick reference guide, all documentation
- is in three-ring binders which lie flat while you work.
-
- The SAS/C Development System has an extensive online help system
- implemented using AmigaGuide, a hypertext system from Commodore.
- The online help describes each utility, CodeProbe command, editor
- command, library function, diagnostic message, and compiler option.
- Help is available from within the editor, the debugger, the message
- browser, the options program and from the Shell command line.
-
- The SAS Institute Technical Support Division has a new facility
- called EMITS (Electronic Mail Interface to Technical Support) that
- allows you to report problems and receive help through Internet.
-
- The "lc" compiler front-end has been replaced with the new "sc"
- front-end, which takes options in a form similar to AmigaDOS command
- templates. The new "sc" front-end accepts C source files, assembly
- language files, object files, and libraries, which means you will
- rarely have to invoke the assembler or linker yourself. You may specify
- options before or after the filenames. Most options have a positive and
- a negative form; none are toggles. This makes it easier to use them
- with an options file.
-
- To help you make the transition to Version 6, the SAS/C Development
- System provides two utilities, "sc5" and "lctosc". The "sc5" command
- accepts options in the form accepted by "lc" and invokes the Version 6
- compiler. The "lctosc" utility accepts options in the form accepted by
- "lc" and prints the equivalent "sc" options to stdout. Both "sc5" and
- "lctosc" read the sascopts file, if present.
-
- The Version 6.0 compiler, libraries, and header files are completely
- ANSI-compliant. In addition, many language extensions customize
- the compiler for the Amiga or simply make coding more convenient.
-
- Most of the compiler executables (lc1, lc2, go) have been replaced
- by shared libraries. If your system has enough memory, the shared
- libraries remain loaded after their first use, thereby speeding
- up compilation significantly. If memory runs short, the operating
- system removes them for you automatically.
-
- The precompiled header files in Version 5 have been replaced with
- GSTs (Global Symbol Tables). GSTs are much faster than precompiled
- headers because they remain in RAM between compiles if memory permits.
- Some additional utilities, "gst" and "hypergst", allow you to
- browse the RAM-resident GST files for information on symbols defined
- in system header files or in your header files.
-
- The new "scmsg" utility enables you to integrate any editor that
- supports AREXX into the SAS/C Development System. A simple compiler
- option routes all your error and warning messages to "scmsg", which
- can invoke the editor of your choice and communicate with it as
- necessary to edit the file and line number containing the error.
- You can also program the keys in your editor to ask "scmsg" to
- provide information about the errors and warnings.
-
- The new peephole optimizer, which runs concurrently with Phase 2 of the
- compiler, improves code quality significantly. The global optimizer
- supports many new optimizations, including inline functions. You can
- use the "__inline" keyword to specify a function that is to be inlined,
- or you can give the optimizer conditions under which functions should be
- automatically inlined.
-
- Code generation has been greatly improved with 6.0. The new
- code generator, in combination with the global and peephole
- optimizers, makes much better use of registers and addressing
- modes. The system makes intelligent decisions about what values
- should be kept in registers. Instead of setting up a frame
- pointer with the LINK and UNLINK instructions, the compiler
- addresses all stack-based data items relative to the stack pointer,
- thereby freeing an additional address register for use by your
- program.
-
- The CodeProbe debugger has numerous enhancements. The major
- enhancements include the following:
-
- The command syntax has been totally rewritten and greatly extended.
-
- Normal C expressions, including casts and function calls, are
- accepted anywhere a variable name can be used.
-
- New windows include a memory window for browsing memory locations
- and a calls window that allows you to see a traceback of all callers
- of the current function.
-
- Built-in functions are available to to perform activities like
- strcmp, strcpy, memcmp, and others from the debugger command line.
-
- New support for debugging AmigaDOS shared libraries.
-
- Automatic detection of enforcer hits caused by your program, halting
- your program at the location of the hit.
-
- Amiga-to-Amiga cross-debugging capability. This new feature allows you
- to run your program on one Amiga and debug the program using another Amiga
- connected through the serial port or a network file system.
-
- The compiler still generates code by default to check for stack overflow
- at the entry to each function. However, this code is more reliable
- under Version 6.0. The compiler also supports a new option that
- generates code to allocate a new stack and allow your program to
- continue running if the old stack runs out.
-
- The compiler now supports the common model for external data as
- well as the strict reference-definition model used in 5.10. Under
- strict reference-definition, external data may be declared in more
- than one module, but may only be defined in one module. Under
- common model, external data may be defined in more than one module,
- and all such definitions are treated as a single definition. (A
- declaration of external data uses the "extern" keyword; a definition
- does not.)
-
- The compiler now supports an option that generates special code to tell
- you which portions of your program were executed by your test cases.
- The new "cover" utility analyzes the data produced by the compiler when
- you specify this option. This information helps you design test cases
- that test all portions of your code.
-
- The "stringmerge" compiler option, equivalent to the "-cs" option in
- Version 5, merges all string constants and places them in the code
- section. Unlike the Version 5 option, "stringmerge" also places all
- data declared "static const" and all automatic initializer data in the
- code section. This makes the near data section smaller and makes it
- easier to write code that will go into ROM.
-
- The compiler can now produce a disassembly of the generated object code.
- The C source code is inserted as comments.
-
- The compiler adjusts dynamically to low memory situations. If you
- compile your program and your Amiga runs low on memory, the compiler
- displays the message "***Freeing Resources" and frees memory to enable
- it to continue the compilation. You can also use the "memorysize"
- compiler option to limit the compiler's memory use.
-
- You can designate autoinitialization functions that you want the startup
- code to call automatically before it calls your main routine. You can
- also designate autotermination functions that you want the termination
- code to call after main returns.
-
- System library bases that are not defined in your code are automatically
- opened and initialized. This means that you do not need to explicitly
- call OpenLibrary to initialize libraries such as intuition.library,
- graphics.library, and others.
-
- The SAS/C Compiler now permits references to unnamed unions and direct
- references to members of substructures. The compiler also permits
- zero-length arrays as members of structures.
-
- The new #pragma tagcall allows you to call AmigaDOS functions that take
- a variable parameter list without using assembler stubs.
-
- The new #pragma msg allows you to control compiler diagnostic output
- more closely. You can suppress or enable warning messages on a
- line-by-line level.
-
- The compiler now supports char, short, and long enum types.
-
- Compiler error and warning messages are much clearer. Much more
- information is given with the diagnostic. For example, code that in
- previous version of the compiler would have produced the message
- "argument type mismatch" would now produce the message "parameter type
- mismatch; expecting "BPTR", found "struct FileHandle *" ". Also,
- code that produced the error "external item attribute mismatch" would
- now produce the error "function definition conflicts with prototype;
- see line 68 file "protos.h" ".
-
- The compiler can generate code to call Commodore's "utility.library"
- under AmigaDOS 2.0 instead of using compiler-provided stub routines
- to perform various out-of-line mathematical operations.
-
- In addition to generating function prototypes, the compiler can now
- generate declarations for external data items. This feature allows you
- to maintain declarations for all functions and external data items in
- your project that are brought up to date automatically simply by
- specifying the "genproto" option and recompiling.
-
- Examples are provided which show you how to use many of the new
- features of the system, including special startup code, coverage
- analysis, building shared libraries and so forth.
-
- For more information or to order Version 6 of the SAS/C Development
- System, contact your nearest Amiga dealer or SAS Institute at
- 919-677-8000. Registered users in the USA will be receiving a
- mailing this week, and might consider using the provided order form
- instead. Registered users outside the USA will be getting a mailing
- in September.
-
- SAS and SAS/C are registered trademarks of SAS Institute Inc., Cary,
- NC, USA. All other trade names references are trademarks or
- registered trademarks of their respective companies.
- --
- *****
- =*|_o_o|\\=====Doug Walker, Software Distiller====== BBS: (919)460-7430 =
- *|. o.| || 1200/2400/9600 Dual
- | o |// For all you do, this bug's for you!
- ======
- usenet: walker@unx.sas.com bix: djwalker
- Any opinions expressed are mine, not those of SAS Institute, Inc.
-