Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ pas.release_notes.sr9.6() — Apollo

Media Vault

Software Library

Restoration Projects

Artifacts Sought









                             DOMAIN Pascal Software Release Document

                                       Software Release 9.6

                                          Part No. 05502

                                           Revision 05

                    This document describes the new features and  bugs of
                          Pascal for software release 9.6.




































                                     APOLLO COMPUTER INC.
                                      330 Billerica Road
                               Chelmsford, Massachusetts 01824





















        Copyright c 1987 Apollo Computer Inc.
        All rights reserved. Printed in U.S.A.

        First Printing:  May, 1987
        Latest Printing:  May, 1987

        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, DGR, DOMAIN/BRIDGE,  DOMAIN/DFL-100,  DOMAIN/DQC-100,  DOMAIN/Dialogue,
        DOMAIN/IX,  DOMAIN/Laser-26, DOMAIN/PCI, DOMAIN/SNA, D3M, DPSS, DSEE, GMR, and
        GPR are trademarks of Apollo Computer Inc.

        UNIX is a registered trademark of American Telephone and Telegraph



        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 on line 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                                                            Page

        CHAPTER 1 OVERVIEW OF DOMAIN PASCAL SR9.6

             1.1 Choosing a Compiler Version . . . . . . . . . . . . . . . 1-1

             1.2 Enhancements at SR9.6 . . . . . . . . . . . . . . . . . . 1-2
                 1.2.1 UNIX File Compatibility . . . . . . . . . . . . . . 1-2
                 1.2.2 Pascal Help File  . . . . . . . . . . . . . . . . . 1-3

        CHAPTER 2 INSTALLATION INFORMATION . . . . . . . . . . . . . . . . 2-1

        CHAPTER 3 DOCUMENTATION  . . . . . . . . . . . . . . . . . . . . . 3-1

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

             4.1  Bugs Fixed   . . . . . . . . . . . . . . . . . . . . . . 4-1

             4.2  Known Limitations at SR9.6 . . . . . . . . . . . . . . . 4-1

































        Contents                              iv
















                                          CHAPTER 1

                               OVERVIEW OF DOMAIN PASCAL SR9.6






        This  chapter  briefly  describes  the enhancements to the Pascal compiler  at
        SR9.6.  These enhancements (except for the last one  listed  in  Section  1.1)
        are  fully  documented  in  the  current version of the DOMAIN_Pascal_Language
        Reference manual.

        In some instances, you may need to know about changes made between  SR9.2  and
        SR9.5.1.   For  information about these changes, read the SR9.5 Pascal Release
        Notes  (05502, rev. 04), which are also supplied with this release.



        1.1  Choosing a Compiler Version



        If you are developing programs to run on systems that are running versions  of
        the  operating  system  prior to SR9.5, you will want to compile your programs
        with the SR9.2 version of the Pascal compiler.  When  you  install  the  SR9.6
        Pascal  compiler,  you  also  will get the SR9.2 compiler.  If you need to use
        the older version, compile your file(s) with the following command:

             $ passr9.2 filename [-options]


        To compile with the SR9.6 version, use the usual command; that is:

             $ pas filename [-options]













                                             1-1               Pascal Release at SR9.6









        1.2  Enhancements at Revision 9.6



        There are several enhancements to the DOMAIN Pascal compiler at SR9.6:

             o  Variable-Length Strings -- A variable-length string is a string  whose
                length  can  change dynamically, depending on the number of characters
                assigned to the string during program execution.   This  differs  from
                fixed-length  strings,  whose  length  is  constant throughout program
                execution.

             o  New functions and procedures  (APPEND,  CTOP,  PTOC,  and  SUBSTR)  to
                support variable-length strings.

             o  A new  extended  string  constant  syntax  that  allows  you  to embed
                unprintable characters in strings.

             o  TYPE names are recorded when debug symbols are generated, so they  can
                be  used  by  the dbx debugger.  (The /com/debug debugger continues to
                ignore TYPE names.)

             o  UNIX File  Compatibility  --  The  DOMAIN   Pascal   runtime   library
                (/lib/ftnlib)  now outputs files that are fully compatible with  files
                output by UNIX systems.  This means that files  created  by  a  DOMAIN
                Pascal  program  can  be  read  by  UNIX  utilities and other programs
                developed  with UNIX compilers.  In addition,  programs  running  with
                the  new  runtime  library  will  be able to read data files that have
                been created on a UNIX system.

             o  The DOMAIN Pascal compiler supports a new compile  option,  -CPU  FPX,
                that  takes  advantage of the floating-point accelerator (FPX) unit on
                DN570-T and DN580-T machines.

             o  The help file  for  the  Pascal  compiler  now  reports  the  software
                release number rather than  the compiler version number.





        1.2.1 UNIX File Compatibility


        To  ensure  that  DOMAIN  Pascal always produces UNIX-compatible files, it was
        necessary to remove support for creation of DOMAIN "REC" files.  In the  past,
        DOMAIN  Pascal created a REC file whenever you opened a file declared as "file
        of base_type."  For "text" files, DOMAIN Pascal  produced  DOMAIN  UASC  files
        (which   are  UNIX-compatible).   The  SR9.6  Pascal  runtime  library  always
        produces UASC files, regardless of the file type.

        Note that this change affects the runtime  library  only,  not  the  compiler.
        Therefore,  you  do  not  need  to  recompile  your  programs  to achieve UNIX



        Pascal Release at SR9.6              1-2









        compatibility.  The same programs that formerly produced REC  files  will  now
        produce UASC files.

        Note  also  that  this  change  affects  only  those  programs that use Pascal
        mechanisms to access files.  Programs  that  create  and  access  files  using
        system calls,  such as STREAM_$ and IOS_$, will not be affected.



        1.2.1.1  Compatibility Issues


        For  backwards  compatibility,  DOMAIN Pascal will continue to support reading
        from REC files so that you can read record-structured files produced by  older
        programs.   The  new  compiler also allows you to append record-formatted data
        to REC files.  However, if your Pascal program copies the contents  of  a  REC
        file  to a new file,  the old file will continue to be a REC file, but the new
        file will be a UASC file.  This conversion is transparent to your programs.


        1.2.2 Pascal Help File

        At SR9.6, the help file for this compiler contains a  release  number  (SR9.6)
        in  its  header.   At  previous  releases,  the compiler help file contained a
        compiler version number, such as 7.09, in its header.   We  have  incorporated
        the  release  number  so that you can easily see the software release to which
        the help file  applies.

        You can determine the individual compiler version number,  such  as  7.09,  by
        using  the compiler's -version option.  Please use the compiler version number
        if you submit a User  Change  Request  (UCR)  or  call  our  Customer  Support
        Center.
























                                             1-3               Pascal Release at SR9.6










                                          CHAPTER 2

                                   INSTALLATION INFORMATION






        You  can  add Pascal to a user node (one equipped with monitor and keyboard) or a
        DOMAIN server processor (DSP) that is running SR9.6 or a more  recent  version
        of  the  AEGIS  or DOMAIN/IX operating system.  If the user node or DSP is not
        running SR9.6 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 directions about how to install this product, see  the  manual  Installing
        DOMAIN_Software, (Order No. 008860).

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

































                                             2-1                 Pascal Release at 9.6
















                                          CHAPTER 3

                                        DOCUMENTATION





        The  DOMAIN__Pascal__Language_Reference_Manual (Order No. 000792, rev. 05) has
        been revised to reflect  enhancements  to  the  compiler  released  at  SR9.6.
        Change  bars  in the margins mark alterations from the previous version of the
        manual.





































                                             3-1               Pascal Release at SR9.6
















                                          CHAPTER 4

                                      BUGS AND BUG FIXES





        This chapter lists bugs fixed, known bugs and known limitations.


        4.1  Bugs Fixed



             o  [UCR 0d885057, 0d885619] Prior to this release,  the  Pascal  compiler
                reported  line  numbers  of  errors  modulo  10000.   An error on line
                11462, for example, was reported to be on line 1462.

                This problem has been fixed in SR9.6.

             o  [UCR 0d885399] Prior to this release,  the  compiler  would  sometimes
                produce  incorrect code for comparison expressions involving a Boolean
                variable.  The problem arose when a  constant  non-Boolean  value  was
                converted  to  Boolean  with the Boolean function and then assigned to
                a  Boolean variable.  If the Boolean  variable  was  then  tested  for
                truth  or  falseness,  the compiler would erroneously test for zero or
                non-zero.  The proper test for Boolean values is  negative  (true)  or
                non-negative (false).

                This problem has been fixed in SR9.6.

             o  [UCR   0d885678]   A  simple  error  caused  the  Pascal  compiler  to
                prematurely give up, rather than checking code  for  other  errors.  A
                short program that exhibits this problem appears below:


                     program t;
                     procedure x;

                          begin
                          end;
                     begin
                          x(0);
                     end.




                                             4-1               Pascal Release at SR9.6









                     Using the sr9.5.1 compiler the result was:

                     $ pas test
                     (0008)    x(0);
                     ******** Line 8: [Error 081]
                                  Too many arguments to X.
                     ******** Line 0: [Error 281]
                              Too many compilation errors
                                 - compilation terminated.

                     Using the SR9.2 compiler the result was:

                          $ pas_sr9.2 test
                           (0008)    x (0);
                            ******** Line 8: [Error 081] Too many arguments to X.
                          1 error, no warnings, Pascal Rev 6.3348




        4.2  Known Limitations at SR9.6



        The  following  is  a  list  of  known  limitations in SR9.6 version of DOMAIN
        Pascal:

             o  Comparing  packed  records  can  produce   inaccurate  results.   This
                is  because  a  packed  record  may have unallocated holes in it whose
                values will  be  tested  by  the  comparison   code.    Since  storage
                space   for   packed  records  is  not  cleared  when  the  record  is
                allocated,  "garbage" bits   encountered   in   the   comparison  will
                make a truly equal pair of records fail the test for equality.

                This error also can occur with unpacked records. For example:

                               type
                                 xrec = record
                                        a : char;
                                        b : integer;
                                 end;

                There  is  a  one-byte  filler  between  a  and  b  so that b  can  be
                aligned on a word boundary. If your code then includes the following:


                              var
                                r,s : xrec;
                                    .
                                    .
                                    .
                                if r = s then . . .




        Pascal Release at SR9.6              4-2









                the  compiler  would  generate code to compare  the  one-byte  fillers
                as  well  as  a and b. Since  those  fillers  never  are  initialized,
                they might not be equal.

             o  When you use  WRITE  or  WRITELN  to  output  a  large  number  (whose
                numerical   value  is  equal  or  bigger  than  1.00 E100) to standard
                output, and the number is stored as DOUBLE, the exponential  character
                'E'  will  be  omitted.   For  example,  if  num is equal to 1.0 E100,
                WRITE(num) or WRITELN(num) will output the following  to the screen:


                       1.000000000000001+100












































                                             4-3               Pascal Release at SR9.6




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