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

Re: Issue: UNWIND-PROTECT-CLEANUP-NON-LOCAL-EXIT (Version 3)



With reference to Moon's objections to the given proposal, namely that he wants
a way within his environment to interrupt any loop, no matter how perversely
defined, I remain unconvinced that this is really a language issue.  Since the
language does not specify any relationship between user actions (such as pushing
some magic key on the keyboard) and a linguistic effect (such as performing some
throw or other non-local transfer), I cannot accept this argument at the
linguistic level.  If you really want this facility in your environment, then
add another operation to the abstract machine of the implementation, a THROW
that can't be overridden by any ``nested'' THROW.  Your debugger or whatever can
then be implemented in terms of that (when appropriate) and the language
definition remains clean.

I remain strongly in favor of this proposal; it seems to me to have a
wonderfully simple semantics, easily understood and eassily incorporated into
the programmer's mental model.

	Pavel