The CMPAT option specifies whether object compatibility with OS PL/I Version 1, OS PL/I Version 2, PL/I for MVS™ & VM, or Enterprise PL/I for z/OS® is to be maintained for programs sharing strings, AREAs, arrays, or structures.
.-V2-. >>-CMPAT--(--+-LE-+--)----------------------------------------->< +-V1-+ '-V3-'
ABBREVIATIONS: CMP
All the modules in an application must be compiled with the same CMPAT option.
Mixing old and new code still has some restrictions. For information about these restrictions, see the Enterprise PL/I for z/OS Compiler and Run-Time Migration Guide.
The DFT(DESCLIST) option conflicts with the CMPAT(V*) options. If it is specified with any CMPAT(V*) option, a message will be issued and the DFT(DESCLOCATOR) option will be assumed.
Under CMPAT(V3), arrays can be declared with any value that an 8-byte integer can assume. However, unless the LP(64) option is used, the total size of an array currently still has the same limit as an array declared under CMPAT(V2).
Under CMPAT(V3), the following built-in functions will always return a FIXED BIN(63) result:
Because these functions will return 8-byte integer values, under CMPAT(V3), the second option in the FIXEDBIN suboption of the LIMITS option must be 63.
However, even under CMPAT(V3), statement and format label constants must be specified using 4-byte integers.