Trailing-Edge
-
PDP-10 Archives
-
ALGOL-10_V10B_BIN_SRC_1err
-
algol.doc
There are 4 other files named algol.doc in the archive. Click here to see a list.
ALG310.DOC -- Changes from V10A/V1A(145) to V10B/V1.2(310) Page 1
January 1982
COPYRIGHT (C) 1974,1981,1982 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 THEROF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
TRANSFERED.
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.
ALG310.DOC -- Changes from V10A/V1A(145) to V10B/V1.2(310) Page 2
January 1982
1.0 SUMMARY.
This is a maintenance release of DECsystem-10 and DECSYSTEM-20 ALGOL
intended to include all bug fixes made since version 10A(145)/1A(145),
both those published in the Software Dispatch and those reported to us
through non SPR channels. This version will run under all supported
monitors and on all supported hardware.
The ALGOL Programmer's Guide (order number AA-0196C-TK) contains
information about the language and compiler. It is the reference
manual for ALGOL on the DECsystem-10 and DECSYSTEM-20.
2.0 EXTERNAL CHANGES.
The following changes will be noticed by the user:
1. Answers from the double-precision exponential procedure LEXP
may be slightly different than before. This is the result of
edit 240, which was made in response to an SPR. The new
procedure may in some cases produce answers which do not
agree with previous ones, but which in fact are more
accurate.
2. ALGDDT will in some cases give different line numbers than
before. This is the result of edit 242 which corrected a bug
in ALGDDT. The new line numbers should be correct in all
cases now.
3. As of edit 163, the backspace key will have the same effect
as the delete key in ALGDDT.
4. Edit 243 corrects the way ALGOL programs determine if they
are being run under batch or not. If the program is under
batch, and a fatal error starts ALGDDT, automatic TRACE,
DUMP, and STATISTICS commands are executed. Previously, this
would occur even if the user was on a PTY.
5. ALGLIB.REL now contains ALGDDT and ALGOTS via a change to the
.CTL file. Users thus may build a nonsharable ALGOL program
(via /OTS:NONSHARE to LINK) without needing seperate
ALGDDT.REL and ALGOTS.REL files on SYS:.
6. The error message "Monitor call (GETTAB) to get time/date
failed" has been changed to "Monitor call (GETTAB) to get
batch job status failed". The date and time are now obtained
with DATE and MSTIME UUOs, rendering this error message
unnecessary. The batch/non-batch status is now obtained with
the GETTAB UUO rather than CTLJOB, and the error message has
been altered to handle this.
7. A help file for the compiler has been added. ALGOL.HLP
contains information about the compiler command line format
ALG310.DOC -- Changes from V10A/V1A(145) to V10B/V1.2(310) Page 3
January 1982
and switches. It is invoked by typing /HELP to the compiler
or issuing the "HELP" command to the operating system.
8. A new command "DDT" has been added to ALGDDT.HLP. This
command existed in earlier versions of ALGDDT but was not
documented. It starts the program pointed to by .JBDDT if
the address is non-zero.
9. The ALGDDT prompt ">> "is now displayed before user text when
^R is typed. This will echo the entire line as far as the
user has typed it so far, including the prompt. Before, only
the user text would be echoed.
10. If ALGDDT cannot start because of insufficient core, the
message "?Can't start ALGDDT - not enough core" is printed
and the program exits. It no longer causes a fatal internal
error to ALGDDT. ALGDDT can be reentered after altering the
core limits of the job and typing "REENTER".
11. Missing FORWARD reference label and procedure names are now
output by the compiler. Previously, the error message would
leave the user guessing as to what FORWARD reference was
unsatisfied. The message "FORWARD HAS NO MATCHING
DECLARATION IN SAME BLOCK" has been changed to "NO
DECLARATION IN THIS BLOCK FOR FORWARD <label/procedure
name>".
12. Answers from the COS and SIN library procedures may be
slightly different, due to edit 272. This edit fixed the
problem of COS(0)=1.00000001 when it should have been exactly
1. This edit was necessary since it was not possible to
return a number greater than 1 to many other trigonometric
library procedures.
13. The listing header now prints the proper format of the system
name, i.e. DECsystem-10 or DECSYSTEM-20.
14. Typing control-C to ALGDDT on TOPS-20 systems now echos ^C
before returning to EXEC level.
15. When an ALGOL program enters ALGDDT, an implicit BREAKOUTPUT
is done to force remaining buffers to be dumped to the
current output device.
16. The compiler now prints percent signs before warning messages
and question marks before error messages. These characters
appear on the left margin, immediately before the line number
containing the warning or error.
17. When the compiler is invoked at CCL level (monitor COMPILE
command), the number of warnings is typed if it is non-zero
at compilation end. Previously, only errors would be
summarized this way.
ALG310.DOC -- Changes from V10A/V1A(145) to V10B/V1.2(310) Page 4
January 1982
18. Edit 306 has changed the compiler error message "NO VALUE
ASSIGNED TO TYPED PROCEDURE" TO "NO VALUE ASSIGNED TO TYPED
PROCEDURE, OR PROCEDURE NAME CONFLIICTS WITH ANOTHER
DEFINITION".
19. As of version 6 of FORTRAN, the FORTRAN-40 interface (CALL
statement) will not be supported. The F10CALL for
FORTRAN-10/20 will continue to be supported without change.
20. The compiler (ALGOL.EXE) and the run time system (ALG310.EXE)
may be protected as execute-only on KL and KS processors
running TOPS-10. Refer to the ALGOL.BWR file for notes on
execute-only and KI processors.
3.0 KNOWN BUGS AND DEFICIENCIES.
1. The user should beware that when using DDT (not ALGDDT) to
debug ALGOL programs, using the $X function to execute
instructions will not always work. Overflows, traps, and
other operations which could cause a PSI interrupt may be
ineffective. The results of "$X"ing such an instruction is
undefined.
2. The compiler does not correctly generate CREF Procedure
Nesting Level tables. This table graphically presents the
block levels of the source program and numbers them. This is
a minor problem that most users will never be affected by.
3. Most library procedures such as (but not limited to)
OPENFILE, INPUT, OUTPUT, COPY, etc. will not accept string
procedures as arguments. This is a problem with the design
of the library and OTS routines and may be addressed at a
later time.
4. The READ library procedure does not detect EOF (End Of File)
when reading strings. Encountering EOF is a fatal error and
will halt the program. TOPS-10 users may use the TRAP
library procedure to detect EOF.
5. The run time system APR trap routine is not coded
recursively. If an APR trap occurs while the trap handler is
already processing an earlier APR trap, program behavior will
be indeterminate. The most common symptom is a loop, with no
error indication. This has been noted to occur most
frequently when ALGDDT is attempting to read in the .SYM file
after a fatal error. A workaround to this particular aspect
of the problem is to load the program, REENTER it to start
ALGDDT and read the .SYM file, and then give the START
command to begin execution.
6. The compiler does not detect an error in the following source
statement:
ALG310.DOC -- Changes from V10A/V1A(145) to V10B/V1.2(310) Page 5
January 1982
foo LINE;
where "foo" is any single word. The statement slips past the
compiler and produces no diagnostic message at all.
7. The program 'BEGIN' 'COMMENT'; 'END' does not compile. This
is the case whenever 'END' immediately follows 'COMMENT'. In
such a case the compiler misses the 'END' and issues the
message INCORRECT STATEMENT.
8. The use of the logical operator NOT with an operand that is
not of type LOGICAL will not return the logical value TRUE or
FALSE. Instead it simply complements then bits of the
operand value, which generally does not produce the
'expected' results.
9. There is no ALGDDT command to flush the output buffers, such
as the ALGOL procedure BREAKOUTPUT.
10. The section of the documentation that discusses deleting
files (section 16.4, pages 16-4 and 16-5) is no longer
correct, especially for TOPS-10 monitors from 7.01 onward. A
file that exists on DSK can only be deleted if the file
channel is allocated with a call to the library procedure
INPUT (which causes a LOOKUP UUO on any succeeding OPENFILE
call). For files on channels allocated for OUTPUT (which
will do an ENTER UUO), a second OPENFILE with a null filename
will merely delete the new file which has not yet been
closed. A file of the specified name that already exists on
DSK will remain after the second OPENFILE call. The sequence
of statements necessary to make sure that file 'O.DAT' does
not exist are:
OUTPUT(1,"DSK");
OPENFILE(1,"O.DAT");
INPUT(1,"DSK");
OPENFILE(1,"O.DAT");
OPENFILE(1,"");
RELEASE(1);
4.0 INSTALLATION INSTRUCTIONS.
The ALGOL distribution tape contains five savesets:
Saveset 1 The product documentation files ALGOL.DOC (this file) and
ALGOL.BWR (the beware file). The beware file should be
read before the product is installed on the system area.
This saveset also contains the help (.HLP) files for
ALGOL-10, which should be copied to HLP:.
Saveset 2 The system files ALGOL.EXE, ALGLIB.REL, and ALG310.EXE for
ALGOL 10B/1.2 edit 310. This saveset also contains the
ALG310.DOC -- Changes from V10A/V1A(145) to V10B/V1.2(310) Page 6
January 1982
help files for ALGOL-20. All these files should be copied
to SYS:.
Saveset 3 The UETP test library files ALGOL.VER, ADPR12.ALG, and
ADPR12.COM. These files are to be copied to area UTP: on
TOPS-10 systems, and to PS:<UETP.LIB> on TOPS-20 systems.
Saveset 4 The ALGOL binaries. These are the files produced when
building the product.
Saveset 5 The ALGOL sources, and the batch file used to build the
product (ALGOL.CTL). Sites adding edits to the product may
use the .CTL file as a guide for creating a new version of
the product. Instructions on how to use the batch file are
contained in the .CTL file itself. The build can occur two
ways: with cref listings, or without. The build requires
MACRO V.53A(1152) or later, LINK V.4A(1220) or later, and
HELPER.REL V.5(41). When the build is complete, the files
ALGOL.EXE, ALGLIB.REL, and ALG310.EXE can be put on SYS:.
5.0 INTERNAL CHANGES.
Following is a list of all edits since the last release.
Edit SPR Comment
146 Fix various bugs with scope of ALGDDT "GOTO" command.
(ALGDDT)
147 Don't assume register DL is safe over errors in
ALGDDT. (ALGDDT)
150 Make line number correct if PC is a return address.
(ALGDDT)
151 Don't assume result of formal procedure to be double.
(ALGOTS)
152 Save register AX over possible stack shifts. (ALGOTS)
153 Perform rounding correctly. (ALGFUN)
154 Don't increase offset if source already in stack.
(ALGSER)
155 Improve accuracy of LARCTAN. Different for 10 and 20
versions. (ALGLIB)
156 Don't use GETTAB UUO for date/time. (ALGDDT)
157 Save context of register DL over stack shifts when
typing arrays. (ALGDDT)
ALG310.DOC -- Changes from V10A/V1A(145) to V10B/V1.2(310) Page 7
January 1982
160 Don't clobber label address when storing error code.
(ALGLIB)
161 Accept comment after end statement without error.
(ALGCON)
162 Include all library procedures in test. (ALGEXP)
163 Treat backspace as a delete. (ALGDDT)
164 Don't force single-precision on KI10. Different for
10 and 20 versions. (ALGOTS)
165 Include count of form-feeds in CREF count. (ALGCON)
166 Correct edit 1002 for errors at block level one.
(ALGCON)
167 Test for /PRODUCTION correctly. (ALGDEC)
170 Turn off CREF switch correctly. (ALGDEC)
171 26346 Add warning count and version number, start edit
history. (ALGCON)
172 ----- Add version number. (ALGOTS)
173 26563 Fix by-name parameter passing. (ALGOTS)
174 26963 Fix redirected dump output to not double last
character at BRKBYT call. (ALGOTS)
175 29965 Applicable to ALGOL-10 only. Allow trapping EOF after
edit 145. (ALGOTS)
176 27013 Tracing of labels in ALGDDT can clobber AX. (ALGOTS)
177 27052 Do not clobber symbol table if a symbol in an
enclosing block needs to be extended (erroneous
program). (ALGCON)
200 27046 Remember that a call to STRASS uses A0 and A1.
(ALGCOD)
201 27238 Delocate SP on control-C trap. (ALGOTS)
202 ----- If parameter mismatch during parameter evaluation in
PARAM, put DL back to caller's level so that a good
context is available to the debugger. (ALGOTS)
203 ----- Routine "DEC" prints one too many characters if asked
to print a zero in the listing file. (ALGCON).
204 ----- Produce correct word alignment of listing if /CREF.
(ALGCON)
ALG310.DOC -- Changes from V10A/V1A(145) to V10B/V1.2(310) Page 8
January 1982
205 ----- Applicable to ALGOL-10 only. Generate library names
ending in L for /KL10 switch. (ALGSYS, ALGCON)
206 ----- Applicable to ALGOL-20 only. Put TRAP back in the
library. (ALGSTB, ALGLIB)
207 27801 More of edit 177 for symbols in erroneous programs.
(ALGCON)
210 27837 Allow six character file name in OPENFILE. (ALGLIB)
211 ----- Do not trap overflows caused by DDT. (ALGOTS)
212 28048 Check trap label out of scope more carefully.
(ALGOTS)
213 28097 PIM mode and byte mode are character modes, not binary
modes. (ALGOTS)
214 ----- Applicable to ALGOL-20 only. Do a dummy UUO after
setting .JBINT to force PA1050 to notice control-C
trapping has been set up. (ALGOTS)
215 28340 Allow blanks everywhere in long real constants.
(ALGCON)
216 28426 Fix ALGOTS INBLK to not delocate the channel number
more than once if null skipping causes another IN UUO
to be done. (ALGOTS)
217 28469 Applicable to ALGOL-10 only. Preceed "UNDEFINED
LABEL" error with a question mark and set WFLAG so no
.REL file is created. (ALGCON)
220 ----- Fix embedded assignments involving double precision or
string variables where something has been stacked.
This was old edit 776, which was withdrawn because it
broke /CHECKON, but the sample program which broke now
compiles. (ALGCOD)
221 28629 Check properly for floating overflow during double
precision constant folding for multiply and divide.
(ALGCOD)
222 28695 ALGDDT will ILL MEM REF if a break point is set on an
immediate mode instruction, the breakpoint is reached,
and the program is then continued. (ALGDDT)
223 28682 LISTOFF/LISTON causes extra characters in listing due
to byte alignment problems. (ALGCON)
224 29190 Fix indirect reference to string in A2. A2 was
pointing to A0, not @ A0 as it should have been.
(ALGOTS) [JBS 1-APR-80]
ALG310.DOC -- Changes from V10A/V1A(145) to V10B/V1.2(310) Page 9
January 1982
225 29014 Fix code which assumed A2 contained a pointer to A0
(this assumption was false). (ALGFUN) [JBS 11-APR-80]
226 29460 Fix double-precision constant at LLN8. (ALGLIB)
[JBS 11-APR-80]
227 29298 Do memory management math in righthalf of AC to avoid
arithmetic overflows when working with non-shared
hiseg (overflow occurs if more than 131071 words
return to the heap). (ALGOTS) [JBS 20-MAY-80]
230 29456 Make 10^( < -63) return a zero result rather than a
floating overflow. (ALGLIB) [JBS 22-MAY-80]
231 29458 Make long real numbers < 1 with mantissas near 1 print
correctly. (ALGOTS) [JBS 29-MAY-80]
232 RAW Remove LRLOAD and similar macros (KA10 DMOVE, etc.)
from ALGDDT. (ALGDDT) [JBS 4-JUN-80]
233 RAW Add "DDT" command to help file. (ALGDDT.HLP)
[JBS 5-JUN-80]
234 RAW Add PORTALS in ALGSYS so ALGOTS can be execute-only.
(ALGSYS, ALGOTS) [JBS 6-JUN-80]
235 RAW Fix ALGOTS so "REENTER" works after fatal bomb-out on
a PTY (controlled job). (ALGOTS) [JBS 6-JUN-80]
236 RAW Make 10&&^( < -63) return a zero result rather than a
floating overflow. (ALGLIB) [JBS 19-JUN-80]
237 RAW Fix ILL. MEM. REF. problem with "WRITE(TIME)"
statement, etc. (ALGLIB) [JBS 21-JUN-80]
240 29459 Fix inaccurate answers from LEXP (double precision
log). major rewrite to LEXP in ALGLIB. (ALGLIB)
[JBS 25-JUN-80]
241 29672 Don't let ALGDDT start if JACCT bit is on. (ALGDDT)
[JBS 10-JUL-80]
242 29457 Fix occasional wrong line # information from ALGDDT
after program bombs. This only happened when a
"SYSER" UUO without an address arg. was executed.
(ALGOTS) [JBS 28-JUL-80]
243 29865 Fix ALGOTS and ALGDDT so they properly determine
whether or not they are being run under batch. All
they did was see if they were controlled (i.e., on a
PTY instead of real batch). (ALGOTS, ALGDDT)
[JBS 30-JUL-80]
244 29945 Fix GFIELD to work with strings. The string header
itself, rather than the string, was the target for an
ALG310.DOC -- Changes from V10A/V1A(145) to V10B/V1.2(310) Page 10
January 1982
"LDB". (ALGLIB) [JBS 20-AUG-80]
245 RAW Add lots of code to GFIELD and SFIELD to handle
strings. Previously, all byte manipulation was being
done in the string header, rather than in the string
proper. Install edit 244 first. (ALGLIB)
[JBS 8-SEP-80]
246 RAW Fix heap table scanning routine. (ALGOTS)
[JBS 2-OCT-80]
247 30062 Fix infinite compiler loop when compiling bad user
program. (ALGCON) [JBS 8-OCT-80]
250 ALGLIB 17-FEB-81 SPR 10-30625 JBS
LONG REAL to INTEGER conversion inside a procedure fails
if the integer actual parameter is an array. Library
procedure for LONG REAL to INTEGER conversion was stepping
on A2 - all other conversion routines used only A0 and A1.
251 ALGLIB 23-APR-81 SPR 10-30813 JBS
Fix READ procedure in ALGLIB. It was returning space to the
heap before reading into the string. This does not work if
EOF happens and TRAP(38) has been used to catch the EOF. The
old string is still intact but it's space was deallocated.
Subsequent memory management returned the string space twice,
overlapping heap areas can causing data from different parts
of the program to write in the same area. Also, any expandable
heap space obtained by the routine was lost, so the trap
handler was changed to check a semaphore and release any "lost"
space.
252 ALGCON 7-MAY-81 QAR 10-6411 JBS
MAke error message "ERROR ON A PREVIOUS LINE" have an entry
in the message dispatch table. Otherwise any time the message
is OUTSTR'ed, the UUO dies.
253 ALGCON 21-MAY-81 SPR 10-31117 JBS
Fix edit 204 so CREF listings won't get "ILLEGAL ADDRESS IN
UUO" error. Location FIVEC was not being treated properly
and the listing output buffers were damaged. Edit 204 must be
installed first.
254 ALGOTS 23-JUN-81 QAR 10-6262 JBS
Reinstall edit 772 form August 1977.
255 ALGOTS 23-JUN-81 QAR 10-6261 JBS
Reinstall edit 771 form August 1977.
256 ALGLIB 28-JUL-81 SPR 10-31070 JBS
Delete transient string space in procedures WRITE, LENGTH,
and SIZE; make DELETE return string space to the heap after
deleting a string.
ALG310.DOC -- Changes from V10A/V1A(145) to V10B/V1.2(310) Page 11
January 1982
257 ALGCON 5-AUG-81 QAR 10-6398 JBS
Fix CREF generation problem. Was getting ILL. ADDR. in UUO
due to edit 204. Edit 204 is removed by this edit. Edit
253 should be installed first (this simply removes another
part of edit 204).
260 ALGOTS 9-AUG-81 QAR 10-6401 JBS
Make LONG REAL zero print as 0, not 0&&-39.
261 ALGLIB 9-AUG-81 QAR 10-6399 JBS
Print <CR><FF> in library procedure PAGE, not <CR><LF><FF>.
262 ALGCOD 11-AUG-81 QAR 10-6405 JBS
Edit 220 broke /CHECKOFF with LONG REAL arrays.
263 ALGOTS 14-AUG-81 QAR JBS
Give heap integrity checker more integrity. It would loop
forever if a null entry were found, which can happen if
an array goes out-of-bounds with /CHECKOFF specified.
264 ALGDDT 17-AUG-81 QAR 10-6408 JBS
Make ^R echo ALGDDT prompt as well as user typeing, fix the
way ALGDDT determines if there are more tham 6 chrs. in a
module name.
265 ALGLIB 19-AUG-81 QAR 10-6402 JBS
Type GETSEG error code if GETSEG fails.
266 ALGCON, 20-AUG-81 QAR 20-1553 JBS
ALGSER Type out name of missing label or procedure if there is
no match for a FORWARD statement.
267 ALGSTM 20-AUG-81 QAR 10-6409 JBS
Don't forget to unstack after unlabeled GOTO statements.
Complicated "computed GOTO's" cause stack misalignment.
270 ALGDDT 26-AUG-81 QAR 10-6407 JBS
Fail better if there is not enough core to start ALGDDT after
the user program runs out of core.
271 ALGDDT 27-AUG-81 SPR 20-16711 JBS
Don't assume invalid boolean input to be octal #, don't
break on ":=" (edit 264 broke this).
272 ALGLIB 30-AUG-81 SPR 20-16709 JBS
Make COS(0.0) yield 1, not 1.00000001. This is necessary
for ARCCOS functions.
273 ALGCON 30-SEP-81 SPR 20-16710 JBS
Catch use of single-quote (i.e., reserved word delimiter)
after "COMMENT" when using reserved word mode, make routine
LMSGZ print error messages correctly during "pass 1".
274 ALGDDT, 30-SEP-81 QAR 20-1689 JBS
ALG310.DOC -- Changes from V10A/V1A(145) to V10B/V1.2(310) Page 12
January 1982
ALGOTS, Misc. edits to print correct listing headers, echo ^C
ALGCON from ALGDDT, breakoutput when entering ALGDDT.
275 ALGLIB 29-OCT-81 QAR 10-6512 JBS
Get program information from GETTAB's, not startup AC's, and
use a PATH block if in an SFD. Monitors after 7.01 do not
support startup AC's.
276 ALGCOD 12-OCT-81 QAR 20-1683 JBS
Fix edit 262 to use correct, non-conflicting AC's for LOP
and SYM. This generates correct code for planting results of
STRING and LONG REAL calculations.
277 ALGOTS, 13-OCT-81 QAR 20-1704 JBS
ALGPRM Account for skip return after BREAKOUTPUT in error UUO handler
(revision of edit 274), use another location to save A1 instead
of %SYS17 in error UUO handler (stack overflow in this routine
also used %SYS17), revise ALGOTS routine INITIA.
300 ALGCON 23-0CT-81 QAR 10-6626 JBS
Print number or warnings on TTY when CCL entry is used, put
"%" and "?" before warning and error messages.
301 ALGCON 21-OCT-81 QAR 20-1697 JBS
Prevent compiler hang on bad user syntax.
302 ALGOTS 31-OCT-81 QAR 20-1707 JBS
Fix Address Check when deleting bad .REL file. Buffer header
was getting stepped on after T15GET mismanaged buffer ptrs.
303 ALGOTS, 26-OCT-81 QAR 10-6403 JBS
ALGDDT, Make the OTS work execute-only as much as possible. Extension
ALGSER, of edit 234.
ALGUTL
304 ALGOTS, 4-NOV-81 QAR 20-1684 JBS
ALGCON "GOTO" statement processor forgot that calling GETOWN could
cause stack shifts, and accordingly did not use delocated
values in calculations. Also, add a question mark to the
error message "UNDEFINED LABEL" in ALGCON (TOPS-20 only).
305 ALGCON 5-NOV-81 QAR 10-6674 JBS
Fix undefined symbol table search at ZLAB (TOPS-10 only).
306 ALGCON 5-NOV-81 QAR 20-1706 JBS
Change compiler error message to "NO VALUE ASSIGNED TO
TYPED PROCEDURE, OR PROCEDURE NAME CONFLICTS WITH ANOTHER
DEFINITION".
307 ALGOTS 8-DEC-81 QAR 10-6745 JBS
Remove edit 224 - broke "PRINT(LENGTH(VDATE))", etc.
310 ALGOTS 18-DEC-81 QAR 20-1732 JBS
Fix ALGDDT "PROFILE" command broken by edit 303.
ALG310.DOC -- Changes from V10A/V1A(145) to V10B/V1.2(310) Page 13
January 1982
[End of ALG310.DOC]
ALG145.DOC -- CHANGES from V10(741)/V1(105) to V10A/V1A(145) Page 14
January 1978
1.0 SUMMARY.
This is a maintainance release of DECsystem-10 and DECSYSTEM-20 ALGOL
intended to include all bug-fixes made since version 10(741) / 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 10(741) / 1(105).
2.0 EXTERNAL CHANGES.
The following changes will be noticed by the user:
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.
7. Enhanced ALGDDT command UNWIND.
the UNWIND command has been extended to know about block
ALG145.DOC -- CHANGES from V10(741)/V1(105) to V10A/V1A(145) Page 15
January 1978
levels within procedures as well as the procedure levels
themselves. The new command format is 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 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 10A / 1A. The files ALGOL.SHR, ALG145.SHR,
ALGLIB.REL and ALGDDT.HLP should be put on SYS:. It is recommended
that installations using .EXE files should convert them before use.
ALG145.DOC -- CHANGES from V10(741)/V1(105) to V10A/V1A(145) Page 16
January 1978
5.0 INTERNAL CHANGES.
There now follows the list of edits included in version 10A
(DECsystem-10). Please note that with edit #777 ALGOL used up the
supply of 3 digit octal edit numbers allocated to it. All subsequent
edits will be numbered as if old edit #635 = #001 so as to bring the
edit numbers into line with those for DECSYSTEM-20 ALGOL. Therefore
all edits after 635 have been renumbered in the sources for 10A, and
all references to earlier edit numbers removed. Four digit edit
numbers are fixes to problems or enhancements not originating from an
SPR.
DECsystem-10 edits:
EDIT #
#742 10-10777 Make ALGDDT PAUSE on labels work correctly
#743 None Make READ ignore LF after CR.
#744 10-107778 Exponentiation caused incorrect code with
sufficiently complex operands.
#745 10-10794 Make ALGOL call itself version 10 and not
version 8.
#746 None Don't make REDIRECTed files unecessarily large.
#747 None Fix certain cases of GOTO command in ALGDDT.
#750 None Fix to control C trapping.
#751 None Fix to ALGDDT NEXT command.
#752 None Ignore breakpoints if already in ALGDDT.
#753 10-22610 Make compiler command scanner ignore leading
spaces.
#754 None Use compiler version number as program version
number.
#755 10-22013 Stop programs generating un- defined global
symbol %ALGDR.
#756 10-22677 Make programs linked with /OTS:NONSHARE switch
work correctly
#757 10-10783 Fix overflow in routine LEXP.
#760 10-23180 Make INPUT and OUTPUT not always take the error
return if an error label was specified.
#761 10-10789 Make the body of a FOR statement a block.
ALG145.DOC -- CHANGES from V10(741)/V1(105) to V10A/V1A(145) Page 17
January 1978
#762 10-10792 Report correct channel number when giving EOF
error message.
#763 None Enhanced UNWIND command & various minor fixes.
#764 10-10791 Compile time folding of floating point constants
generates incorrect code.
#765 10-10793 Give EOF error when READing from empty strings.
#766 10-10787 Make I/O to TTY on channels 0 & 1 work.
#767 10-10789 Make DELETE deal with strings properly.
#770 10-22806 Compiler crash with TTY input lines longer than
80 characters.
#771 10-10799 Fix certain differences between TTY I/O on
channel -1 and the others.
#772 10-10800 ALGOTS could get into a loop when called with an
undefined string.
#773 10-10802 Fix compiler crash when real number present in a
declaration.
#774 10-23307 Fix compiler looping with certain mis- spelled
keywords.
#775 10-10805 Stop ALGDDT trying to echo on non-echo
terminals.
#776 10-10797 *** Please see section 3.0 ***
#777 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 #645 to prevent compiler looping
ALG145.DOC -- CHANGES from V10(741)/V1(105) to V10A/V1A(145) Page 18
January 1978
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.
#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.
#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 ).
ALG145.DOC -- CHANGES from V10(741)/V1(105) to V10A/V1A(145) Page 19
January 1978
DECSYSTEM-20 edits:
#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 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.
#131 10-10793 Give EOF error when READing from empty strings.
#132 10-10787 Make I/O to TTY on channels 0 & 1 work.
ALG145.DOC -- CHANGES from V10(741)/V1(105) to V10A/V1A(145) Page 20
January 1978
#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.
#1007 None Improve ALGDDT response to interrupting a
running program when it is performing a monitor
call ( see section 3 ).
ALG145.DOC -- CHANGES from V10(741)/V1(105) to V10A/V1A(145) Page 21
January 1978
#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 ).
[End of ALG145.DOC]