In a recent note, Edward Jaffe said:

> Date:         Sun, 30 Jul 2006 15:04:01 -0700
> 
> Hallelujah!!! Happy days!! But ... wait! Was I prescient? The name I've
> been assigning for 20 years to this "user defined" symbol is *exactly*
> the same as that chosen by IBM for the "official" symbol. I now have
> literally dozens of programs that won't compile. They receive a
> "Previously defined symbol" error from the assembler!
> 
Prescient?  Only in a sense.  In retrospect, you've probably
mused that you invited trouble by using, fairly deliberately,
a prefix ("S99") that IBM had informally staked out.  But we
all do it: some years back IBM introduced a hardware instruction
that we had used as a macro name.  (We OPSYNed it away;
we didn't need it.  And IIRC we had to do a little dance of
defining it before we undefined it because the assembler,
contrary to expectation, allows redefining an opcode
previously defined, but not undefining an opcode previously
undefined.)

But IBM laid the trap by not providing the service to customers
of partitioning the namespace, "Ours" and "Theirs".  They
provide a registry of module prefixes; this should be
generalized to other symbols.

45 years ago an IBM assembler provided a HED pseudo-op which
implicitly qualified symbols in a range of statements.  This
was a variant of name scoping; I don't know whether it would
have helped in this case.

> I'm not complaining. I'm editing. Consider yourselves forewarned...
> 
Despite the "dozens" of errors, do you need to do anything more
than delete the single definition in your macro?  It appears
that the definitions are equivalent.

-- 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

Reply via email to