<snip>
I suspect this is a consequence of a simple-minded symbol resolution
facility that can't detect or report a buffer overrun when the length
of a symbol's value exceeds the length of its name.
</snip>

The symbol substitution service (ASASYMBM) is indeed quite simple-minded. 
The choice to truncate in a case where substitution would otherwise have 
overrun the input buffer was a conscious one, to avoid burdening thousands 
of programs with "what do I do if truncation did happen (or would have 
happened)?". 

But yes, that is why the symbols were deprecated.

As of z/OS 2.2, we now support symbols that have longer values than the 
length of the name, but with a naming protocol that lets it visually be 
seen that such a symbol is being used (symbol name ends with underscore). 
The silent truncation still happens. But at least the user of the symbol 
has an easy way of seeing that they are taking on the risk of such 
truncation. 

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