ECO NUMBER: COBOLAE1024 ----------- PRODUCT: DEC COBOL for OpenVMS Alpha Systems -------- UPDATED PRODUCT: DEC COBOL for OpenVMS Alpha Systems 2.4 ---------------- APPRX BLCK SIZE: 17558 ---------------- DIGITAL Cover Letter for DEC COBOL V2.4 for OpenVMS Alpha ECO Kit COBOLAE1024. ECO Kit COBOLAE1024 Description -------------------------------------- This release includes an updated compiler and an updated RTL. Below is a description of new functionality, improvements, and bug fixes with V2.4-919 beyond V2.4-863 SSB. o CIT3 (COBOL Intermediate Temp) for increased arithmetic compatibility with VAX COBOL (see the CIT3 release notes below). [CLD HPAQ126A7, CLD MGO102039, SPR MCPM84967] o Improved compilation performance and decreased object sizes for 01 WORKING-STORAGE non-EXTERNAL data declarations which contain one or more subordinate OCCURS. These are now allocated in uninitialized storage unless there is a subordinate elementary data item which has a VALUE clause or which has a default initialization. [ECP RSFB1001, ECP RSFB2001, CLT::DEC_COBOL_IFT 237, 466, 493] o 9 bug fixes: V2.4-919 [RTL] The RTL kit no longer includes SYSMSG.EXE. This corrects some problems with installing COBOLRTL024. [CLT::DEC_COBOL_IFT 576] V2.4-919 [RTL] A problem has been corrected when a [RE]WRITE statement changes the file position that was established with a START statement. Previously, any locking specifications associated with the START statement were ignored when the START was re-executed to re-establish the correct file position. Now, all locking information is saved and restored. [CLT::DEC_COBOL_IFT 573] V2.4-919 [RTL] A problem has been corrected when the intrinsic function MEDIAN was called with one or more arguments that referred to leading sign separate or trailing sign separate decimal data items which could result in a wrong answer. [DEC_COBOL_BUGS 4206] V2.4-919 The compiler no longer fails when a SCREEN SECTION USING clause references a group item which includes a numeric subordinate item. [CLT::DEC_COBOL_IFT 566] V2.4-919 The compiler no longer fails /OPT in certain cases when CALL USING BY CONTENT is used with a character item from the LINKAGE SECTION. [SPR HPXQA714E] V2.4-919 A problem has been corrected which involved the use of the EXIT PROGRAM statement in a local USE procedure of a COBOL main program which was compiled with the qualifier /STANDARD=V3. The problem was that such an EXIT PROGRAM statement did not cause the execution of the run-unit to terminate immediately, as it does in VAX COBOL. Instead, the EXIT PROGRAM statement was causing the execution of the run-unit to continue by returning immediately to the main-line code of the main program. [CLD HPXQ10DHE] V2.4-919 A compiler problem has been corrected where ADD, SUBTRACT, MULTIPLY, and DIVIDE with a floating-point destination (COMP-1 or COMP-2) and the ROUNDED option could result in a wrong answer. [CLD UVO105254] V2.4-919 When the source program contains a call to LIB$ESTABLISH or to LIB$REVERT, arithmetic statements with an ON SIZE ERROR clause no longer execute as if the size error condition was always raised. [CLD MGO102784] V2.4-919 A problem has been corrected when a MULTIPLY statement or multiply operation having all comp operands required an intermediate result capable of representing 10 decimal digits but a smaller intermediate was erroneously chosen. Combinations of input values that produced 10-digit products could result in a wrong answer. [CLT::COBOL 3237] DEC COBOL V2.4-919 CIT3 release notes -------------------------------------------------------------------------------- The COBOL language allows users to declare data up to 18 decimal digits. Both DEC COBOL and VAX COBOL provide extended arithmetic for intermediate computations generally up to 31 decimal digits of precision. When the compilers issue the INTERMED diagnostic under /WARNINGS=ALL, VAX COBOL switches to CIT/CIT2 (COBOL Intermediate Temp) as the intermediate data type and DEC COBOL switches to double precision floating. CIT* arithmetic maintains a base containing the most significant 18 decimal digits of an arithmetic operation and an exponent in the range -99..+99 representing a power of 10. For DEC COBOL V2.4, the default compiler operation is unchanged in that double precision floating is selected when the INTERMED diagnostic is issued under /WARNINGS=ALL. For VAX COBOL, the default compiler operation is to select CIT/CIT2 when the INTERMED diagnostic is issued under /WARNINGS=ALL. To use CIT3, invoke the DEC COBOL compiler using /SWITCH=DC_USE_CIT3 You must recompile with this /SWITCH setting and relink any programs in which you wish to have CIT3 used. Currently, CIT3 is not available with DEC COBOL for DIGITAL UNIX. Contact us if you are interested in field testing a version of the DEC COBOL RTL which includes CIT3 support for DIGITAL UNIX. Following is a brief summary of differences between DEC COBOL and VAX COBOL arithmetic with CIT3 enabled in DEC COBOL: o Invalid decimal data In DEC COBOL, invalid decimal data detection takes place before any possible conversion to CIT3. CIT3 operations on data items containing invalid decimal data will get results compatible with DEC COBOL rather than VAX COBOL. o Floating-point data items In DEC COBOL, expressions involving COMP-1 or COMP-2 data items will be converted to G_floating or T_floating before conversion to CIT3. CIT3 operations involving D_floating data items, in particular, will get results compatible with DEC COBOL rather than VAX COBOL. o Undefined results If an abnormal condition arises during a CIT3 operation, for example, INTEXPOVE (intermediate exponent overflow), and the program manages to continue, and it is not an arithmetic statement with an ON SIZE ERROR clause, then the values which get stored in destination items will be undefined. DEC COBOL and VAX COBOL are highly likely to get different undefined results in such cases. o STANDARD dependency The VAX COBOL /STANDARD qualifier affects the determination (by arithmetic expression analysis) of when the compiler will switch to one of the CIT forms. With /STANDARD=V3, CIT is used when more than 18 digits of intermediate result are needed. With /STANDARD=85, CIT is used when more than 31 digits of intermediate result are needed. The DEC COBOL implementation is compatible with VAX COBOL /STANDARD=85. o Special contexts The CIT3 implementation has concentrated on the arithmetic statements (ADD, SUBTRACT, MULTIPLY, DIVIDE, and COMPUTE). The compiler does not provide CIT3 support equivalent to VAX COBOL's CIT/CIT2 support for a number of contexts: - Intrinsic functions - Expressions in reference-modification components - Expressions in INSPECT, STRING, and UNSTRING statements - Exponentiation Installation Overview --------------------- This kit does not require DEC COBOL 2.4 for OpenVMS Alpha to be previously installed. It is recommended that you read the DEC COBOL Release Notes before installation. $ @SYS$UPDATE:VMSINSTAL COBOLAE1024 $ @SYS$UPDATE:VMSINSTAL COBOLRTLAE1024 No special command is needed to restart the product. A system reboot is not necessary. Copyright Digital Equipment Corporation 1997. All Rights reserved. This software is proprietary to and embodies the confidential technology of Digital Equipment Corporation. Possession, use, or copying of this software and media is authorized only pursuant to a valid written license from Digital or an authorized sublicensor. This ECO has not been through an exhaustive field test process. Due to the experimental stage of this ECO/workaround, Digital makes no representations regarding its use or performance. The customer shall have the sole responsibility for adequate protection and back-up data used in conjunction with this ECO/workaround.