home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / sys / amiga / programm / 12271 < prev    next >
Encoding:
Internet Message Format  |  1992-08-13  |  10.4 KB

  1. Path: sparky!uunet!usc!sdd.hp.com!swrinde!gatech!concert!sas!mozart.unx.sas.com!walker
  2. From: walker@twix.unx.sas.com (Doug Walker)
  3. Newsgroups: comp.sys.amiga.programmer
  4. Subject: SAS/C 6.0 Details (LONG!)
  5. Message-ID: <BsxCu2.5A7@unx.sas.com>
  6. Date: 13 Aug 92 13:44:26 GMT
  7. Sender: news@unx.sas.com (Noter of Newsworthy Events)
  8. Organization: SAS Institute Inc.
  9. Lines: 203
  10. Originator: walker@twix.unx.sas.com
  11. Nntp-Posting-Host: twix.unx.sas.com
  12.  
  13.  
  14. The following sections describe in more detail some of the changes and 
  15. enhancements to the SAS/C(r) Development System, Version 6.0.
  16.  
  17. Version 6.0 contains 1200 pages of all-new documentation, including
  18. a quick reference guide, library reference manual, and a two-volume
  19. user's guide.  Except for the quick reference guide, all documentation
  20. is in three-ring binders which lie flat while you work.
  21.  
  22. The SAS/C Development System has an extensive online help system
  23. implemented using AmigaGuide, a hypertext system from Commodore.
  24. The online help describes each utility, CodeProbe command, editor
  25. command, library function, diagnostic message, and compiler option.
  26. Help is available from within the editor, the debugger, the message
  27. browser, the options program and from the Shell command line.
  28.  
  29. The SAS Institute Technical Support Division has a new facility
  30. called EMITS (Electronic Mail Interface to Technical Support) that
  31. allows you to report problems and receive help through Internet.
  32.  
  33. The "lc" compiler front-end has been replaced with the new "sc"
  34. front-end, which takes options in a form similar to AmigaDOS command
  35. templates.  The new "sc" front-end accepts C source files, assembly
  36. language files, object files, and libraries, which means you will
  37. rarely have to invoke the assembler or linker yourself.  You may specify
  38. options before or after the filenames.  Most options have a positive and
  39. a negative form; none are toggles.  This makes it easier to use them
  40. with an options file.
  41.  
  42. To help you make the transition to Version 6, the SAS/C Development
  43. System provides two utilities, "sc5" and "lctosc".  The "sc5" command
  44. accepts options in the form accepted by "lc" and invokes the Version 6
  45. compiler.  The "lctosc" utility accepts options in the form accepted by
  46. "lc" and prints the equivalent "sc" options to stdout.  Both "sc5" and
  47. "lctosc" read the sascopts file, if present.
  48.  
  49. The Version 6.0 compiler, libraries, and header files are completely
  50. ANSI-compliant.  In addition, many language extensions customize
  51. the compiler for the Amiga or simply make coding more convenient.
  52.  
  53. Most of the compiler executables (lc1, lc2, go) have been replaced
  54. by shared libraries.  If your system has enough memory, the shared
  55. libraries remain loaded after their first use, thereby speeding
  56. up compilation significantly.  If memory runs short, the operating
  57. system removes them for you automatically.
  58.  
  59. The precompiled header files in Version 5 have been replaced with
  60. GSTs (Global Symbol Tables).  GSTs are much faster than precompiled
  61. headers because they remain in RAM between compiles if memory permits.
  62. Some additional utilities, "gst" and "hypergst", allow you to
  63. browse the RAM-resident GST files for information on symbols defined
  64. in system header files or in your header files.
  65.  
  66. The new "scmsg" utility enables you to integrate any editor that
  67. supports AREXX into the SAS/C Development System.  A simple compiler
  68. option routes all your error and warning messages to "scmsg", which
  69. can invoke the editor of your choice and communicate with it as
  70. necessary to edit the file and line number containing the error.
  71. You can also program the keys in your editor to ask "scmsg" to 
  72. provide information about the errors and warnings.
  73.  
  74. The new peephole optimizer, which runs concurrently with Phase 2 of the
  75. compiler, improves code quality significantly.  The global optimizer
  76. supports many new optimizations, including inline functions.  You can
  77. use the "__inline" keyword to specify a function that is to be inlined,
  78. or you can give the optimizer conditions under which functions should be
  79. automatically inlined.
  80.  
  81. Code generation has been greatly improved with 6.0.  The new
  82. code generator, in combination with the global and peephole
  83. optimizers, makes much better use of registers and addressing
  84. modes.  The system makes intelligent decisions about what values
  85. should be kept in registers.  Instead of setting up a frame
  86. pointer with the LINK and UNLINK instructions, the compiler
  87. addresses all stack-based data items relative to the stack pointer,
  88. thereby freeing an additional address register for use by your
  89. program.
  90.  
  91. The CodeProbe debugger has numerous enhancements.  The major
  92. enhancements include the following:
  93.  
  94.    The command syntax has been totally rewritten and greatly extended.
  95.  
  96.    Normal C expressions, including casts and function calls, are
  97.    accepted anywhere a variable name can be used.
  98.  
  99.    New windows include a memory window for browsing memory locations
  100.    and a calls window that allows you to see a traceback of all callers
  101.    of the current function.
  102.  
  103.    Built-in functions are available to to perform activities like
  104.    strcmp, strcpy, memcmp, and others from the debugger command line.
  105.  
  106.    New support for debugging AmigaDOS shared libraries.
  107.  
  108.    Automatic detection of enforcer hits caused by your program, halting 
  109.    your program at the location of the hit.
  110.  
  111.    Amiga-to-Amiga cross-debugging capability.  This new feature allows you 
  112.    to run your program on one Amiga and debug the program using another Amiga 
  113.    connected through the serial port or a network file system.
  114.  
  115. The compiler still generates code by default to check for stack overflow
  116. at the entry to each function.  However, this code is more reliable
  117. under Version 6.0.  The compiler also supports a new option that
  118. generates code to allocate a new stack and allow your program to
  119. continue running if the old stack runs out.
  120.  
  121. The compiler now supports the common model for external data as
  122. well as the strict reference-definition model used in 5.10.  Under
  123. strict reference-definition, external data may be declared in more
  124. than one module, but may only be defined in one module.  Under
  125. common model, external data may be defined in more than one module,
  126. and all such definitions are treated as a single definition.  (A
  127. declaration of external data uses the "extern" keyword; a definition
  128. does not.)
  129.  
  130. The compiler now supports an option that generates special code to tell
  131. you which portions of your program were executed by your test cases.  
  132. The new "cover" utility analyzes the data produced by the compiler when 
  133. you specify this option.  This information helps you design test cases 
  134. that test all portions of your code.
  135.  
  136. The "stringmerge" compiler option, equivalent to the "-cs" option in
  137. Version 5, merges all string constants and places them in the code
  138. section.  Unlike the Version 5 option,  "stringmerge"  also places all
  139. data declared "static const" and all automatic initializer data in the
  140. code section.  This makes the near data section smaller and makes it
  141. easier to write code that will go into ROM.
  142.  
  143. The compiler can now produce a disassembly of the generated object code.
  144. The C source code is inserted as comments.
  145.  
  146. The compiler adjusts dynamically to low memory situations.  If you
  147. compile your program and your Amiga runs low on memory, the compiler
  148. displays the message "***Freeing Resources" and frees memory to enable
  149. it to continue the compilation.  You can also use the "memorysize"
  150. compiler option to limit the compiler's memory use.
  151.  
  152. You can designate autoinitialization functions that you want the startup
  153. code to call automatically before it calls your main routine.  You can
  154. also designate autotermination functions that you want the termination
  155. code to call after main returns.
  156.  
  157. System library bases that are not defined in your code are automatically
  158. opened and initialized.  This means that you do not need to explicitly
  159. call OpenLibrary to initialize libraries such as intuition.library,
  160. graphics.library, and others.
  161.  
  162. The SAS/C Compiler now permits references to unnamed unions and direct
  163. references to members of substructures.  The compiler also permits
  164. zero-length arrays as members of structures.
  165.  
  166. The new #pragma tagcall allows you to call AmigaDOS functions that take
  167. a variable parameter list without using assembler stubs.
  168.  
  169. The new #pragma msg allows you to control compiler diagnostic output
  170. more closely.  You can suppress or enable warning messages on a
  171. line-by-line level.
  172.  
  173. The compiler now supports char, short, and long enum types.
  174.  
  175. Compiler error and warning messages are much clearer.  Much more
  176. information is given with the diagnostic.  For example, code that in
  177. previous version of the compiler would have produced the message
  178. "argument type mismatch" would now produce the message "parameter type
  179. mismatch; expecting "BPTR", found "struct FileHandle *" ".  Also,
  180. code that produced the error "external item attribute mismatch" would
  181. now produce the error "function definition conflicts with prototype;
  182. see line 68 file "protos.h" ".
  183.  
  184. The compiler can generate code to call Commodore's "utility.library"
  185. under AmigaDOS 2.0 instead of using compiler-provided stub routines
  186. to perform various out-of-line mathematical operations.
  187.  
  188. In addition to generating function prototypes, the compiler can now
  189. generate declarations for external data items.  This feature allows you
  190. to maintain declarations for all functions and external data items in
  191. your project that are brought up to date automatically simply by
  192. specifying the "genproto" option and recompiling.
  193.  
  194. Examples are provided which show you how to use many of the new
  195. features of the system, including special startup code, coverage
  196. analysis, building shared libraries and so forth.
  197.  
  198. For more information or to order Version 6 of the SAS/C Development 
  199. System, contact your nearest Amiga dealer or SAS Institute at 
  200. 919-677-8000.   Registered users in the USA will be receiving a 
  201. mailing this week, and might consider using the provided order form
  202. instead.  Registered users outside the USA will be getting a mailing
  203. in September.
  204.  
  205. SAS and SAS/C are registered trademarks of SAS Institute Inc., Cary,
  206. NC, USA. All other trade names references are trademarks or
  207. registered trademarks of their respective companies.
  208. -- 
  209.   *****
  210. =*|_o_o|\\=====Doug Walker, Software Distiller====== BBS: (919)460-7430 =
  211.  *|. o.| ||                                          1200/2400/9600 Dual
  212.   | o  |//     For all you do, this bug's for you!
  213.   ====== 
  214. usenet: walker@unx.sas.com                            bix: djwalker 
  215. Any opinions expressed are mine, not those of SAS Institute, Inc.
  216.