Kednos PL/I for OpenVMS Alphatm
Kednos PL/I for OpenVMS Alphatm
Release Notes for Version 4.5 and Runtime Library
Version 4.4H
This manual provides release information on Kednos PL/I Version 4.5 for
OpenVMS Alpha, a software language and the associated Runtime Library
Version 4.4H.
Revision/Update Information:
This is a new manual.
Operating System and Version:
For Kednos PL/I for OpenVMS Alpha: OpenVMS Alpha Version 6.2 or higher
Software Version:
Kednos PL/I Version 4.5 for OpenVMS Alpha
Published by:
Kednos Corporation, Pebble Beach, CA, www.Kednos.com
January 2007
Kednos Corporation, makes no representations that the use of its
products in the manner described in this publication will not infringe
on existing or future patent rights, nor do the descriptions contained
in this publication imply the granting of licenses to make, use, or
sell equipment or software in accordance with the description.
Possession, use, or copying of the software described in this
publication is authorized only pursuant to a valid written license from
Kednos Corporation or an anthorized sublicensor.
No responsibility is assumed for the use or reliability of software on
equipment that is not listed as supported in the Product Description.
Copyright Kednos Corporation, 1980-2007. All rights reserved.
Copyright ©1980-2007
The following are trademarks of Hewlett Packard Company: Alpha, AXP,
DEC, DECnet, DECtalk, DECUS, Digital, IVP, MicroVAX, OpenVMS, RMS,
RMS-11, RX50, TK50, VAX, VAX Ada, VAX BASIC, VAX BLISS, VMScluster, CDD
Repository, VAX COBOL, VAX DATATRIEVE, VAX DIBOL, VAX DOCUMENT, VAX
FORTRAN, VAXinfo, VAX MACRO, VAX Pascal, VAX SCAN, VAXset, VAXTPU, and
the DIGITAL logo.
Preface
This document contains release information on Kednos PL/I Version 4.5
for OpenVMS Alpha Systems. Release information is necessary for gaining
the best results from Kednos PL/I Version 4.5 on the OpenVMS Alpha
operating system. Kednos recommends that all users read this
information. Kednos Corporation also recommends that all users review the
section of this manual entitled "Known Errors and Restrictions" before
submitting an SPR.
1 Overview of Changes Made in Kednos PL/I Version 4.5
Kednos PL/I Version 4.5 contains the following enhancements and fixes:
- The maximum length of a symbol has been increased from 31 to 64
characters, matching changes made on Alpha for Bliss and the linker.
- A regression has been corrected that mishandled Uplevel Addressing
from User Open routines. That regression was introduced on the original
port from VAX to Alpha.
- A regression has been corrected that prevented using the debugger
to examine a variable that was both Controlled and External. That
regression was introduced on the original port from VAX to Alpha.
- Documentation has been updated to indicate that like other
compilers on OpenVMS Alpha, Kednos PL/I defaults global variable
Program Sections to being not shareable. These Program Sections are
analogous to Fortran Common areas and this change from the behavior on
VAX was mandated by Digital Equipment Corporation for all languages.
This is the way the PL/I compiler has always behaved on Alpha.
- The compiler has been changed to automatically handle called
routine (such as OpenVMS system service) requirements for minimum
length argument vectors in cases where trailing arguments are Optional.
Formerly this duty was imposed on the PL/I programmer.
- A regression in the default strings used by the LTRIM and RTRIM
built-in functions has been corrected. This regression was introduced
with PL/I Version 4.3 in December of 2002.
2 Overview of Changes Made in Kednos PL/I Version 4.4G and Kednos Runtime Library Version 4.4H
Kednos PL/I Version 4.4G and Kednos Runtime Library Version 4.4H
contain the following enhancements and fixes:
- A regression in certain use of the ONCODE function of the Runtime
Library has been corrected. That regression was introduced in V4.4B.
3 Overview of Changes Made in Kednos PL/I Version 4.4G and Kednos Runtime Library Version 4.4B
Kednos PL/I Version 4.4G and Kednos Runtime Library Version 4.4B
contain the following enhancements and fixes:
- The GEM backend has been rebuilt, possibly bringing performance
improvements.
4 Overview of Changes Made in Kednos PL/I Version 4.4C and Kednos Runtime Library Version 4.4B
Kednos PL/I Version 4.4B and Kednos Runtime Library Version 4.4B
contain the following enhancements and fixes:
- A defect has been corrected whereby the compilation statistics for
very short programs on very fast processors encountere a divide by zero
error.
5 Overview of Changes Made in Kednos PL/I Version 4.4B and Kednos Runtime Library Version 4.4B
Kednos PL/I Version 4.4B and Kednos Runtime Library Version 4.4B
contain the following enhancements and fixes:
- A defect has been corrected whereby the signal SS$_IMGDMP was being
intercepted and displayed (chained with PLI$_ERROR) rather than passed
to VMS for processing.
- A defect has been corrected whereby signals displayed chained with
PLI$_ERROR contained extraneous error messages chained onto the end.
- A separate Hobbyist license from Kednos is now required in addition
to the OpenVMS Hobbyist license from HP.
6 Overview of Changes Made in Runtime Library Version 4.4
Kednos Runtime Library Version 4.4 contain the following enhancements
and fixes:
- A defect has been corrected whereby a program which did output to a
disk file (including SYS$OUTPUT in batch) might omit the last line of
output.
7 Overview of Changes Made in Version 4.4 and Runtime Library Version 4.3
Kednos PL/I Version 4.4 and Runtime Library Version 4.3 contain the
following enhancements and fixes:
- The product name has been changed to Kednos PL/I for OpenVMS Alpha.
- A defect has been corrected whereby compilation of a program with a
large amount of static data would fail with the error:
%PLIG-F-ASSERTION, Handler context data is allocated at a negative
offset
- A defect has been corrected whereby text output of G-floating and
T-floating data was restricted to the range of D-floating variables.
- A defect has been corrected whereby compiling the SCREEN.PLI module
from the PHONE sample application would fail with the error:
%PLIG-F-ASSERTION, GEM_GX_ENUMERATE - initial set empty for
- A defect has been corrected whereby certain programs from the IVP
which happened to not have condition handlers at the outermost routine
would hang when any condition was signalled.
- A defect has been corrected whereby compiling certain modules
/DEBUG would fail with the error:
%PLIG-F-BUGCHECK, Compiler bug check during translation.
- After June 2004, a separate Hobbyist license from Kednos will be
required, beyond simply having the OpenVMS-Hobbyist license from HP.
8 Overview of Changes Made in Version 4.3 and Runtime Library Version 4.2
DEC PL/I Version 4.3 and Runtime Library Version 4.2 contain the
following enhancements and fixes:
- The VMS Hobbyist license is now supported.
- Storage allocations of PICTURE types is corrected.
- Comma delimited fields in GET STRING have been fixed.
- Nested %INCLUDE statements are now correctly supported.
- To move a DEC PL/I program to another system where PL/I is not
installed, you will need to install a separate DPLI$RTLSHR kit, which
is not delivered as part of OpenVMS.
9 Overview of Changes Made in Version 4.2
DEC PL/I Version 4.2 contains the following enhancements and fixes:
- Performance of operations on BIT(1) data has been enhanced to use
in-line operations instead of making (more expensive) calls to OTS
routines.
- The PL/I compiler and the PL/I System Interface Library,
PLI$STARLET.TLB, have been modified to support use of the /ALIGNED
command-line qualifier with this library. Since this corrents a
structure layout problem, if you use the /ALIGNED command-line
qualifier, you should recompile all sources with the PL/I 4.2 compiler.
10 Overview of Changes Made in Version 4.1
DEC PL/I Version 4.1 contains the following enhancements and fixes:
- VMS Version 7.0 Support
DEC PL/I Version 4.1 contains a new
runtime that runs on VMS Version 6.2 or higher, including VMS Version
7.0. PL/I code compiled on prior versions of the product will run on
this version. However, PL/I code must be compiled using DEC PL/I
Version 4.1 to run on VMS Version 7.0 or higher.
The PL/I System
Interface Library, PLI$STARLET.TLB, has been rebuilt to run on VMS
Version 6.2 or higher, including VMS Version 7.0
- Condition Handler Improvements
Performance of condition
handlers has been enhanced. See the Details of Changes Made in Version
4.1 section for details.
- Miscellaneous Fixes
See the Details of Changes Made in Version
4.1 section for details.
11 Installation Information
This section describes changes to the installation procedure. Please
read this section carefully prior to installing DEC PL/I.
11.1 Kit Information
The DPLI041 kit supplies the DEC PL/I Run-Time Library (RTL) to allow
correct linking of programs compiled with DEC PL/I. The RTL will be
installed if you do not have one or if the copy on your system is older
than the copy on this kit.
11.2 Compression of the PL/I System Interface Library, PLI$STARLET.TLB
Beginning with VAX PL/I Version 2.3 for OpenVMS VAX, the system
interface library, PLI$STARLET.TLB, has been shipped in compressed
library format, which reduces the amount of space required to store the
library but increases the amount of time required to access and
retrieve a component of the library, such as a system-service
declaration. If you use PLI$STARLET.TLB frequently and you have disk
space available, you may want to decompress the library during the
installation, when you have the opportunity to do so. If you choose to
install the compressed version during installation, you can decompress
it later, using the following command:
$ LIBRARY/DATA=EXPAND/OUTPUT=SYS$COMMON:[SYSLIB] -
$_ SYS$COMMON:[SYSLIB]PLI$STARLET.TLB
|
The decompressed form of the library is slightly over twice the size of
the compressed version.
12 Details of Changes Made in Version 4.1
DEC PL/I Version 4.1 contains fixes to problems reported in DEC PL/I
Version 4.0A.
- (DECPLI40A-69)
Performance of ON-conditions was slower on AXP
than on VMS.
Condition handling support has been redesigned to make
better use of Alpha architectural features. This results in improved
runtime performance.
This problem has been corrected in the DEC
PL/I Compiler.
- (DECPLI40A-72)
The DEC PL/I compiler was failing to properly
parse a GET LIST statement when the target variable contained multiple
commas, for example:
stringvalue = 'XXX,,,,,,,,,';
GET STRING(stringvalue) LIST(cv1,cv2,cv3,cv4,cv5,cv6,cv7);
|
where cv1...cv7 are CHARACTER(n) VARYING.
stringvalue =
'XXX,,,,,,,,,'; GET STRING(stringvalue)
LIST(cv1,cv2,cv3,cv4,cv5,cv6,cv7); where cv1...cv7 are CHARACTER(n)
VARYING.
This problem has been corrected in the DEC PL/I Compiler.
- (DECPLI40A-77) (DECPLI40A-336)
Previously, the following
symbols of the $NSADEF module were not available in the
SYS$LIBRARY:PLI$STARLET.TLB:
NSA$_EVENT_TYPE
NSA$_EVENT_SUBTYPE
PLI$STARLET.TLB was also missing the definitions for the following
new OpenVMS V6.2 routines.
SYS$PERSONA_ASSUME
SYS$PERSONA_CREATE
SYS$PERSONA_DELETE
These problems were
fixed by the updates to make PLI$STARLET.TLB compatible with VMS V7.0.
- (DECPLI40A-548)
With a particular combination of area size and
allocation sizes, it was possible for a second ALLOCATE in an area to
corrupt the contents of the memory obtained by the first ALLOCATE in
that area.
This problem has been corrected in the DEC PL/I Compiler.
- (DECPLI40A-548) Nonlocal GOTO statements did not unwind properly
when compiled with optimizations.
This problem has been corrected
in the DEC PL/I compiler.
- (DECPLI40A-837)
A conversion problem occurred in a GET EDIT
statement with the STRING option when zero was specified in the input
string as follows:
TEST: PROCEDURE OPTIONS(MAIN);
DCL FixedVar FIXED;
GET STRING(' 00') EDIT(FixedVar) (P'-------V99');
END TEST;
|
This problem has been corrected in the DEC PL/I Compiler.
- (DECPLI40A-981)
Repeatedly opening and closing an indexed file
declared as KEYED and opened for INPUT resulted in a memory leak.
This problem has been corrected in the DEC PL/I Runtime.
12.1 Corrected Documentation Errors
The errors in this section have been corrected in the current version
of the documentation (DEC PL/I Version 4.1).
- (DECPLI40A-847)
The reference manual did not mention the
alternative of natural alignment when discussing storage allocation.
This is corrected in chapter 3 of the reference manual. Section
3.4.3 contains the following statement:
PL/I allocates storage for
an aligned bit-string variable on a byte boundary and reserves an
integral number of bytes to contain the variable.
This is true for
the default packed alignment. The following has been added to the
documentation:
If natural alignment is in effect, PL/I allocates
storage for an aligned bit-string variable on a longword boundary and
reserves an integral number of longwords to contain the variable. See
the user manual for information on the /ALIGN and /DATA command line
qualifiers, which affect what type of alignment is in effect.
- The last paragraph of section 3.2.4 of the reference manual
contained values for T_floating data in the range 2.225073859D-380 to
1.797693135D308. The letter D in both of these numbers is invalid, and
should be E.
13 Overview of Changes Made in Version 4.0A
DEC PL/I Version 4.0A contains fixes to problems reported in DEC PL/I
Version 4.0.
- (3-CFS.19308)
A run-time error is signaled when SKIP(0) is
used as an output control format item in a PUT EDIT statement.
This
problem has been corrected in the DEC PL/I Run Time Library.
- (5-CFS.19740)
A PUT SKIP before a line written to a PL/I PRINT
file is ignored when that line is followed by a PUT PAGE.
This
problem has been corrected in the DEC PL/I Run Time Library.
- (11-CFS.11603)
A PLI update or install will fail if there is a
customer command, LIB included in the DCLTABLES.
This problem has
been corrected the DEC PL/I installation procedure.
- (12-CFS.16104)
Temporary stack space created for built in
functions POSINT and INT are not cleaned up properly, possibly leading
to ACCVIO or VASFULL.
This problem has been corrected in the DEC
PL/I compiler.
- (13-CFS.19495)
The PL/I COLUMN(n) output control format item
was not correctly positioning the columns relative to the current
position.
This problem has been corrected in the DEC PL/I Run Time
Library.
- (16-CFS.19311)
The DEC PL/I compiler was stopping with a
%PLIG-F-BUGCHECK fatal error when the right hand side string in a
preprocessor statement equals the string in a PICTURE declaration, and
the /DEBUG compile command qualifier was used.
This problem has
been corrected in the DEC PL/I compiler.
- (17-CFS.20493)
(34-CFS.11727)
Definition of logical name SYSPRINT ignored by PL/1.
This problem has been corrected in the DEC PL/I Run Time Library.
- (19-CFS.19310)
The DEC PL/I compiler was stopping with a
%PLIG-F-BUGCHECK fatal error instead of reporting a user error when a
TYPE clause in a declaration incorrectly refers to an unknown variable.
This problem has been corrected in the DEC PL/I compiler.
- (20-CFS.19309)
Fixed length record format sequential files
could not be opened for keyed input using integer keys.
This
problem has been corrected in the DEC PL/I Run Time Library.
- (21-CFS.19301)
Linking a DEC PL/I program resulted in a series
of %LINK-W-MULDEF warnings, one for each of the following symbols
DPLI$MTH_EXT_MOD_DEC4
DPLI$MTH_EXT_ADD_DEC4
DPLI$MTH_EXT_SUB_DEC4
DPLI$MTH_EXT_MUL_DEC4
DPLI$MTH_EXT_DIV_DEC4
DPLI$HND_RAISE_CONDITION
DPLI$MEM_ASSIGN_VSTR
This problem has been corrected in the DEC
PL/I Run Time Library.
- (22-CFS.19143)
Declarations for the new SYS$GET_SECURITY
system service were missing in the PLI$STARLET.TLB text library.
This problem has been corrected in the PLI$STARLET.TLB text library
- (25-CFS.20969)
(CFS.20969)
SIGN builtin function returned incorrect results.
This problem has been corrected in the DEC PL/I Run Time Library.
- (27-CFS.21334)
DEC PL/I was not properly handling the ENDPAGE
condition for file variables in certain cases.
The compiler
allocates a condition handler control block, which is then managed by
the PL/I RTL. The compiler was allocating a fixed stack temp for this
variable. If an ON statement contains conditions which are not constant
(such as ENDPAGE with a file variable), and if the ON statement is
inside a loop context, during the second iteration of the loop the
information for the first execution of the ON statement was
overwritten. This caused the established condition to be "forgotten" by
the RTL.
This problem has been corrected in the DEC PL/I compiler.
- (28-CFS.21453)
Declarations for new symbols in $CLIDEF were
missing in the PLI$STARLET.TLB text library.
This problem has been
corrected in the PLI$STARLET.TLB text library
- (35-CFS.11730,UVO101501)
A PL/1 Runtime error caused a program
abort. Get file list caused a program to crash with an I/O Error.
This problem has been corrected in the DEC PL/I Run Time Library.
- (36-CFS.16774,MGO100757)
The FREE statement freed neither the
most recent nor any generation of a controlled variable, eventually
exhausting memory.
This problem has been corrected in the DEC PL/I
Run Time Library.
- (38-CFS.9384,VNO100006)
Deleting a nonexistent keyed record
caused program to abort with a PL/I internal RAB condition.
This
problem has been corrected in the DEC PL/I Run Time Library.
- (39-CFS.22126)
When specified in the declaration statement for
a file, the MAXIMUM_RECORD_SIZE ENVIRONMENT option was ignored and DEC
PL/I opened the file with incorrect attributes.
This problem has
been corrected in the DEC PL/I Run Time Library.
- (44-CFS.23922)
The built in function INDEX returned incorrect
results when used on a string with with null characters, such as
BYTE(0).
This problem has been corrected in the DEC PL/I Run Time
Library.
- (46-CFS.23591)
The FLOOR built in function performed poorly
for fixed binary numbers.
The function has been improved to provide
better performance in the DEC PL/I Run Time Library.
- (47-CFS.23589)
The DEC PL/I RTL did not expect to encounter a
PLI$_ENDPAGE condition which did not have an associated FCB argument
(generated using VAXCONDITION(PLI$_ENDPAGE)). This resulted in an
access violation in the RTL.
This problem has been corrected in the
DEC PL/I Run Time Library.
- (49-QAR.01808)
The DEC PL/I PLI$STARTLET.TLB did not define
$TPUDEF and $NSADEF include modules correctly.
This problem has
been corrected in the DEC PL/I PLI$STARTLET.TLB text library.
- (51-QAR.1809)
The BIT() builtin produced unexpected result
when the argument was neither a string expression nor an arithmetic
expression in nonliteral form.
This problem has been corrected in
the DEC PL/I compiler.
- (54-QAR2602)
The DEC PL/I program using an indexed READ would
fail with a "record not found" error.
This problem has been
corrected in the DEC PL/I Run Time Library.
- (71)
Null bytes throwing off string results in DEC PL/I.
This problem has been corrected in the DEC PL/I Run Time Library.
- (74-CFS.25858)
Picture variables could not be output using the
F(w) PUT EDIT format item.
This problem has been corrected in the
DEC PL/I Run Time Library.
- (76-CFS.26116)
The DEC PL/I RTL routine, which is called to
establish a condition handler when an ON statement is executed, was not
properly handling its data to allow for AST reentrancy. If an ON
statement was interrupted and another ON statement was then executed at
AST level, an access violation might result.
This problem has been
corrected in the DEC PL/I Run Time Library.
- (78-CFS.25914)
AREA condition not being signaled properly when
area was fragmented.
This problem has been corrected in the DEC
PL/I Run Time Library.
- (82-CFS.26326)
DELETE FILE statement, which is made towards a
non-existent record, was causing two signals to be raised.
This
problem has been corrected in the DEC PL/I Run Time Library.
- (84-CFS.26323)
In a READ FILE statement, the KEY is was not
being correctly handled if it was PICTURE data type, causing the READ
to fail.
This problem has been corrected in the DEC PL/I Run Time
Library.
- (92-CFS.26832)
The DEC PL/I compiler was generating incorrect
code for select expressions using fixed bin (7) variables when an
overflow took place.
This problem has been corrected in the DEC
PL/I compiler.
- (93-CFS.26965)
A REWRITE FILE statement failed if it was the
last record of a sequential file.
This problem has been corrected
in the DEC PL/I Run Time Library.
- (99-CFS.23922)
The index() builtin was returning wrong results
when byte(0) occurred in the string.
This problem has been
corrected in the DEC PL/I Run Time Library.
- (134-CFS.28745)
DEC PL/I SYSPRINT was ignoring the PAGESIZE(n)
option of the OPEN statement.
This problem has been corrected in
the DEC PL/I Run Time Library.
- (225-CFS.30137)
The DEC PL/I compiler was failing to properly
record the original picture string and causing a compiler abort when
/debug was used.
This problem has been corrected in the DEC PL/I
compiler.
- (243-CFS.30808)
The DEC PL/I pre-processor was limited to 253
characters string variables
This problem has been corrected in the
DEC PL/I compiler.