On Wed, 29 Jan 2014 08:09:14 -0500, Peter Relson wrote:
>
>The customer requirements are (for use in such places as commands, JCL,
>parmlib)
>- to be able to have longer symbol names than 8  characters;
>
Hmmm.  I was pleased to discover that while:

        3 //  SET  ABCDEFGH='Short'
        4 //STEP  EXEC  PGM=IEFBR14,PARM='&ABCDEFGH.IJKLMNOP'
          IEFC653I SUBSTITUTION JCL - PGM=IEFBR14,PARM='ShortIJKLMNOP'

The following results in no substitution:

        3 //  SET  ABCDEFGH='Short'
        4 //STEP  EXEC  PGM=IEFBR14,PARM='&ABCDEFGHI.JKLMNOP'

Apparently the designers had the foresight to require lexical
termination of symbol names, so permitting longer symbol
names now introduces no new incompatibility; symbol names
are not assumed to be terminated by character count.  Is this
true in contexts other than JCL?  (And is the behavior
aboriginal?)

If only they had been similarly foresighted to treat
references to undefined symbols as syntax errors instead of
merely performing no substitution.  Gerhard's objection
regarding temporary DSNAMEs could have been met with
thoughtful definition of the syntax.

>- to be able to have longer symbol values than symbol names.
>  -  For such cases it is OK to truncate silently (both because the users
>
It is not OK to truncate silently.  Would you even dare to suggest that
if in a JCL EXEC PARM='...&FOO....' the resulting PARM should be silently
truncated to 100 bytes if substitution were to cause it to be longer?

>of such symbols would know the limitations so would avoid it and because
>
My analogy here is highway guard rails: drivers know the limitations of
driving over the cliff so would avoid it.  Well, I guess there *is* Red
Mountain Pass.

>they recognize that if they insisted on something better than that they
>might get nothing).

-- gil

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

Reply via email to