IBM Support

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

Product lifecycle


This release provides the following functional enhancements.


The compiler utilizes the z196 high-word facility.

  • The compiler utilizes the z196 floating-point extension facility.
  • The compiler utilizes the z196 population-count facility.
  • The new UNROLL compiler option gives the user control of loop unrolling.
  • The compiler generates inline code to resolve the ULENGTH and USUBSTR built-in functions for UTF-8 strings.
  • The compiler generates inline code for MEMINDEX (p, n, x) where x is WCHAR(1) just as it previously did if x was CHAR(1).
  • The compiler generates inline code for STG (x) where x is a BASED variable using REFER when all NONVARYING BIT in x are ALIGNED and all other elements in x are UNALIGNED.


The compiler supports typed structures in Debug Tool.


XML generation, via the XMLCHAR built-in function, supports XML attributes and the omission of null values.

  • The SQL preprocessor includes the following improvements:
    • Block scoping is supported.
    • The SQL preprocessor load module is smaller than the earlier module.
    • The SQL preprocessor runs faster.
    • The SQL TYPE attribute can be used in a declare wherever any other PL/I data attribute is used.
    • The SQL preprocessor handles PACKAGEs.
    • In processing declares of host variables, the SQL preprocessor honors the following compiler options so that defaults are appropriately applied and unsuitable host variables are rejected as appropriate:
    • Processing of the PRECISION attribute by the SQL preprocessor has been improved.
    • The SQL preprocessor recognizes the UNSIGNED and COMPLEX attributes - and rejects their use in any host variable.
    • The SQL preprocessor is implemented so that DSNHMLTR is declared in the outermost procedure containing code that needs it.
    • The SQL preprocessor no longer puts an unprintable character in the source when emitting code to set the SQLAVDAID.
    • The SQL preprocessor allows indicator arrays to have any lower bound.
    • The SQL parameter list structure emitted by the preprocessor has fewer unions, fewer init clauses, and no additional declares based on elements of the structure.
    • The new BY DIMACROSS form of assignments makes it easier to write code to handle the results of SQL multi-row fetch.
    • The compiler and the preprocessors (rather than just the SQL preprocessor when parsing EXEC SQL code) now all support < >, as a not-equals symbol.
    • The new INDICATORS built-in function makes it easy to declare an array to be used as a SQL indicator variable with a structure.

  • A new compiler option conditionally erases the listing generated from a preprocessor phase unless the phase produced some messages.
  • The compiler will apply the NONASSIGNABLE attribute to any parameter declared with the INONLY attribute, and there the compiler will flag any assignment to a parameter declared as INONLY.
  • The compiler supports a new STRICT/LOOSE suboption to RULES(NOLAXENTRY) so that under the LOOSE suboption OPTIONS(ASM) routines are not flagged when they do not specify a parameter list.
  • Also, under RULES(NOLAXENTRY), the compiler will not flag names starting with DSN, and under RULES(NOUNREF), the compiler will not flag names starting with DSN or SQL.
  • Under the new NOSELFASSIGN suboption of the RULES compiler option, the compiler flags assignments of variables to themselves.
  • Under the new NOLAXRETURN suboption of the RULES compiler option, the compiler generates code to raise an ERROR when a RETURN with an expression is executed from a procedure coded without RETURN or vice versa.
  • The compiler issues an improved message when a comma is missing in a structure declare.
  • The compiler issues new and improved messages when source contains invalid shift-in and shift-out bytes.
  • The compiler explicitly supports some use of adjustable BASED with-out REFER.
  • The compiler supports comparisons of POINTER to '' and ''b.
  • The compiler has raised the maximum number of distinct include files allowed in a single compilation from 2047 to 4095.

Document information

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

Software version: 4.2

Operating system(s): z/OS

Reference #: 1514720

Modified date: 26 September 2011

Translate this page: