Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ cc.9.2.release_notes() — Apollo

Media Vault

Software Library

Restoration Projects

Artifacts Sought









                               DOMAIN C Release Notes

                                Software Release 9.2

                                  Part No. 005500

                                    Revision 03








                       This    document   describes   the   C
                       compiler (version  4.16)  and  library
                       for DOMAIN software release 9.2.

                       The  release notes for standard DOMAIN
                       software and other  optional  products
                       are   documented   in  other  sets  of
                       release notes and are located  in  the
                       system /doc directory.






















                                APOLLO COMPUTER INC.
                                 330 Billerica Road
                          Chelmsford, Massachusetts 01824





















  c  1986 Apollo Computer Inc.

 All rights reserved.

 Printed in U.S.A.

 Print date:  February, 1986

 This  document  was  formatted  using the FMT tool distributed with the DOMAIN
 computer system.

 APOLLO and DOMAIN are registered trademarks of Apollo Computer Inc.
 AEGIS, DOMAIN/IX, DOMAIN/Dialogue, D3M, DPSS, DGR,  GMR,  GPR,  and  DSEE  are
 trademarks of Apollo Computer Inc.



 Apollo  Computer Inc. reserves the right to make changes in specifications and
 other information contained in this publication without prior notice, and  the
 reader  should,  in  all  cases,  consult  Apollo  Computer  Inc. to determine
 whether any such changes have been made.

 THE TERMS AND CONDITIONS GOVERNING THE SALE OF APOLLO COMPUTER  INC.  HARDWARE
 PRODUCTS  AND THE LICENSING OF APOLLO COMPUTER INC. SOFTWARE CONSIST SOLELY OF
 THOSE SET FORTH IN THE WRITTEN CONTRACTS BETWEEN APOLLO COMPUTER INC. AND  ITS
 CUSTOMERS.   NO  REPRESENTATION OR OTHER AFFIRMATION OF FACT CONTAINED IN THIS
 PUBLICATION, INCLUDING BUT  NOT  LIMITED  TO  STATEMENTS  REGARDING  CAPACITY,
 RESPONSE-TIME  PERFORMANCE,  SUITABILITY  FOR  USE  OR PERFORMANCE OF PRODUCTS
 DESCRIBED HEREIN SHALL BE DEEMED TO BE A WARRANTY BY APOLLO COMPUTER INC.  FOR
 ANY   PURPOSE,  OR  GIVE  RISE  TO  ANY  LIABILITY  BY  APOLLO  COMPUTER  INC.
 WHATSOEVER.

 IN NO  EVENT  SHALL  APOLLO  COMPUTER  INC.  BE  LIABLE  FOR  ANY  INCIDENTAL,
 INDIRECT,  SPECIAL  OR  CONSEQUENTIAL  DAMAGES  WHATSOEVER  (INCLUDING BUT NOT
 LIMITED TO LOST PROFITS) ARISING OUT OF OR RELATING  TO  THIS  PUBLICATION  OR
 THE  INFORMATION  CONTAINED  IN  IT,  EVEN  IF  APOLLO  COMPUTER INC. HAS BEEN
 ADVISED, KNEW OR SHOULD HAVE KNOWN OF THE POSSIBILITY OF SUCH DAMAGES.

 THE SOFTWARE PROGRAMS DESCRIBED IN THIS DOCUMENT ARE CONFIDENTIAL  INFORMATION
 AND PROPRIETARY PRODUCTS OF APOLLO COMPUTER INC. OR ITS LICENSORS.



















 Reader_Notice

 This document resides online in the /doc directory.

 To  print  a copy of this document on a PRINTRONIX line printer, first convert
 the file using the OS (overstrike) command then use the PRF command  with  the
 -npag and -ftn  options.

      OS <file_pathname> | PRF -FTN -NPAG

 To  print  a  copy  of  this document on another printer, use  the PRF command
 with the -npag and -pr options.

      PRF <file_pathname> -PR <printer_name> -NPAG










































                                      iii









                                    Contents



 Section                                                                 Page

 CHAPTER 1  OVERVIEW OF THE C COMPILER AND LIBRARY,
            SOFTWARE RELEASE 9.2  . . . . . . . . . . . . . . . . . . . . 1-1
            1.1  Enhancements at Revision 9.2     . . . . . . . . . . . . 1-1
            1.1  Enhancements at Revision 9.0.020 . . . . . . . . . . . . 1-1
            1.2  Enhancements at Revision 9.0     . . . . . . . . . . . . 1-1

 CHAPTER 2  INSTALLATION PROCEDURES . . . . . . . . . . . . . . . . . . . 2-1

 CHAPTER 3  CHANGES IN DOCUMENTATION. . . . . . . . . . . . . . . . . . . 3-1

 CHAPTER 4  BUGS AND BUG FIXES. . . . . . . . . . . . . . . . . . . . . . 4-1
            4.1  Known Bugs in Software Release 9.2 . . . . . . . . . . . 4-1
            4.2  Bugs Fixed at SR9.2  . . . . . . . . . . . . . . . . . . 4-2





































 Contents                              iv
















                                   CHAPTER 1

 OVERVIEW OF THE C COMPILER AND LIBRARY, SOFTWARE RELEASES 9.2, 9.0.020, AND 9.0





 This chapter describes the enhancements made to the C compiler and CLIB   from
 SR8 to SR9.2.



 1.1  Enhancements at Revision 9.2



 At  SR9.2,  DOMAIN  C  added three new arguments to the  -CPU compiler option.
 These new arguments tell the compiler to generate code that  will  take   full
 advantage of the new DN3000, DN580, and DN570 nodes.



 1.2  Enhancements at Revision 9.0.020



 At  SR9.0.020,  DOMAIN  C  added  three  new  arguments  to the  -CPU compiler
 option.   These new arguments tell the compiler to  generate  code  that  will
 take  full advantage of the new DSP90, DN330,  and DN560 nodes.



 1.3  Enhancements at Revision 9.0



 The  following  enhancements  were  made to the DOMAIN C language compiler and
 library at SR9.0:

      o  The preprocessor symbol (#) must appear in column 1 for  all  standard
         preprocessor  commands.   In  former releases, the pound sign could be
         indented.

      o  There is a new preprocessor command called "#line" that allows you  to
         set the source code line number.



                                      1-1                  Software Release 9.2










      o  The   "#module"   preprocessor  command  now  accepts  two  additional
         arguments  that allow you to create named sections.  If used,  #module
         must precede all other tokens in the source file.

      o  There  is  a  new  preprocessor  command called "#section" that allows
         you to create named sections.

      o  There is a new preprocessor command  called  "#systype"  that  enables
         you  to  specify  the  UNIX version for which the program is intended.
         If used, #systype must precede all other tokens  in  the  source  file
         except the  #module preprocessor command.

      o  There  is  a new preprocessor macro called "defined" which can be used
         with #if.  It returns 1 if the argument is a defined  name  and  0  if
         the argument has not been defined.

      o  There  is a new preprocessor macro called "systype" that allows you to
         find out what the current UNIX COMPILESYSTYPE is.

      o  There is a new compile option called "-SYSTYPE" that  enables  you  to
         specify the UNIX version for which the program should be compiled.

      o  The C Library includes additional system calls and functions.
































 Software Release 9.2                 1-2
















                                   CHAPTER 2

                            INSTALLATION PROCEDURES





 This  chapter  describes  how to install SR9.2 optional products.  You can add
 this software to a node or DOMAIN System server  that  is  running  the  SR9.2
 version  of  the  DOMAIN  operating  system.   If a node is not running SR9.2,
 follow the SR9.2 software update procedures.  These procedures  are  described
 in the manual Installing_DOMAIN_Software_- (Order No. 008860, Revision 00).

 This  chapter  describes a two-phase approach to installing optional software.
 In the first phase, a  system  administrator  copies  the  software  from  the
 distribution  media  into  a  "source  area", then designates the installation
 program in this  source  area  as  a  protected  subsystem.   Designating  the
 installation  program  as a protected subsystem allows users in the network to
 install protected system software on their own nodes WITHOUT having to  use  a
 SYS_ADMIN  account. (For more information about how protected subsystems work,
 see Administering_Your_DOMAIN_System.)

 In the second phase, users install software, typically using the  installation
 program  in the source area.  Users can install software across the network or
 from the distribution media.


 2.1  WHICH INSTALLATION PROCEDURE TO USE


 There are two installation procedures, one for system administrators  and  one
 for users. Determine which one to use before going any further.


 2.1.1 Installation Procedures for System Administrators

 Use Section 2.3 (Installation Procedures for System Administrators) IF

      o  You  are a system administrator creating a source area and designating
         the  source area's installation  program  as  a  protected  subsystem.
         You  can  use  cartridge  tape,  magnetic  tape,  a floppy disk, or an
         existing source area.

      o  You are the first user to install software into your network, AND  you
         have  rights  to delete and change your system directories and wish to



                                      2-1                  Software Release 9.2









         maintain rights to  these  directories.   System  directories  include
         /SYS,  /COM,  /DOC,  /DOMAIN_EXAMPLES,   /BSCOM, and /LIB. Use the ACL
         command to learn your rights; ACL is documented in the  DOMAIN__System
         Command_Reference.


 If  you  are  a  system  administrator creating a protected subsystem, you can
 install the software from a source area or into a target area that is  not  at
 the  entry  directory  (/)  level.   (Of  course,  if  you  do not install the
 software at the entry directory level, the node will not boot off of  the  new
 software;  it  will boot from the software at the entry directory level.)  You
 can install various  optional software products into a source  area  and  then
 use  this source area to selectively install optional products on the nodes in
 the network.

 For example, first create a directory  //node/sr9.2_source_area.   Then,  when
 installing  from  tape  or floppy into this area, use //node/sr9.2_source_area
 as the target volume name.  To load from  this  area  onto  other  nodes,  use
 //node/sr9.2_source_area as the source name.

 When  you  create a source area and make the installation program in that area
 a protected subsystem, the installation program takes on  the  SID  (username)
 USER.SYS_ADMIN,  rather  than  that of the person who logged in to run it.  If
 USER.SYS_ADMIN does  not  have  rights  to  modify  system  software  in  your
 network,  you  can  log  in  with  an  SID  that  does have rights and run the
 installation program with the -MY_SID option.  -MY_SID tells the  installation
 program NOT to take on the SID USER.SYS_ADMIN.





 2.1.2 Installation Procedure for Users

 Use  this  procedure  if you are a user who does not have the rights to delete
 and change your system directories.  System directories  include  /SYS,  /COM,
 /DOC,  /DOMAIN_EXAMPLES,  /BSCOM,  and /LIB. Use the ACL command to learn your
 rights; ACL is documented in the  DOMAIN_System_Command_Reference.


 NOTE:     You can  only  use  this  procedure  if  your  system  administrator
           establishes  a  source  area and designates the installation program
           in the source area as a protected subsystem. You'll be able to  copy
           the  optional  software from any release media, but you must use the
           INSTALL program from the  source  area  designated  by  your  system
           administrator.

 Sometimes,  users  explicitly set ACLs so that the account USER.SYS_ADMIN does
 NOT have rights to change system software on their nodes.  If  you  have  done
 this,  you'll  have to use the -MY_SID option, which PREVENTS the installation
 program from taking on the SID USER.SYS_ADMIN.





 Software Release 9.2                 2-2









 2.2  CONVENTIONS AND TERMINOLOGY


 The terms and conventions used in these procedures are as follows:

      o  "Work node" is the node with a  keyboard  and  display  that  you  are
         using to enter the commands to do the software installation.

      o  "Target  volume"  is the Winchester disk or mass storage disk on which
         you are installing new software.  You do not have to install  the  new
         software  into  the  target  volume's  entry  directory (e.g., you are
         creating a source area in a subdirectory on the target volume).

         NOTE:     When you are installing software to update a diskless  node,
                   the target volume is the partner node's disk.


      o  "Target  node"  is  the node or DOMAIN Server Processor (DSP) on which
         you are installing or updating  (i.e.,  the  node  that  contains  the
         target  volume).   If  the  target  node  has a keyboard and a display
         (i.e., it is not a DSP), the work node and the target node can be  the
         same.

      o  "Source"  You  must  choose  the source for your new software.  If you
         are  installing  the  software  using  the  procedure  in  the  system
         administrator  phase,   the source for the  new software can be floppy
         disks,  magnetic  tape,  cartridge  tape,  or  another  node  in   the
         network.    If  you are installing the software using the procedure in
         the user phase, the source for the  INSTALL  program  is  the  INSTALL
         program  marked as a protected subsystem by your system administrator.
         You can get the rest of  the  SR9.2  software  from  the  distribution
         media.

         The  "source  volume"  is  a Winchester disk or mass storage disk that
         has already been updated with the new software.  A "source node" is  a
         node  in  the  network  that  has  already  been  updated with the new
         software (i.e., the node that contains the source volume).

         NOTE:     Ensure that  the  source  volume  contains  the  appropriate
                   optional software for the target node.


      o  A  "secure  network" is a network with a registry of user accounts and
         access control of system software; an "open network" does not  contain
         user accounts and access control of system software.

      o  Angle brackets ( < > ) enclose the name of a key on the keyboard.









                                      2-3                  Software Release 9.2









 2.3  INSTALLATION PROCEDURES FOR SYSTEM ADMINISTRATORS


 Use  these  procedures  if you are a user who has rights to modify your system
 directories, or if you are a system administrator  establishing  a   protected
 subsystem.

 If  you  are  a  system administrator establishing a protected subsystem, then
 create a directory which will contain the INSTALL directory and the   optional
 software  before you begin to install software. In the install procedures, you
 must give this directory's pathname when you are asked for the  target_volume.
 You  must also give the same pathname when you are asked to name a source area
 for the protected subsystem.

      1)  Log in to a work node either as a SYS_ADMIN or log  in  as  yourself.
          Start a Shell on the work node.  (This can be the target node.)

      2)  If  you  are  installing the optional software over the network, then
          skip step 2. If you are using a tape cartridge, a magnetic  tape,  or
          a  floppy  disk  to  install the optional software, then perform step
          2.

               a. Set your working directory to //target_volume:

                       $ WD //target_volume <RETURN>


               b. Insert the media into the drive and enter  the  RBAK  command
                  shown  below.   If you are using a tape cartridge, use the CT
                  option shown in the example.  If you  are  using  a  magnetic
                  tape,  use  the  M0 (Mzero) option instead of CT.  If you are
                  using a floppy, use the F0 (Fzero) option instead of CT.

                  $ RBAK -DEV CT -F 1 INSTALL -AS INSTALL -L -MS -FORCE -SACL
                                                                           <RETURN>

                  $ RBAK -DEV M0 -F 1 INSTALL -AS INSTALL -L -MS -FORCE -SACL
                                                                           <RETURN>

                  $ RBAK -DEV F0 -F 1 INSTALL -AS INSTALL -L -MS -FORCE -SACL
                                                                           <RETURN>


               c. Set your working directory to //target_volume/INSTALL:

                       $ WD //target_volume/INSTALL <RETURN>



      3)  (If you are installing software from a  cartridge  tape,  a  magnetic
          tape  or  a  floppy,  SKIP THIS STEP). If you are installing software
          over the network, set your working directory to //source/INSTALL.




 Software Release 9.2                 2-4









               $ WD //source/INSTALL <RETURN>


      4)  Execute the INSTALL Shell script.  In special cases you may  need  to
          use the -MY_SID option (see Section 2.1 for more information).

               $ INSTALL [-MY_SID] <RETURN>


      5)  The  program prompts you to enter an installation type. To install an
          optional product, enter OPT and press <RETURN>.

               Software Installation Type(s) are:

                 STD        --  Install SR9.2 standard software
                 RESTART    --  Restart the software installation
                 ACL        --  Set ACLs for existing software
                 CLEANUP    --  Run the Cleanup Procedure for ADD MODE installations
                 OPT        --  Install optional software (i.e., Pascal, FORTRAN)

               Please Enter Installation Type:


      6)  You are then prompted for the name of the  target  volume.  Enter  it
          and   press  <RETURN>.   Remember,  the  target volume is the disk on
          which the software will be  installed,  for  instance,  //ADMIN_DISK.
          (If  you're creating the source area in a lower-level directory, give
          the directory's pathname.)

                      **   Optional Software Installation  **

               Please enter the name of the TARGET volume that the optional
               software will be installed on. (e.g. '//UPDATE_ME'):

               Enter Target Volume:


      7)  The program displays a menu of  optional  products  it  can  install.
          Enter  the  name of the optional product that you want to install and
          press <RETURN>.  For example, if you want to install the CC  product,
          you'd type CC <RETURN>:















                                      2-5                  Software Release 9.2










               Name    Description                          Disk Blocks Needed
                                                          (Adding New Software)

               CC            C Compiler SR9.2                          1400
               CORE          Core library SR9.0.020                     500
               D3M           DOMAIN Distributed Database Management    4300
               DIALOGUE      DOMAIN/DIALOGUE                           1000
               DPCI1         DOMAIN/PCI -1                             1000
               DPCI8         DOMAIN/PCI -8                             1100
               DSEE          DOMAIN Software Engineering Environment   1800*
               FTN           FORTRAN Compiler SR9.2                     700
               GPIO          GPIO Software                              950
               LISP          DOMAIN/Lisp                               2300
               PAS           Pascal Compiler SR9.2                     1100
               RJE           DOMAIN System RJE Emulation Package        300

               * Represents DSEE software only.
                 The DSEE Tutorial is an additional 2500 blocks.

               Enter the name of a single optional software product you
               would like to install.

               Please enter an optional software product name:


      8)  The  procedure  shows  you  a  list of source media types.  Enter the
          source media you are using and press <RETURN>.  For example,  if  you
          were using a cartridge tape, you'd type: CTAPE <RETURN>.

               Source MEDIA is one of:
                     CTAPE   --  Optional Software Release Cartridge Tape
                     MTAPE   --  Optional Software Release Magnetic Tape
                     FLOPPY  --  Optional Software Release Floppies
                     NET     --  A volume on the network with Optional Software
                     QUIT    --  Exit from the installation.

               Enter Source Media:


      9) If you  specified  NET  as the source media, the procedure prompts you
          for the name of the source volume.  Enter  this  name  (for  example,
          "//MOZART") and press <RETURN>.

               Enter the name of the entry directory from which to copy the
               Optional Software  (e.g., '//GTI'):

               Enter Source Volume or type 'quit':


      10) If you  specified  as  source media magnetic tape, cartridge tape, or
          floppy disks, the program asks you  to  insert  the  media  into  the
          drive. Do so and press <RETURN>.



 Software Release 9.2                 2-6









      11) The procedure  displays  a  message  to  show  that  it is installing
          software, and then  installs  the  software,  listing  each  file  it
          copies.   When  the  installation  is finished, the program gives you
          the option to rerun the installation,  finish  the  installation,  or
          install  additional  software.   Check  through the transcript pad to
          verify that all the files were copied.  (Type RERUN <RETURN>  if  you
          see   error   messages  and  you  wish  to  rerun  the  installation.
          Otherwise,  type  FINISH  <RETURN>  if  this  is  the  last  optional
          software  product  you  wish to install, or CONTINUE <RETURN>, if you
          wish to install additional optional software products).

      12)  IF you are logged in as a system administrator and you are  creating
          a  source area, perform Step 12 before you shut down.  DO NOT execute
          Step 12 if you are logged in as a user. Run the following program  to
          designate  the  source  area's  installation  program  as a protected
          subsystem:

               $ INIT_SOURCE

          The program prompts you for the name of the source  area.   Typically
          this is the target area into which you've just installed software.

      13) To shut  down  the  target  node, after you've chosen FINISH, use the
          Display Manager SHUT command as follows.


           <CMD> SHUT <RETURN>


      14) After the SUCCESSFUL SHUTDOWN message  and  the  ">"  prompt  appear,
          reboot  the  node  by typing the following at the prompt: RE <RETURN>
          <RETURN> EX AEGIS.

               > RE
               > <RETURN>
               > <RETURN>
               MD REV xx/xx/xx
               > EX AEGIS.

          Once  the  log-in  prompt   appears,   you're   finished   with   the
          installation.



 2.4  INSTALLATION PROCEDURES FOR USERS



      1)  Log in to a work node as yourself. Start a Shell on the work node.







                                      2-7                  Software Release 9.2










      2)  Set  your  working  directory  to  //source/INSTALL.  The source area
          must  have  been  created  by   your   system   administrator.   (The
          installation  procedures  for  users require that you use the INSTALL
          program designated by your system administrator.)

               $ WD //source/INSTALL <RETURN>


      3)  Execute the INSTALL Shell script.  (If you have explicitly  PROTECTED
          your  system  software  against  changes by the system administrator,
          use -MY_SID option.  Most users  are  not  in  this  category.   READ
          SECTION 2.1 BEFORE USING THE -MY_SID option.)

               $ INSTALL [-MY_SID] <RETURN>


      4)  The  program prompts you to enter an installation type. To install an
          optional product, enter OPT and press <RETURN>.

               Software Installation Type(s) are:

                     STD        --  Install SR9.2 standard software
                     RESTART    --  Restart the software installation
                     ACL        --  Set ACLs for existing software
                     CLEANUP    --  Run the Cleanup Procedure for ADD MODE installations
                     OPT        --  Install optional software (i.e., Pascal, FORTRAN)

               Please Enter Installation Type:


      5)  You are then prompted for the name of the  target  volume.  Enter  it
          and   press  <RETURN>.   Remember,  the  target volume is the disk on
          which the software will be installed, for instance, //MY_DISK.

                      **   Optional Software Installation  **

               Please enter the name of the TARGET volume that the optional
               software will be installed on. (e.g. '//UPDATE_ME'):

               Enter Target Volume:


      6)  The program displays a menu of  optional  products  it  can  install.
          Enter  the  name of the optional product that you want to install and
          press <RETURN>.  For example, if you want to install the CC  product,
          you'd type CC<RETURN>.









 Software Release 9.2                 2-8










               Name    Description                          Disk Blocks Needed
                                                          (Adding New Software)

               CC            C Compiler SR9.2                          1400
               CORE          Core library SR9.0.020                     500
               D3M           DOMAIN Distributed Database Management    4300
               DIALOGUE      DOMAIN/DIALOGUE                           1000
               DPCI1         DOMAIN/PCI -1                             1000
               DPCI8         DOMAIN/PCI -8                             1100
               DSEE          DOMAIN Software Engineering Environment   1800*
               FTN           FORTRAN Compiler SR9.2                     700
               GPIO          GPIO Software                              950
               LISP          DOMAIN/Lisp                               2300
               PAS           Pascal Compiler SR9.2                     1100
               RJE           DOMAIN System RJE Emulation Package        300

               * Represents DSEE software only.
                 The DSEE Tutorial is an additional 2500 blocks.

               Enter the name of a single optional software product you
               would like to install.

               Please enter an optional software product name:


      7)  The  procedure  shows  you  a  list of source media types.  Enter the
          source media you are using and press <RETURN>.  For example,  if  you
          were using a cartridge tape, you'd type: CTAPE <RETURN>.

               Source MEDIA is one of:
                     CTAPE   --  Optional Software Release Cartridge Tape
                     MTAPE   --  Optional Software Release Magnetic Tape
                     FLOPPY  --  Optional Software Release Floppies
                     NET     --  A volume on the network with Optional Software
                     QUIT    --  Exit from the installation.

               Enter Source Media:


      8)  If  you  specified NET as the source media, the procedure prompts you
          for the name of the source volume.  Enter  this  name  (for  example,
          "//MOZART") and press <RETURN>.

               Enter the name of the entry directory from which to copy the
               Optional Software  (e.g., '//GTI'):

               Enter Source Volume or type 'quit':


      9)  If  you  specified  as source media magnetic tape, cartridge tape, or
          floppy disks, the program asks you  to  insert  the  media  into  the
          drive. Do so and press <RETURN>.



                                      2-9                  Software Release 9.2









      10) The procedure  displays  a  message  to  show  that  it is installing
          software, and then  installs  the  software,  listing  each  file  it
          copies.   When  the  installation  is finished, the program gives you
          the option to rerun the installation,  finish  the  installation,  or
          install  additional  software.   Check  through the transcript pad to
          verify that all the files were copied.  (Type  RERUN<RETURN>  if  you
          see   error   messages  and  you  wish  to  rerun  the  installation.
          Otherwise, type FINISH<RETURN> if this is the last optional  software
          product  you  wish  to  install,  or CONTINUE<RETURN>, if you wish to
          install additional optional software products.

      11) To shut down the target  node,  once  you've  rebooted  it,  use  the
          Display Manager SHUT command as follows.


           <CMD>SHUT<RETURN>


      12) After the  SUCCESSFUL  SHUTDOWN  message  and  the ">" prompt appear,
          reboot the node by typing the following at the  prompt:  RE  <RETURN>
          <RETURN> EX AEGIS.

               > RE
               > <RETURN>
               > <RETURN>
               MD REV xx/xx/xx
               > EX AEGIS.

          Once   the   log-in   prompt   appears,   you're  finished  with  the
          installation.


























 Software Release 9.2                 2-10
















                                   CHAPTER 3

                            CHANGES IN DOCUMENTATION






 With one exception, the  revision  02  DOMAIN__C__Language__Reference   manual
 (Order  Number  002093)  fully  describes  all enhancements to the C compiler.
 Enhancements  to  the  C  Library  are  fully  described  in  the   DOMAIN   C
 Library(CLIB)  manual  (Order  Number  00805)  for  Aegis  users   and  in the
 DOMAIN/IX Programmer's Reference Manuals (Order Numbers 005799 & 005801)   for
 DOMAIN/IX users.

 The  one  feature of the C language not described by  manual concerns the -CPU
 compiler option.  Therefore,  please  change  the  description  of  the   -CPU
 compiler option on page 4-4 to the following:


 -CPU 90|160|330|460|560|570|580|660|3000|PEB|ANY: CPU Selection

 -CPU ANY is the default.

 You  use  the  -CPU  option  to  specify  the  type of node that you intend to
 execute the object file on.  By using this  option,  the  compiler  codes  the
 executable  object  file  to  take advantage of the particular features of the
 machine.  The CPU option takes the following format:


          ANY
           90
          160
          330
          460
          560
   -CPU   570
          580
          660
          3000
          PEB


 In other words, you must specify one argument immediately following -CPU.




                                      3-1                  Software Release 9.2









 -CPU ANY generates code that uses only the basic instruction set supported  by
 all DOMAIN nodes.

 -CPU  160,  -CPU  460, and -CPU 660 instruct the compiler to use DNx60 (except
 DN560) machine language instructions  for  floating-point   operations.   They
 also  instruct the compiler to code 32-bit multiplication and division in-line
 instead of  calling  a  library  routine.   When  you  specify  any  of  these
 machines,  the  compiler automatically sets the -ALIGN option.  If you compile
 with one of these options but do not execute the program on a  DSP160,  DN460,
 or DN660, then the system will report the following run time error:

    DNx60 series node required to execute this object module

 -CPU  560,  -CPU 330, -CPU 90, -CPU 570, -CPU 580, and -CPU 30000 instruct the
 compiler to generate code that uses the instruction set of the  DN560,  DN330,
 DSP90,  DN570, DN580, and DN3000 nodes.   Using these arguments permits you to
 get the best runtime performance out of your program.   If  you  compile  with
 any  of these arguments, then you will not be able to execute the program on a
 node other than the DN560, DN330, DSP90, DN570, DN580, and DN3000.   By  using
 these  arguments,  the  compiler  will produce in-line code for floating-point
 operations.  If you  use  -CPU  ANY  instead,  then  the  compiler  will  code
 floating-point operations as a  call to a floating-point library.

 If  you  specify  -CPU PEB option, the compiler generates in-line code for the
 Performance  Enhancement  Board  (PEB),  thereby  speeding  up  the  program's
 execution  on  node's that  contain a PEB.   The degree of improvement depends
 on how heavily the program uses  32-bit  multiply  and  divide  floating-point
 operations.

 If the following three conditions are true:


      o  your source code contains 32-bit multiply and divide operations.

      o  you compile with the -CPU PEB option.

      o  you execute the object file on a node that does not contain a PEB.


 then the system will report the following error at run time:

    peb required to execute this object module (process manager/loader)

 The  following shell command will tell you if the node you're working at has a
 PEB:

    $ netstat -config









 Software Release 9.2                 3-2
















                                   CHAPTER 4

                               BUGS AND BUG FIXES





 This chapter describes the known bugs and the bugs fixed by SR9.2.



 4.1  Bugs Fixed at SR9.2



 The following bugs were fixed at SR9.2:


      o  Prior to SR9.2,  dereferencing  a  pointer  to  a  std_$call  function
         caused  the  compiler to abandon std_$call conventions.   For example,
         given,

                 std_$call void func();
                 void (*point)();
                 point = func;

         you could dereference point  to  invoke  func,  but  parameters   were
         passed  by  value  rather than by reference.  For SR9.2, we fixed this
         bug so that the compiler remembers the std_$call conventions.

      o  Prior to SR9.2, the compiler was supposed to, but did  not,  issue  an
         error  message  when  a  function  returned  an  array  defined  by  a
         typedef.  At SR9.2, the  compiler  correctly  catches  the  error  and
         issues the appropriate error message.

      o  SR9.0.020 introduced  the  following bug.  The compiler was generating
         an illegal instruction.  We've fixed this bug at SR9.2.

      o  SR9.0.020 introduced  the  following  bug.   The  compiler   was   not
         assigning  the  results  of logical expressions to bitfields properly.
         We've fixed this bug at SR9.2.

      o  Prior to SR9.2, C mishandled a typedef  of  an  unbounded  array;  for
         example, consider the following example:




                                      4-1                  Software Release 9.2









                typedef char MSG[];

                static MSG a = "A";
                static MSG b = "LONGER STRING";

         The  bounds of the array for MSG became erroneously  defined to be the
         number of bytes in the string initializer for  a,  causing  any  other
         declaration  of  this  type  to  be the same size as well.  Therefore,
         variable b was not long enough to contain the  entire  string.   We've
         fixed this bug at SR9.2




 4.2  Known Bugs at SR9.2



 The following bugs are known to exist at SR9.2:

      o  The  attribute  modifier  does  not  work  properly  when  used  in  a
         function parameter.  If you directly use an  attribute modifier  in  a
         function  parameter, the  attribute modifier will be ignored.  You can
         use the  attribute modifier indirectly  in  a  function  parameter  as
         shown in the following example:

             ifdef ATTR
             define VOL  attribute[volatile]
             else
             define VOL
             endif

            typedef int vint VOL;
            void killer(a,b)
            int  a;
            vint b;
            {
                int i;
                int *p = &a + 1;

                i = b*(b+1);
                (*p) = 0;
                i = i + b*(b+1);
                printf("b = %d\n", b*(b+1));
            }

            main()
            {
                killer(1,2);
            }

         Notice  that  we applied the  attribute modifier  when we created type
         "vint."  If we had specified   attribute  directly  when  we  declared



 Software Release 9.2                 4-2









         parameter b, for instance:

           int b  attribute[volatile];


         then the compiler would have ignored   attribute[volatile].


















































                                      4-3                  Software Release 9.2




Typewritten Software • bear@typewritten.org • Edmonds, WA 98026