Compaq Pascal PASCAL_E1058 V5.8 Compilers Alpha ECO Summary
TITLE: Compaq Pascal PASCAL_E1058 V5.8 Compilers Alpha ECO Summary
Modification Date: 24-JAN-2001
Modification Type: New Kit
Copyright (c) Compaq Computer Corporation 2000. All rights reserved.
PRODUCT: Compaq Pascal for OpenVMS Alpha Systems
OP/SYS: OpenVMS Alpha
COMPONENT: SYS$SYSTEM:PASCAL.EXE
SOURCE: Compaq Computer Corporation
ECO INFORMATION:
ECO Kit Name: PASCAL_E1058
ECO Kits Superseded by This ECO Kit: None
ECO Kit Approximate Size: 22,446 Blocks
Kit Applies To: OpenVMS Alpha V6.1 and higher
Compaq Pascal for OpenVMS Alpha V5.8
System/Cluster Reboot Necessary: No
Rolling Re-boot Supported: No
Installation Rating: INSTALL_UNKNOWN
Kit Dependencies:
The following remedial kit(s) must be installed BEFORE
installation of this kit:
None
In order to receive all the corrections listed in this
kit, the following remedial kits should also be installed:
None
ECO KIT SUMMARY:
An ECO kit exists for Pascal V5.8 Compilers on OpenVMS Alpha V6.1
and higher.This kit addresses the following problems:
Problems Addressed In PASCAL_E1058:
o Compaq Pascal V5.8 introduced additional support for
debugging of schema types. When processing a routine that
has a procedure parameter which itself has a schematic
parameter, the compiler will generate incorrect code. The
incorrect code will fail at run-time. For example,
PROGRAM TEST (OUTPUT);
PROCEDURE MAIN;
VAR
ID: INTEGER := 100;
PROCEDURE INVOKE_PRINT (PROCEDURE PRINT(MESSAGE: STRING));
BEGIN
PRINT('this is a bug');
END;
PROCEDURE PRINT_MESSAGE (MESSAGE: STRING);
BEGIN
WRITE('id=', id:1, ' ');
IF ID <> 100 THEN
WRITELN(MESSAGE);
WRITELN;
END;
BEGIN
INVOKE_PRINT(PRINT_MESSAGE)
END;
BEGIN
MAIN;
END.
will get different results compiled /DEBUG vs compiled
without /DEBUG.
This problem has been corrected.
o Compaq Pascal V5.8 introduced additional support for
debugging of schema types. However, the algorithm used could
lead to very long compilation times when using /DEBUG. One
case reported went from 1:12 to 20:00 minutes. The slowdown
can occur even if the program does not use schema types.
The algorithm has been modified to reduce the overhead for
/DEBUG to approximately 6% (which is similar to the overhead
for /DEBUG with the V5.7 compiler).
o Compaq Pascal V5.7-84 included a fix for typecasting arrays
or records to smaller types and getting the size of these
typecasted variables correct.
However, this change was incorrect when applied to ordinal
types like subranges. For example, the following program
produces incorrect results:
PROGRAM CAST_VARIABLE(OUTPUT);
TYPE
SUBRANGE = 0..999999999;
SUBRANGE_WITH_SIZE = [BIT(32)] SUBRANGE;
VAR
NUMBER : SUBRANGE;
II : INTEGER32;
BEGIN
NUMBER := 80;
II := -1;
II :: SUBRANGE := NUMBER;
WRITELN(BIN(II), " Binary data after cast");
WRITELN(BIN(NUMBER)," Expected binary data");
II := -1;
II :: SUBRANGE_WITH_SIZE := NUMBER;
WRITELN(BIN(II), " Binary data after cast");
WRITELN(BIN(NUMBER)," Expected binary data");
END.
This compiler has been fixed to restore the correct behavior
for the above example and to fix the original problem also.
INSTALLATION NOTES:
The kit must be unpacked with UNZIP. Inside the PASCAL_E1058 ZIP file
are 4 BACKUP savesets that comprise the Compaq Pascal kit.
Once unpacked, install this kit with the VMSINSTAL utility by logging into
the SYSTEM account, and typing the following at the DCL prompt:
@SYS$UPDATE:VMSINSTAL PASCAL_E1058 [location of the savesets]
A system reboot is not necessary. However, if you are installing this
ECO in a VMScluster environment, you should invoke the
SYS$STARTUP:PASCAL$STARTUP.COM command file on the other nodes in the
the cluster so the new compiler image will be properly installed.
All trademarks are the property of their respective owners.
This patch can be found at any of these sites:
Colorado Site
Georgia Site
Files on this server are as follows:
pascal_e1058.README
pascal_e1058.CHKSUM
pascal_e1058.CVRLET_TXT
pascal_e1058.zip
pascal_e1058.CVRLET_TXT
|