Google
 

Trailing-Edge - PDP-10 Archives - AP-5471B-BM - documentation/alg1a.doc
There are no other files named alg1a.doc in the archive.


ALGOL.DOC -- Version 1A(145)
January 1978






























COPYRIGHT (C) 1978 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.


THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
TRANSFERRED.

THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.

DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
ALG1A.DOC                                                       Page 2


ALGOL.DOC -- Version 1A(145)
January 1978



1.0  SUMMARY

This is a maintainance  release  of  DECSYSTEM-20  ALGOL  intended  to
include  all bug-fixes made since Version 1(105), both those published
in the Software Dispatch and those  reported  to  us  through  non-SPR
channels.

In addition individual users have made suggestions for enhancements to
ALGDDT  which we have implemented for this release.  This results in a
small change in funtionality although not sufficient to  merit  a  new
version   number.   These  improvements  include  an  enhanced  UNWIND
command, a RETRY command, additions to the PAUSE command and  improved
control  C handling.  Most of these are documented in the programmer's
guide, which was prepared with this release in mind.

The changes made for  this  version  will  not  effect  the  operating
environment requirements given for Version 1(105).



2.0  EXTERNAL CHANGES

The following changes will be noticed by the user in 1A(145):

     1.  The  documentation  lists  the   three   library   procedures
         RAND,ONTRACE  &  OFFTRACE, this is a documentation error, the
         procedures being correctly  called  RAN,TRACEON  &  TRACEOFF.
         However since users have not complained about this before and
         have presumably adapted to the error, both spellings will now
         have  the  correct  effect  (rendering  all  current programs
         compatable).

     2.  If an identifier is undeclared or misused, its spelling  will
         now  be  included in the error message.  It is felt this will
         be particularly useful when a listing is not being  generated
         and only the error meassages appear on the terminal.

     3.  The library procedures READ and INLINE will now recognise  an
         EOF  as  an  LF, and treat it as a terminator to input in any
         circumstance where a LF would do so (before, encountering  an
         EOF would result in a run-time error).

     4.  The library procedure READ now no longer throws away the byte
         immediately following a quoted string.

     5.  The ALGDDT command RETRY as documented  in  the  programmer's
         guide is now implemented.

     6.  The ALGDDT command PAUSE is now fully implemented, as per the
         programmer's guide.
ALG1A.DOC                                                       Page 3


     7.  Enhanced ALGDDT command UNWIND.

         The UNWIND command has been  extended  to  know  about  block
         levels   within   procedures  as  well  as  procedure  levels
         themselves.  The new command formats are as follows:

         UNWIND         Same as BACK - return to original context
         UNWIND n       Change to dynamic procedure level <n>
         UNWIND n.m     Change to dynamic proc.  level <n>  and  block
                        level <m>
         UNWIND -n      Change by <n> procedure levels.
         UNWIND -.m     Change by <m> block levels.
         UNWIND 0       Change to outermost block

         The WHERE command has  also  been  extended  to  include  the
         additional information required by this extension.

     8.  The OTS no longer enables for trapping UUO or QUOTA exhausted
         errors,  and  the  monitor  should  produce error messages if
         either occur.

     9.  Undeclared labels now have the status of hard errors and will
         cause suspension of .REL file generation.



3.0  KNOWN BUGS AND DEFICIENCIES

     1.  The library procedures OPENFILE,INPUT & OUTPUT will not  work
         correctly  if passed a dynamic string as an actual parameter;
         that is a string procedure or  a  string  that  is  itself  a
         formal.  Doing so results in a runtime error.

     2.  Interrupting a program that is performing a monitor call with
         a  control  C  can sometimes result in an immediate return to
         monitor level instead of invoking ALGDDT.  In this  case  the
         user  should  type  CONTINUE  which  will enter ALGDDT in the
         correct manner.

     3.  Edit 776 published as an answer to SPR  #10797  (DECsystem-10
         Dispatch)  claimed  to  fix  a problem of bad code generation
         using embedded assignments to  long  real  arrays.   We  have
         since  found  that this is not the case and have not included
         this edit in this release.  Until we  can  fix  this  problem
         properly  we recommend users avoid using embedded assignments
         to long real arrays.



4.0  INSTALLATION INSTRUCTIONS

The batch command file ALGOL.CTL contains all  the  details  necessary
for  building  ALGOL  version  1A.   The  files ALGOL.EXE, ALG145.EXE,
ALGLIB.REL and ALGDDT.HLP should be put on <SUBSYS>.
ALG1A.DOC                                                       Page 4


