The following enhancements and changes have been added:
-
WorkFrame has been significantly changed (in large part so that it
can work with FFS).
-
The debugger has also been significantly changed (for starters, it is called
idebug, not pdebug) and will now work under Windows 2000.
-
The Programing Guide, Language Reference Manual and Messages and Codes Book
have all been updated with all the changes made up to and including this fixpak.
-
Initial support for UTF-16 Unicode is now provided via the new WIDECHAR attribute.
There is currently no support yet for
-
The source listings produced by the macro facility and the compiler
are now demarcated by a line saying "MACRO source" and "Compiler source"
respectively. The list of macro facility messages is also preceded
by a line saying "MACRO messages" (a line saying "Compiler messages"
was already produced before the list of compiler messages.)
-
If an input file has type crlf, then the library will correctly
read its records if they are delimited by either crlf or lf.
-
On entry to FROMALIEN routines, the compiler will now save the floating-point
control word and then set it to the value needed by PL/I so that floating-point
conditions such as zerodivide and underflow can be correctly handled. On exit
from such a routine, the saved value will be restored.
This enables PL/I to work correctly when called from VisualBasic or COBOL.
-
Conversions from 4 byte (or smaller) REAL FIXED BIN with a zero scale
factor will now be done inline.
-
On 390, the DD option has one new suboption. This suboption
can be used to specify an alternate DD name for SYSLIB.
By default, the option is DD(SYSPRINT,SYSIN,SYSLIB,SYSPUNCH,SYSLIB)
-
On 390, more conversions are done inline:
- more fixed bin to character
- more picture to float
-
The FIXEDDEC(29) suboption of the LIMITS compiler option has been dropped.
- Support has been added for the following built-in functions:
- ACOSF
- ASINF
- ATANF
- CHARVAL
- COSF
- EXPF
- ISIGNED
- IUNSIGNED
- LOG10F
- LOGF
- ONWCHAR
- ONWSOURCE
- SINF
- TANF
- WCHAR
- WCHARVAL
- WHIGH
- WIDECHAR
- WLOW
- The preprocessor has been enhanced to include support for:
- Arrays in preprocessor procedures
- WHILE, UNTIL and LOOP keywords in %DO statements
- %ITERATE statement
- %LEAVE statement
- %REPLACE statement
- %SELECT statement
- Additional built-in functions:
- COLLATE
- COMMENT
- COMPILEDATE
- COMPILETIME
- COPY
- COUNTER
- DIMENSION
- HBOUND
- INDEX
- LBOUND
- LENGTH
- MACCOL
- MACLMAR
- MACRMAR
- MAX
- MIN
- PARMSET
- QUOTE
- REPEAT
- SUBSTR
- SYSPARM
- SYSTEM
- SYSVERSION
- TRANSLATE
- VERIFY
The following changes have been made to increase compatibility with the old host
compiler:
The following compiler/library problems have been fixed since the last fixpak:
-
The compiler would abend if a WRITE statement specified in its
FROM clause a BASED variable that ended with an AREA.
-
If a CONTROLLED array or structure was passed to an ENTRY that
declared its arguments but did not specify that they were CONTROLLED,
then the called routine could not ALLOCATE or FREE them. This is
now possible as long as the DFT(DESCLOCATOR) compiler option is used.
-
The COMPLEX attribute was not shown in the ATTRIBUTES listing
for COMPLEX PICTURE variables.
-
The compiler failed to accept recursively-defined DEFINE STRUCTUREs.
-
The compiler incorretcly handled assignments of the form "p = q + r"
where p, q, and r were all PIC'(n)9' with n > 8.
-
The macro facility generated incorrect code when a macro with keys
was invoked with one of keys having an argument list containing
consecutive commas.
-
The instruction scheduling optimization introduced by the last csd
has been turned off since it caused too many new problems.
-
Under RULES(LAXCTL) all constant extents in descriptor items having
the CONTROLLED attribute will be treated as asterisks.
-
Under DFT(NULL370), pointer to offset conversions were
handled incorrectly when the source was equal to null().
-
Incorrect code was generated for the UNSIGNED built-in
function when a precision of 32 was specified as its
second argument.