[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
UNWIND-PROTECT-CLEANUP-NON-LOCAL-EXIT
- To: CL-Cleanup@sail.stanford.edu
- Subject: UNWIND-PROTECT-CLEANUP-NON-LOCAL-EXIT
- From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Fri, 24 Apr 87 00:49 EDT
- Cc: Charles Hornig <Hornig@ALDERAAN.SCRC.Symbolics.COM>
- In-reply-to: <870423123259.1.HORNIG@WINTER.SCRC.Symbolics.COM>
Here's an opinion on this issue from one of our developers, with an
interesting rationale. I agree with the rationale, which is why I
support either the mentioned proposal or the one that signals an error
and allows the outer THROW to be completed from the debugger.
Date: Thu, 23 Apr 87 12:32 EDT
From: Charles Hornig <Hornig@ALDERAAN.SCRC.Symbolics.COM>
I found KMP's proposal for this and I can now comment effectively. My
personal feelings are that the right proposal for 1 is the one below. I
agree with KMP that 2C is correct for 2.
Proposal (UNWIND-PROTECT-CLEANUP-NON-LOCAL-EXIT:1?):
Some may believe that the throw to BAR is suppressed,
the THROW to FOO should somehow complete, but that XXX would
never be printed.
The important factor here is that I believe that whenever there are two
THROW's in competition, that we should always proceed to the outermost
CATCH. This rule permits a programmer to assume that if he does a THROW
out of a computation that that computation will be exited, one way or
another. This is related to Moon's comment about the programming
environment and aborting.