5.0  INTERNAL CHANGES

There now follows the list of edits  included  in  version  1A.   Four
digit   edit  numbers  are  fixes  to  problems  or  enhancements  not
originating from an SPR.

EDIT #

#106      10-10777    Make ALGDDT PAUSE on labels work correctly

#107      None        Make READ ignore LF after CR.

#110      10-107778   Exponentiation caused incorrect code  code  with
                      sufficiently complex operands.

#111      10-10794    Make  ALGOL  call  itself  version  10  and  not
                      version 8.

#112      None        Don't make REDIRECTed files unecessarily large.

#113      None        Fix certain cases of GOTO command in ALGDDT.

#114      None        Fix to control C trapping.

#115      None        Fix to ALGDDT NEXT command.

#116      None        Ignore breakpoints if already in ALGDDT.

#117      10-22610    Make compiler  command  scanner  ignore  leading
                      spaces.

#120      None        Use compiler version number as  program  version
                      number.

#121      10-22013    Stop  programs  generating   un-defined   global
                      symbol %ALGDR.

#122      10-22677    Make programs linked with  /OTS:NONSHARE  switch
                      work correctly

#123      10-10783    Fix overflow in routine LEXP.

#124      10-23180    Make INPUT and OUTPUT not always take the  error
                      return if an error label was specified.

#125      10-10789    Make the body of a FOR statement a block.

#126      10-10792    Report correct channel number  when  giving  EOF
                      error message.

#127      None        Enhanced UNWIND command & various minor fixes.

#130      10-10791    Compile time folding of floating point constants
                      generates incorrect code.
ALG1A.DOC                                                       Page 5


#131      10-10793    Give EOF error when READing from empty strings.

#132      10-10787    Make I/O to TTY on channels 0 & 1 work.

#133      10-10789    Make DELETE deal with strings properly.

#134      10-22806    Compiler crash with TTY input lines longer  than
                      80 characters.

#135      10-10799    Fix  certain  differences  between  TTY  I/O  on
                      channel -1 and the others.

#136      10-10800    ALGOTS could get into a loop when called with an
                      undefined string.

#137      10-10802    Fix compiler crash when real number present in a
                      declaration.

#140      10-23307    Fix compiler looping  with  certain  mis-spelled
                      keywords.

#141      10-10805    Stop  ALGDDT  trying   to   echo   on   non-echo
                      terminals.

#142      10-10797    *** Please see section 3.0 ***

#143      10-23923    Make the automatic DUMP after run-time error  in
                      BATCH not give IMRs.

#144      10-10808    An  external  recursive  procedure   call   with
                      /PRODUCTION switch caused incorrect code.

#145      10-10812    Give EOF the status of a terminator to READ  and
                      INLINE

#1000     None        Fix  several  problems  concerning   control   C
                      interrupting   running   programs  and  entering
                      ALGDDT.

#1001     None        Include   improperly    used    or    undeclared
                      identifiers in compiler error messages.

#1003     None        Fix certain cases of the NEXT command in  ALGDDT
                      not working correctly.

#1004     None        Enhance Edit #011 to  prevent  compiler  looping
                      with absent or incorrect procedure names.

#1005     None        In certain cases very long source  lines  caused
                      compiler crash.

#1006     None        Certain sequences of delimeters in  QUOTED  mode
                      caused compiler crash.
ALG1A.DOC                                                       Page 6


#1007     None        Improve  ALGDDT  response  to  inter-rupting   a
                      running  program when it is performing a monitor
                      call ( see section 3 ).

#1010     None        Make the I/O  operations  ignore  nulls  at  the
                      start  of a buffer.  Before this could result in
                      a loss of characters.

#1011     None        Establish aliases for RAN,TRACEON &  TRACEOFF  (
                      see section 2 ).

#1012     None        Clear output buffer if SELECTOUPUT away from the
                      TTY.

#1013     None        DECSYSTEM-20  version  only.   Stop   occasional
                      errors with PRINT.

#1014     None        ALGOTS no longer  traps  QUOTA  exceeded  &  UUO
                      errors ( see section 2 ).

#1015     None        NEXTBYTE used to  give  incorrect  results  with
                      some dynamic actual parameters.

#1016     None        Not used.

#1017     None        Stop procedure READ losing  the  next  character
                      after a quoted string ( see section 2 ).



6.0  SUGGESTIONS

None.



[End of ALG1A.DOC]