On Tue, 3 Nov 2009 00:39:03 -0600, Chris Craddock wrote:
>
>The PARM interface is older than dirt and even though we can all agree with
>hindsight that it was a momentously stupid design, it is nevertheless a
>formal, documented interface and literally thousands of badly written
>programs work correctly ONLY because the initiator is never going to give
>them a parameter string of more that 100 characters. That's the one and only
>interface contract. The assertion that you can find programs that behave
>well when called directly with longer parameter strings is also true, but
>completely uninteresting.
>
>Changing the behavior of PARM is fraught with incompatibilities. So much so
>that wiser heads elected not to pull the trigger on it. There are lots of
>ways of enabling (much longer) parameter strings but they all necessarily
>involve defining some brand new and non- overlapping interface
>definition. New programs written to the putative new parameter interface
>spec will work correctly and completely oblivious of the old spec. And since
>the existing PARM interface will remain unchanged, all old programs will
>continue work as they do now, completely oblivious of any new interface.
>
>THAT my friends is compatibility. Not elegant, not pretty, but guaranteed
>compatible. Now can we all just get over this nonsense?
>
The Assembler CALL interface (likewise older than dirt) plus Rexx ATTCHMVS
and many other language calling interfaces (mostly newer than dirt) have
long supported parameters longer than 100.  Are you suggesting that these
facilities are fraught with incompatibilites?  Perhaps so risky that
the facilities should be curtailed?  The existence of these other
interfaces, at least to AC=0 programs, makes the JCL PARM limit a
barrier that surrounds and protects little.  If the JCL PARM limit were
relaxed, all old programs would continue to work exactly as they do now,
when passed the PARMs they are now being passed, completely oblivious
of any new capability.

BTW, I wonder, which is older, Assembler CALL or JCL PARM?  Historians
might answer.  If Assembler is older, JCL is the interloper with a
novel restriction.

And I have seen no horror stories of programs being called outside JCL
with oversize PARMs (although this musing might evince some).  I suspect
that when it happens, the programmer merely shrugs, "Oops.  I won't
do that any more."

As an experiment, I called ASMA90 with a PARM length of 32767.  Worked
fine, however pointless.  With a PARM length of 32768, SOC4.  But that
behavior does not mandate a proscription of the facility (Rexx ATTCHPGM)
that I used to call ASMA90 that way, nor any blot on compatibility.
It's just a "Don't do that!", even as if the JCL PARM limit were relaxed
to allow me to EXEC PGM=ASMA90,PARMX=<some 32768 characters> and cause
it to ABEND, it would not be an incompatibility, just a behavior for the
programmer to avoid.  not be an incompatibility,

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to