Enhancements in this release

This release provides the following functional enhancements that are described in this and the other IBM PL/I books.

Start of change

Changes in GC27-8930-00, August 2017

The compiler now supports five time-only patterns: HHMISS, HH:MI:SS, HHMI, HH:MI, HH. See Date/time built-in functions.

End of change
Start of change

Changes in GC27-8930-00, April 2017

Enhancements in usability:
  • Start of changeThe compiler now flags unreachable ASSERT UNREACHABLE statements with a different message than it flags other unreachable statements.End of change
  • Start of changeThe compiler now expands in the AGGREGATE listing typed structures that are member of other structures.End of change
  • Start of changeThe attributes listing now shows the contents of the VALUE attribute for CHARACTER and BIT constants of length 256 or less and also for numeric PICTURE constantsEnd of change
New or changed statements and conditions:
  • The ASSERT statement now supports a new ASSERT COMPARE statement that provides a more information-rich way to test an assertion that the actual value of an expression compares correctly with an expected value.
  • The new ASSERTION condition will be raised when an ASSERT statement fails and the ASSERT(CONDITION) compiler option is in effect.
  • The PROCEDURE statement and ENTRY statement now support the EXTERNAL attribute as an optional argument.
New or changed built-in functions, pseudovariables, and subroutines:
  • Start of changeThe new BASE64ENCODE built-in function encodes a source buffer into a buffer holding its base 64 value in the character set specified by the ASCII/EBCDIC suboption of the DEFAULT compiler option, and the new BASE64DECODE built-in function decodes a source buffer from base 64 that is encoded in the character set specified by the ASCII/EBCDIC suboption of the DEFAULT compiler option.End of change
  • Start of changeThe new BINSEARCH and BINSEARCHX built-in functions generate code to perform binary searches for a specified value within an array either by doing a simple comparison or by invoking a user-specified function to perform the desired comparison.End of change
  • Start of changeThe new CODEPAGE built-in function helps you write code conditional on the value of the compiler’s CODEPAGE option and to query the value of that compiler option.End of change
  • The new COLLAPSE and SQUEEZE built-in functions return a string that reduces all multiple occurrences of a character to one, starting from an optional specified position or with an optionally specified starting position.
  • Start of changeThe new DAYSTOMICROSECS built-in function returns a number of microseconds that corresponds to a number of days.End of change
  • Start of changeThe new FILENEW built-in function returns a FILE variable that points to a new file constant in automatic storage.End of change
  • Start of changeThe new GETJCLSYMBOL and GETSYSWORD built-in functions return a CHARACTER string value that represents the requested exported JCL symbol or the value of the requested system information.End of change
  • Start of changeThe new HEX8 and HEXIMAGE8 built-in functions return the hex value of an expression as a UTF-8 string.End of change
  • Start of changeThe LOWERCASE and UPPERCASE built-in functions now accept an second optional argument, so that you can specify a code page that all characters will be converted to their lowercase equivalent or uppercase equivalent. All A-Z/a-z values and Ä-unlaut/ä-umlaunt values will be converted to it's equivalent. End of change
  • The new MEMCOLLAPSE built-in function fills a target buffer with the contents of a source buffer with all multiple occurrences of a specified character replaced by one, while the leading and trailing instances of that character are also trimmed. It returns a size_t value that indicates the number of bytes written to the target buffer.
  • The new MEMSQUEEZE built-in function fills a target buffer with the contents of a source buffer with all multiple occurrences of a specified character replaced by one. It returns a size_t value that indicates the number of bytes written to the target buffer.
  • Start of changeThe new built-in functions MICROSECS, MICROSECSTODATE, MICROSECSTODAYS and UTCMICROSECS provide the ability to use an 8-byte integer microseconds value to hold a time value and to convert between it and a date/time string without the rounding problem inherent in the floating-point seconds value.End of change
  • The new MINVAL and MAXVAL built-in functions return the minimum value or the maximum value that its numeric operand could assume.
  • The new ONACTUAL and ONEXPECTED built-in functions return a character string that is the value of the “actual” expression or "expected' expression in an ASSERT COMPARE statement when the ASSERTION condition is raised.
  • The new ONTEXT built-in function returns a character string that is the value of the TEXT string in an ASSERT statement when the ASSERTION condition is raised.
  • The new ONPACKAGE built-in function returns a character string that is the name of the PACKAGE when the ASSERTION condition is raised.
  • Start of changeThe new ONPROCEDURE built-in function returns the name of a procedure in which a condition is raised. ONPROCEDURE and ONPROC now are supported as the preferred name of the ONLOC built-in function.End of change
  • Start of changeThe REPATTERN and TIMESTAMP built-in functions now can be used to obtain the current date and time in the z system format of Start of changeYYYY-MM-DD HH:MI:SS.999999End of change. End of change
  • Start of changeThe ROUNDDEC built-in function has been renamed as ROUNDAWAYFROMZERO.End of change
  • The new ROUNDTOEVEN built-in function returns the value of x rounded at a digit specified by n following the rounding rule of round half to even.
CICS enhancements:
  • The CICS preprocessor output now includes a listing of all the CICS options in effect when the preprocessor run.
End of change

Enhancements in usability

New or changed built-in functions, pseudovariables, and subroutines

Performance improvements

SQL enhancements