[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Finally clauses
>>>>> "Bear" == Ray Dillinger <bear@xxxxxxxxx> writes:
Bear> I think that "the right thing" is going to involve *UNDOING* a
Bear> procedure call that runs into an exception, and the procedure
Bear> call that led to it, etc, until call frames back to and including
Bear> the call frame of a procedure with an exception-handler have been
Bear> popped.
I don't understand what you mean by "undoing": If the program
communicates with the external world, there's no way in general to
undo what you've done. I also don't understand why you want to do this.
Bear> This differs from the Try/Catch/Throw thing in that it abandons
Bear> call-frames and procedure-calls that lead to the exception
Bear> instead of trying to recover; but the semantics are a lot
Bear> cleaner.
Again, I don't think I understand: TRY *does* unwind the continuation
back to the exception handler.
Bear> They could capture continuations or call captured continuations
Bear> the same as any other procedure. No critical resources or
Bear> global variables are implied or required, nothing that creates
Bear> a race condition in multiprocessing is entangled, and the
Bear> semantics becomes clean and provable again.
What precisely are the semantic issues with SRFI 34 you're worried
about? I sure don't see any that would create race conditions or
interact unpleasantly with multiprocessing.
--
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla