Ed J wrote
<snip>
Always code PLISTVER=MAX on the list form but (based on recent
experience) *never* code it on the execute form of a macro unless you
want to risk things not working as expected on back-level systems.
</snip>

I'd make it "almost always".

The case that comes up occasionally, and is a reason that the default is not 
PLISTVER=MAX, is when someone has embedded the list form in a structure (not at 
the end) so that if the size changed, fields beyond this structure would have 
changed offsets and if you didn't recompile everything appropriate things would 
break. That potential incompatibility drives the default. And, yes, the default 
has the downside that if your list form "gets it wrong", things don't work.
Compatibility wins in this case.

The documentation for PLISTVER (at least within the macro itself) includes:

If your program can
tolerate this, IBM recommends that you always specify MAX
when creating the list form parameter list as that will
ensure that the list form parameter list is always long
enough to hold whatever parameters might be specified on
the execute form.

The part to be careful about is "If your program can tolerate this". Maybe you 
have embedded within a structure; maybe your program has a highly limited 
amount of dynamic storage available. Those could be cases where you cannot 
"tolerate this".

Peter Relson
z/OS Core Technology Design


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to