[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

What is this RESTART kludge?

    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