IBM Support

What's new for Enterprise PL/I for z/OS, V4.3

Product lifecycle


This release provides the following functional enhancements.


Improved performance

Enterprise PL/I for z/OS, V4.3 delivers the following features to improve performance:

  • The new ARCH(10) compiler option produces code that utilizes instructions that are available on the IBM zEnterprise EC12 models.
    • Specifically, these ARCH(10) machines add new instructions supported by the execution-hint, load-and-trap, and miscellaneous-instructions-extensions facilities, which can be exploited by the compiler.
    • The compiler uses some of these new instructions to improve the performance of some data type conversions from PICTURE to FIXED BIN and from PICTURE to FLOAT.
  • Inlined code (rather than calls to library routines) is used for:
    • VERIFY and SEARCH when there are three arguments and the second is a single character
    • Additional conversions from PICTURE to DFP
    • Additional conversions of BIT to CHAR
    • Additional conversions of BIT to WIDECHAR
  • The code generated for TRIM of FIXED DEC is improved.
  • The code generated to get and set nonnative string lengths can execute faster.

Enhanced middleware support
  • The SQL preprocessor includes the following improvements:
    • The ONEPASS SQL option is supported.
    • Host variable declarations can use some restricted expressions.
    • The display in the listing of the EXEC SQL statement is changed to be readable and similar to the original source.
    • Declares using LIKE are supported.
    • Missing and extraneous END statements are flagged to make it easier to track syntax errors that cause problems in resolving host variable references.
    • A new DEPRECATE preprocessor option allows the user to deprecate the use of the EXPLAIN, GRANT, REVOKE, and SET CURRENT SQLID EXEC SQL statements.
    • EXEC SQL DECLARE statements are allowed at the PACKAGE level of a program.

Productivity enhancements requested by compiler users
  • The new built-in functions UTF8, UTF8TOCHAR, and UTF8TOWCHAR
    • Provide the ability to convert between CHAR and UTF-8 with sensitivity to the CODEPAGE option.
    • Simplify conversions between UTF-8 and UTF-16.
    • Allow the user to create UTF-8 literals and to initialize static variables with UTF-8 data.
  • The new MSGSUMMARY compiler option lets the user request that the listing include a brief summary of what messages were produced in a compilation and, optionally, where those messages appeared.
  • The new CASERULES compiler option allows the user to specify casing rules for PL/I keywords (for example, that all keywords must be in uppercase).
  • The DEPRECATE compiler option has a new STMT suboption that allows a wide range of statements to be deprecated.
  • The new DEPRECATENEXT compiler option allows for staged deprecation of any items in the DEPRECATE option.
  • The new ALLCOMPARE built-in function supports comparing structures.
  • The new ASSERT statement helps make it easier to verify the correctness of a program.
  • The RTCHECK compiler option is expanded to allow checking for dereferencing of pointers equal to the old NULL() value (namely, pointers with the hexadecimal value of 'FF000000').
  • The maximum length of WIDECHAR strings is increased to 32767 so that it matches the limit for CHAR and BIT.
  • The RULES compiler option is enhanced so that you can optionally flag the use of:
    • CONTROLLED variables by using its NOCONTROLLED suboption
    • RECURSIVE procedures by using its NORECURSIVE suboption
    • Nested procedures occurring in between executable code by using its NOLAXNESTED suboption
    • Assignments of the form x = y = z as part of its NOLAXIF suboption
  • RULES(NOLAXSCALE) issues a separate message for ROUND(x,p) when p is negative. This allows you to use the EXIT option to suppress this message while keeping the other messages issued under RULES(LAXSCALE).
  • The SUPPRESS attribute is now permitted on PROCEDURE statements so you can direct the compiler not to flag selected procedures as unreferenced or in violation of RULES(NOLAXNESTED).
  • The support for handles now allows:
    • Comparing handles with the same associated type
    • Adding to and subtracting from handles but with sensitivity to the associated structure type
    • Computing the difference of two handles but with sensitivity to the associated structure type

Document information

More support for: Enterprise PL/I for z/OS

Software version: 4.3

Operating system(s): z/OS

Reference #: 1607838

Modified date: 28 August 2012

Translate this page: