[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
What is this RESTART kludge?
- To: Alan Bawden <ALAN at MIT-MC>
- Subject: What is this RESTART kludge?
- From: Scott E. Fahlman <Fahlman at Cmu-20c>
- Date: Thu, 30 Sep 1982 00:53:00 -0000
- Cc: Common-Lisp at SU-AI
Fine, let's require RESTART to take a block name, but not outlaw
(RESTART NIL). I'm not sure I'd ever use (RESTART NIL), but if it is
not really screwing anyone, it's less confusing to leave it in.
Let me raise a related issue. Since (DEFUN FOO ...) includes an implicit
restart block (implemented in either way). Where does that restart
block lie with respect to the code in &OPTIONAL and &AUX variables?
For use in error recovery, it is important to have the implicit BLOCK
surround the body, but NOT the variable initializations. Re-doing the
inits is hardly ever what you want to do, not to mention the fact that
this would tend to clobber any repairs the user has made to variable
values.
I agree with GLS that TAGBODY is a better name. PROG has nothing to
do with it.
Well, it's the body of a PROG (or PROG-like construct), not the body of
a tag. All sorts of things are documented as having a body like a prog,
so this seems a natural way to describe what's going on at least to
those who already know Lisp. Why pick on tags? It's also a RETURN-BODY
and a SYMBOLS-ENCOUNTERED-AT-TOP-LEVEL-ARE-NOT-EVALUATED-BODY.
-- Scott