The CMPAT option specifies whether object compatibility with OS PL/I Version 1, OS PL/I Version 2, PL/I for MVS and VM, VisualAge PL/I for OS/390 or Enterprise PL/I for z/OS is to be maintained for programs sharing strings, AREAs, arrays and/or structures.
.-V2-. >>-CMPAT--(--+-LE-+--)----------------------------------------->< '-V1-'
DB2 stored procedures must not be compiled with CMPAT(LE).
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, and if it is specified with any of them, a message will be issued and the DFT(DESCLOCATOR) option assumed.
Under CMPAT(V3), arrays may be declared with any value that an 8-byte integer could assume. However, 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 be returning 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.