[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issue: PLUS-ABNORMAL (Version 1)



I agree with KMP's "... if we want to do anything with +, ++, etc.  it may
be to say that they are reserved for the implementation to assign as it
sees fit, and to give only vague guidelines beyond that -- referring
people to the implementation's manual for specifics."

I'm uncomfortable "pinning" down +, ++ and +++, since they cannot be used
reasonably by any portable code. 

The notion of "evaluation" and "aborting" is fairly complex when there are
separate read-eval-print loops, debuggers, etc.  For example, it seemed
reasonable to update *, ** once the values had been computed but before
they had been printed, in the case that the printing was aborted. The
"input" variables (-, +, ++, ...) are updated immediately after READ,
however.

In fact, the situation was more complicated because of the addition of
interleaved history lists; the history list itself maintains a corrolated
input-output history in "prompt" order, while there's a global ("last
value") IT that is shared by all Execs. ("Prompt" order is different than
"input" order, since the event number in the history list is allocated at
the time the prompt is generated, rather than when the input is complete.)

At one time I wanted to push for removing +, ++, +++, - from the standard
completely for what might be called 'aesthetic' grounds. I think they are
the only symbols in CL with unrelated value & function interpretations, for
example.