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

Issue: CONDITION-RESTARTS (Version 1)



Here's some questions/comments that need to be factored into the
next draft on this issue...

1. Moon has suggested that COPY-CONDITION is not necessary.  Does anyone
   disagree? I am willing to remove it, but doing so will make this
   proposal less `compatible.' I don't care much one way or the other, but
   I don't want to be accused of being `callous' toward people who do care.
   If this committee will back me up on the removal of that function and
   the resulting compatibility problems that could in principle (though
   perhaps not in practice) come up, then I'll make the change. Opinions?

2. Moon has also asked that the syntax to SIGNAL-WITH-RESTARTS and 
   ERROR-WITH-RESTARTS be:
    SIGNAL-WITH-RESTARTS signal-argument-list &rest restart-clauses
    ERROR-WITH-RESTARTS  signal-argument-list &rest restart-clauses
   so that you would write
    (SIGNAL-WITH-RESTARTS ('FOOD-COLOR-ERROR :FOOD 'LETTUCE :COLOR 'PINK)
      ...restart clauses...)
   rather than
    (SIGNAL-WITH-RESTARTS (MAKE-CONDITION 'FOOD-COLOR-ERROR
			    :FOOD 'LETTUCE :COLOR 'PINK)
      ...restart clauses...)
   If you wanted to use MAKE-CONDITION, you would then write:
    (SIGNAL-WITH-RESTARTS ((MAKE-CONDITION 'FOOD-COLOR-ERROR
			     :FOOD 'LETTUCE :COLOR 'PINK))
      ...restart clauses...)
   The advantage of what he proposes is that you could write
    (SIGNAL-WITH-RESTARTS ("Bad ~S color" 'FOOD)
      ...restart clauses...)
   and a condition object would be created implicitly as with SIGNAL. A
   possible disadvantage is that
    (SIGNAL-WITH-RESTARTS (FOO BAR BAZ)
      ...restart clauses...)
   might look to someone like the FOO in (FOO BAR BAZ) named a function
   rather than a variable. Does anyone else have an opinion on this?

3. Rees has suggested that the syntax for WITH-CONDITION-RESTARTS should be 
    WITH-CONDITION-RESTARTS condition-form restarts-form &BODY forms
   rather than
    WITH-CONDITION-RESTARTS (condition-form restarts-form) &BODY forms
   which it is now. Does anyone else have an opinion?

4. Rees has asked for advice about how the condition/restart association
   might be implemented -- is some kind of alist structure held by a
   special variable what was intended, or ought the condition have a
   restarts slot. He and I talked a little about this and eventually he
   agreed that it's pretty obvious that the relation should be externally
   represented. It's important that the association not be done by a slot
   in the condition because if you carry around the condition object after
   you're done signalling, you don't want it to contain useless and/or
   misleading information about restarts that no longer exist. I'll probably
   add some notes to this effect when I generate the next draft.
   This doesn't really require comment, unless someone seriously disagrees.