[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
go and return-from inside unwind-protect cleanup
- To: Common-Lisp@SU-AI.ARPA
- Subject: go and return-from inside unwind-protect cleanup
- From: David C. Plummer in disguise <DCP@SCRC-QUABBIN.ARPA>
- Date: Mon, 9 Sep 85 09:43 EDT
Are the following legal?
(defun foo (go-p)
(prog nil
tag
(unwind-protect
(return (compute))
(if go-p (go tag)))))
(defun bar (return-p)
(prog nil
tag
(unwind-protect
(progn (compute)
(go tag))
(if return-p (return nil)))))
I say no, because the unwind-protect could be usurping the values of the
first form of unwind-protect (in the case of normal exit) or could be
usurping a THROW (in the abnormal exit).
There is no mention of this in CLtL (in the unwind-protect section, at
least). If it is legal, would somebody please tell me what FOO does.