In a recent note, Charles Mills said: > Date: Sat, 18 Nov 2006 17:17:04 -0800 > > - Symbols were only 5 characters long. > - But only the first three characters were significant, so STORE and STOP > were the same symbol. > I am unalterably opposed to quiet truncation, even of trailing blanks, when the data length exceeds the supported maximum. I believe I discussed here a case where a Bad terminal emulator convered nulls to blanks on a Read Modified. TSO issued a prompt, placed the cursor on the next line with no intervening attribute byte. I typed the response at the cursor position; TSO read the response and discarded characters beyond 80. On a Model 5, my text was simply lost; the diagnostic was generic, such as "INVALID RESPONSE", offering little help. Actually it may have echoed the initial 80 blanks as part of the message.
> - There was no possibility of a duplicate symbol: the assembler just did a > redefinition of the symbol. So not only were STORE and STOP the same symbol, > defining both did not generate an error: References to STOxx just went from > referring to the field defined as STORE to the field defined as STOP. > I knew a CDC assembler that tolerated redefinition with the same value. This percolated up to the FORTRAN compiler -- multiple definitions of a label were tolerated if there was no intervening code. I once wrote a very simple assembler with this behavior -- I made little distinction in the logic between Pass 1 and Pass 2. If I encountered a label definition and the address matched the prior definition, I assumed it was probably the second pass and ignored it. There were some cases where EQU errors were caught because the value was different in the second pass. > - There was no possibility of an undefined symbol. Anything you forgot to > define, the assembler just made it into an EXTRN, postponing the error > (hopefully!) to linkedit time. > Ugh. I have the same complaint about JCL. I'd much prefer to see the reference to the undefined '&WOMBAT' flagged as an undefined symbol error rather than left unsubstituted, to produce no clearer diagnostic than "ILLEGAL USE OF AMPERSAND ...". (But I'm considering exploiting the behavior in some code I'm about to write, where the symbol may either be SET or create a temporary data set -- if you have a lemon ...). Rexx, at least, lets the programmer detect unassigned variables with "signal on novalue". That's the second line in every Rexx program I write. -- gil -- StorageTek INFORMATION made POWERFUL ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html

