>That said, the convention that the length of an identifier (plus one
>for its prefixed ampersand) determines the maximal possible length of
>its values is a bizarre one.  Worse, it suggests (but does not of
>course prove) that a naif storage-overlay-reuse scheme figures in the
>implementation.

The decision might have been primarily mine.

You have classified it as bizarre and misbegotten.

I would say that It is neither. It is a practical necessity to avoid 
having to change thousands (millions?) of lines of IBM and ISV and 
customer code.
z/OS (and OS/390 and MVS et al) is really not an architecture of 
unlimited-length strings. It is an architecture of 80-byte parmlib records 
(of which only columns 1-71 are to be used) and 126-byte commands and 
other fixed-length records. Of course it does support variable-lengths in 
many places (even in many of those there are a limit).

So the decision was made to avoid the exploiters having to worry about 
line-overflow if the symbol value exceeds the length of the symbol, since 
it is really hard to fit 81 bytes of data into an 80 byte field. With the 
limitation, the resulting substitution could never exceed the length of 
the initial string.

Having said that, we are considering a convention under which symbol 
values can be longer than the symbol name, with the user's understanding 
that any truncation that results may be ignored.

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