[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Issue: CONDITION-RESTARTS (Version 1)
- To: Kent M Pitman <KMP@STONY-BROOK.SCRC.Symbolics.COM>
- Subject: Issue: CONDITION-RESTARTS (Version 1)
- From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Sun, 5 Feb 89 21:40 EST
- Cc: CL-Cleanup@SAIL.STANFORD.EDU
- In-reply-to: <890118142113.3.KMP@BOBOLINK.SCRC.Symbolics.COM>
I strongly favor this proposal; it removes the major objection that I
had to the CL condition system as it developed.
However, I don't favor the COPY-CONDITION function. I don't think it's
necessary. More importantly, you have not proposed any concrete specification
of what it does, and unless someone does, it cannot be included in the
language. Fortunately, I think we can just drop it, as I doubt that any
portable program would use it in any significant way that could not just
as well be done with a tiny amount of code using other existing primitives.
I'd like to suggest for consideration a change to the arglist of the
SIGNAL-WITH-RESTARTS and ERROR-WITH-RESTARTS macros. I'm not so sure that
my suggestion is a good one, however the issue I'm addressing is real:
these new macros are syntactically cumbersome, compared to the SIGNAL
and ERROR functions, because you have to write an explicit call to
MAKE-CONDITION. This may encourage programmers not to use these new
macros, instead they might wrap a WITH-RESTARTS around a call to SIGNAL
or ERROR, which looks equivalent to SIGNAL-WITH-RESTART except for having
a nicer syntax, but fails to take advantage of your new feature of
association between restarts and conditions. My suggestion is to
change the first subform of SIGNAL-WITH-RESTARTS and ERROR-WITH-RESTARTS;
currently it is a form that evaluates to a condition. Instead, I propose
that it be a list of forms whose values are used as the arguments to
SIGNAL or ERROR or used in an equivalent fashion. That way if you want
to use MAKE-CONDITION, you have to use one extra pair of parentheses, but
you can use all the other convenience features of SIGNA and ERROR such
as format strings.