CL Enhancements
Presented by Guy Vig, IBM
Meeting was held on April 21, 2004.
As promised at the meeting, information about PTFs
needed for using the new features on V5R2 and compiling "backlevel" on
V5R3 are here:
Most of the V5R3 enhancements can be brought back to V5R2 platforms for
execution although you must compile on V5R3 with TGTRLS(V5R2M0) or *PRV.
Also, the multiple file support cannot be used at V5R2. Here are the
details:
V5R3 PTFs SI13505, SI13508, and SI13509 along with V5R2 PTFs SI13416 and
SI13417 provide TGTRLS(*PRV) support for a number of new CL compiler commands
and functions. Running a program on V5R2 without the PTFs SI13416 and
SI13417 applied will produce unpredictable results depending on the
new functions used.
The V5R3 PTFs provide support for various parts of the new V5R3 base
enhancements to the CL compiler. There are some limitations and
differences to be aware of when compiling CL programs using these PTFs
for running on V5R2.
- Up to 255 parameters on the CALL command is supported for compiled CALL commands
only. CALL commands with more than 99 parameters that are run
via compiled calls to APIs QCMDEXC, QCMDCHK, and QCAPCMD, or command
parameters like the CMD parameter of the SBMJOB command, will fail when
run on V5R2. Prompting a compiled CALL that has more than 99
parameters will also fail.
- DMPCLPGM works with 32767 character variables and the new *INT and *UINT
type variables. However, the offsets shown for character variables
greater than 9999 characters wrap at 10000 and each multiple of 10000
thereafter. Signed and unsigned integer variables will appear as
type *CHAR, but with the correct length (2 or 4 bytes) and formatted
according to their declared type.
- On V5R3, CPD0785 is issued when the command analyzer detects a difference
between a command with RTNVAL(*YES) integers that the CL program was
compiled with and the command the program is run with. When the
command analyzer detects this difference running on V5R2, message CPD0006
is used. Reference section "Effect of Changing the Command
Definition of a Command in a Procedure or Program" in chapter 9 of
the CL Programmer's Guide for general information.