So it looks like IBM has addressed this issue with the new NUMCHECK(ZON(NOALPHNUM)) suboption. See PI98480: NEW FUNCTION: ADD TWO NEW SUBOPTIONS TO THE NUMCHECK SUBOPTION ZON - ZON(ALPHNUM) & ZON(NOALPHNUM) (https://www-01.ibm.com/support/docview.wss?uid=swg1PI98480).
Cool!
I hate to look a gift horse in the mouth, but is there a way to turn this option on, leaving the PAC and BIN options? The default sub-options if NUMCHECK is specified are NUMCHECK(ZON(ALPHNUM),PAC,BIN,MSG). But in order to specify the NOALPHNUM suboption I have to specify each individual sub-option, i.e.: NUMCHECK(ZON(NOALPHNUM),PAC,BIN,MSG).
One thing I think could make sense would be to have a special compile option BUILD with sub-options like RELEASE and DEBUG. This could allow specification of different "default" compile options, depending on which BUILD sub-option is chosen. For example, BUILD(RELEASE) might have:
NOSSRANGE
NONUMCHECK
NOINITCHECK
NOPARMCHECK
While BUILD(DEBUG) might have:
SSRANGE(ZLEN,ABD)
NUMCHECK(ZON(NOALPHNUM),PAC,BIN,MSG)
INITCHECK
PARMCHECK(MSG,100)
These are only examples. The options that correspond to the build type should be configurable by the customer.
What I imagine is to be able to specify the IGYCOPT macro twice (or thrice?) when building the IGYCDOPT compiler options module. For example:
COPY IGYCOPT
IGYCDOPT CSECT
IGYCDOPT AMODE ANY
IGYCDOPT RMODE ANY
IGYCOPT BUILD=DEFAULT, X
[...all default options...]
IGYCOPT BUILD=RELEASE, X
SSRANGE=NO, X
NUMCHECK=NO, X
INITCHECK=NO, X
PARMCHECK=NO
IGYCOPT BUILD=DEBUG, X
SSRANGE=(ZLEN,ABD), X
NUMCHECK=(ZON(NOALPHNUM),PAC,BIN,MSG), X
INITCHECK=YES, X
PARMCHECK=(MSG,100)
END IGYCDOPT
If the JCL or source does not specify a BUILD option then only the first set would be utilized. BUILD(RELEASE) would use both the first and second set, while BUILD(DEBUG) would use the first and third set.
If I open and RFE does this sound like something that might be a possibility?
fswarbrick