PL/I Runtime Environments

There are currently two supported PL/I run-time environments: These environments use different modules at run-time. Assembler code that makes use of undocumented interfaces which works in the "old PL/I" environment may not function as expected in the "new PL/I" environment. The "new PL/I" run-time environment is a complete rewrite and there appear to be some associated growing pains.

At time of writing, I/O performance for "new PL/I" is noticeably more expensive in terms of CPU time for some types of dataset.

The "new PL/I" run-time preserves the attributes of an existing dataset over those specified in the program. In the case of a dataset opened for output, this can result in a change of behaviour from the "old PL/I" environment. Conflicting attributes will be detected when records are written to the output dataset, not at open time.

Some jobs encountered an SEC6 abend in the "new PL/I" environment instead of an S322 for CPU time exceeded even when these jobs did not use Unix System Services services. APAR PQ84350 appears to solve this problem. Other side effects are possible.

Amode 24 Considerations

PL/I routines that must execute in Amode 24 with "new PL/I" must be Support for AMODE 24 applications is only available via APAR PQ62003 from level 2 support.

Environment Initialization

The presence of module CEESG010 indicates that the old PL/I run-time environment is required. If the main routine is recompiled with "new PL/I", then you need to make sure that CEESG010 is included at link-edit time if routines compiled with "old PL/I" will be CALLed or FETCHed. The corresponding module for "new PL/I" is CEESG011.

Regional(1) Support

The maximum size of a REGIONAL(1) dataset has been decreased to 2G bytes. You need to specify the RECCOUNT parameter via the TITLE statement on OPEN or environment variable in Unix System Services if you wish to create more than 50 blocks.

For issues related to the compiler itself, see Visual Age & Enterprise PL/I.
Big Iron