>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
