Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ cc.release_notes.sr9.7.1() — Apollo

Media Vault

Software Library

Restoration Projects

Artifacts Sought









                        C Language Software Release Document

                               Software Release 9.7.1

                                 Part No. 05500-B02


                     This document describes the C compiler
                       for DOMAIN software release 9.7.1.




































                              APOLLO COMPUTER INC.
                               330 Billerica Road
                        Chelmsford, Massachusetts 01824






















 Confidential   and   Proprietary.    Copyright  1988  Apollo  Computer,  Inc.,
 Chelmsford,  Massachusetts.   Unpublished  --  rights   reserved   under   the
 Copyright Laws of the United States.  All Rights Reserved.
 All rights reserved. Printed in U.S.A.

 First Printing: April, 1988
 Latest Printing: July, 1988

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

 Apollo and Domain are registered trademarks of Apollo Computer Inc.

 UNIX is a registered trademark of AT&T in the USA and other  countries.    Ada
 is  a registered trademark of U.S. Government (Ada Joint Program  Office).

 3DGMR,  Aegis,  D3M, DGR, Domain/Access, Domain/Ada, Domain/Bridge,  Domain/C,
 Domain/ComController,    Domain/CommonLISP,     Domain/CORE,     Domain/Debug,
 Domain/DFL,    Domain/Dialogue,    Domain/DQC,   Domain/IX,   Domain/Laser-26,
 Domain/LISP, Domain/PAK, Domain/PCC,  Domain/PCI,  Domain/SNA,  Domain   X.25,
 DPSS,  DPSS/Mail,  DSEE,  FPX,  GMR, GPR, GSR, NLS, Network Computing  Kernel,
 Network  Computing  System,  Network  License  Server,  Open  Dialogue,   Open
 Network  Toolkit, Open System Toolkit, Personal Supercomputer,  Personal Super
 Workstation, Personal Workstation, Series 3000, Series   4000,  Series  10000,
 and VCD-8 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 PROGRAMS 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, use  the PRF command with the -npag and -pr options.

      PRF <file_pathname> -PR <printer_name> -NPAG


















































                                      iii









                                    Contents



 Section

 CHAPTER 1 OVERVIEW OF DOMAIN C LANGUAGE  AT SR 9.7.1 . . . . . . . 1-1

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

 CHAPTER 3 DOCUMENTATION  . . . . . . . . . . . . . . . . . . . . . 3-1
      1.1 Overview of Documentation . . . . . . . . . . . . . . . . 3-1
      1.2 The -frnd Compile Option  . . . . . . . . . . . . . . . . 3-1
      1.3 The -cpu fpa1 and -Mfpa1 Compile Options . . . . . . . . 3-2

 CHAPTER 4 BUGS AND BUG FIXES . . . . . . . . . . . . . . . . . . . 4-1








































 Contents                              iv
















                                   CHAPTER 1

                            OVERVIEW OF C AT SR9.7.1





 The SR9.7.1 release of the C language introduces the following two features:

      o  a -cpu fpa1 compile option (-Mfpa1 for the /bin/cc interface)

      o  a -frnd compile option (/com/cc only).

 For details on these new compiler options, see  Chapter  3  of  these  release
 notes.

 If  you  are  updating  from  a  9.7 release of the C compiler,  these release
 notes are all you need.  If you are updating from  a  previous  release,   you
 should  look  at  the release notes that accompanied the intervening releases.
 For instance, if you  are  going  from  SR9.2  to  SR9.7.1,  you  should  read
 "cc.release_notes.sr9.5",             "cc_release_notes.sr9.6",            and
 "cc.release_notes.sr9.7" in addition to the SR9.7.1 release notes.


























 Version 5.5                          1-1              C Compiler Release 9.7.1










                                   CHAPTER 2

                            INSTALLATION INFORMATION





 You can add the C language Version 5.5 to  a  user  node  (one  equipped  with
 monitor  and  keyboard)  or  a  Domain  Server Processor (DSP) that is running
 SR9.7.1 or a more recent version of the Aegis or Domain/IX  operating  system.
 If  the  user  node  or  DSP  is not running SR9.7.1 or a more recent version,
 follow the appropriate software update procedures as described  in  Installing
 Domain_Software (Order No. 008860) or in the appropriate release notes.

 For  general  instructions  on  how  to  install  this product, see the manual
 Installing_Domain_Software (Order No. 008860). Chapter 5 of  that  manual,  in
 particular,  describes  installation  of optional product software. There have
 been   some  enhancements  made  to  the  installation  procedure  since   the
 publication  of  the  last revision of Installing_Domain_Software; we describe
 those changes here.


      o  Choosing a Target Node

         The new installation sets the TARGET area by default  to  the  current
         work  node.  When  you are prompted to enter a TARGET, the name of the
         current work node appears as the default and can  be  selected  simply
         by pressing the <RETURN> key. For example:

             The TARGET is the node or subdirectory on which you are installing
             software (e.g., '//my_node' or '//my_node/subdirectory').
             Enter Target: <//sum>  <RETURN>

         The program then confirms your choice of target.

             TARGET set to : //sum

      o  Choosing a Source Area

         When you choose a source area, the program now confirms your choice by displaying it
         on the screen. For example:

             The SOURCE AREA is the node or subdirectory from which you are
             copying software (e.g., '//node' or '//node/subdirectory').
             Enter Source Area: //ergo

             SOURCE AREA set to : //ergo







                                      2-1              C Compiler Release 9.7.1










      o  Improved Error Checking and Verification

         After  you  have  chosen  the  TARGET,  the  INSTALL program describes
         constraints on  the installation process, and asks if you wish to  see
         a  list of directories affected by those constraints. If you choose to
         see such a listing by typing 'yes' or 'y', the tool displays the  list
         immediately, or  prints the message "No errors found." For example:

             NOTICE:
             Objects will not be installed across
             links, nor if unexpected objects currently
             exist where directories are needed.

             Would you like to see a listing of any
             problems of this sort before proceeding?
             Yes or No? y

             -------------------------------------------------
             Listing pathname errors found with TARGET set to  //sum
             (Please be patient)

             //sum/sys/help
             //sum/domainexamples

         If  you  answered  the  question  above  with  a 'yes' or 'y', and the
         program displayed one or  more  'pathname  errors,'  the  program  now
         describes   the warning messages about link objects that are generated
         during a later phase of the installation. Enter 'yes' or  'y'  at  the
         prompt  if  you  wish to see  error messages regarding installation of
         links. If you wish to suppress such messages, enter 'no' or 'n.'

             The program displays a warning message
             whenever one of these objects is
             encountered during the installation,
             although the display of these messages
             can be suppressed.

             CAUTION : These objects will not be
             installed, whether or not the warning
             messages are displayed.

             Do you want to see the warning messages?
             Yes or No? y


 NOTE:     The user node  or  DSP  must  have  a  minimum  of  1281  blocks  of
           available   disk   space  for  a  successful  installation  of  this
           software.







 C Compiler Release 9.7.1             2-2
















                                   CHAPTER 3

                                 DOCUMENTATION





 This chapter provides an overview of Domain C language documentation.



 3.1  Overview of Documentation



 The current Domain C Language Reference (order no. 002093, rev. 04)   reflects
 the C compiler as of Software Release 9.2.

 New  features  added  at  Software  Releases 9.5 and 9.6 are documented in the
 SR9.5  and  SR9.6  release  notes,  which  are  available  online   in   files
 "cc.releasenotes.sr9.5" and "cc.releasenotes.sr9.6".

 The  following  two  sections  should  be  added  to Chapter 6 of the Domain C
 Language Reference:



 3.2  The -frnd Compiler Option



 The -frnd ("float rounds") compile option is available only with  the  /com/cc
 interface  to  the  C compiler.   If you are using the /bin/cc interface,  you
 need to use the -W compile switch, as in:


      $ /bin/cc -W0, -frnd foo.c


 The -frnd option forces the compiler to write all floating-point  operands  to
 memory  and  then  fetch the memory contents before evaluating the expression.
 This ensures that each operand will have the same amount of precision so  that
 floating-point  comparisons  will  produce  correct  results.   If  you do not
 compile with -frnd, floating-point operands may be kept  in  registers,  which
 support  more  accuracy than memory.  Consequently, when a register operand is



                                      3-1              C Compiler Release 9.7.1









 compared with a memory operand, the result may not be what is expected.   This
 is  particularly  true  of  equality  comparisons.   Consider  the following C
 program:


      double fetch( void )
      {
        return 1.1;
      }

      int main( void )
      {
        double x;

        x = fetch();

        if (x - 0.1 == 1.0)
          printf( "Pass\n" );
        else
          printf( "Fail\n" );
      }


 If you compile with -cpu 3000 (or -M  3000  if  you  are  using  /bin/cc,  and
 without  -frnd,  this  program  fails because the values 0.1 and 1.1 cannot be
 represented exactly in base 2 floating-point.  Thus, the quantity  (x  -  0.1)
 can  only  be  approximated.   This value is calculated in an 80-bit register,
 and then a compare is generated to see if this value is exactly equal to  1.0,
 which  is stored in memory.  Since the register has more accuracy than memory,
 the comparison fails.

 If you compile with -frnd,  the 80-bit register is stored (and rounded)  in  a
 single-precision  32-bit  temporary memory location.   Now when it is compared
 with 1.0, which is also stored in memory, the comparison passes.

 Compiling with -frnd could mean that your program  will  run  slower,  so  you
 should only use -frnd when necessary.



 3.3  The -cpu fpa1 and -Mfpa1 options



 The  -cpu  fpa1  option  is  for  use with the /com/cc interface,  whereas the
 -Mfpa1 option is for use with the /bin/cc interface.    These  options  direct
 the  compiler  to  produce  optimized  code for the Floating-Point Accelerator
 (FPA) board  that is available with DN4000 workstations.   Use of this  switch
 can  produce  substantially faster code.   Do not use this switch, however, if
 the target machine does not have an FPA board.

 For more details, see the "Personal  Workstation  Floating-Point  Acceleration
 Handbook."



 C Compiler Release 9.7.1             3-2

































































                                      3-3              C Compiler Release 9.7.1
















                                   CHAPTER 4

                               BUGS AND BUG FIXES





 This chapter describes known bugs and bugs fixed since SR9.7.


 The  APRs  (Apollo  Product  Reports) with the following numbers have not been
 fixed in 9.7.1:

      000DBE8B

         Compiler failure, registers locked error.

      000DBE03

         Bug with C compiler/ switch statement.

      000DBE2D

         Can't use function name in conditional (?:).

      000DBF0A

          10 compiler failure on function returning vo.

      000DBF39

         Inconsistent definition of lvalue cc.

      000DC042

         C enum construct disallowed by compiler.

      000DC0F6

         i  *.

      000DC10F

         Different asm code generated by same c source.




                                      4-1              C Compiler Release 9.7.1










      000DC13B

         Bug FOR statement when compiling w/optimizati.

      000DC205

         Expression for array index calculated wrong.

      000DC203

         Problem converting float to unsigned int.

      000DC223

          debug not listed in source file with -esf.

      000DC22C

         Problem converting double to unsigned int.



 The APRs (Apollo Product Reports) with the following numbers have been fixed:

      000DBF9A

          10 problems compiling at -OPT 1.

      000DBFA7

         Optimized above 2 using -CPU FPX errors.
























 C Compiler Release 9.7.1             4-2




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