[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
What is this RESTART kludge?
- To: Common-Lisp at SU-AI
- Subject: What is this RESTART kludge?
- From: Alan Bawden <ALAN at MIT-MC>
- Date: Wed, 29 Sep 1982 23:06:00 -0000
Date: Monday, 27 September 1982 23:14-EDT
From: Scott E. Fahlman <Fahlman at Cmu-20c>
I agree with Alan Bawden that RESTART should not have a value-returning
subform, and that RESTART-FROM is silly. It is probably also OK to
flush (RESTART NIL) and require a non-null block-name.
Slight misunderstanding here. I was not proposing that "(RESTART NIL)" be
disallowed, only that "(RESTART)" be disallowed. But I won't object if you
really want to go this far, as long as we at least take the step of requiring a
block name.
I guess I am convinced that having RESTART built into the language is a good
idea, if only so that DEFUN can produce one.
I still think that using BLOCK as the thing to restart is a poor idea, and I
wish someone would take my idea of having a separate RESTARTABLE form and a
separate namespace of restart tags seriously (option #2 in my last message).
(DEFUN can produce BOTH so that you can both RETURN-FROM and RESTART any
function.) I really think is is a bad mistake to build an implicit loop into
every BLOCK.
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?
By the way, are we converging toward the name TAGBODY? I much prefer
PROGBODY for this use.
I agree with GLS that TAGBODY is a better name. PROG has nothing to do with
it.