[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue: UNWIND-PROTECT-CLEANUP-NON-LOCAL-EXIT (Version 3)
- To: cl-cleanup@Sail.stanford.edu, Hornig@SCRC.Symbolics.COM
- Subject: Re: Issue: UNWIND-PROTECT-CLEANUP-NON-LOCAL-EXIT (Version 3)
- From: Pavel.pa@Xerox.COM
- Date: Sat, 13 Feb 88 18:07:23 PST
- In-reply-to: <880213-171305-10510@Xerox>
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