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

Condition System Rewrite: cell-error



    Date: Fri, 2 Jun 89 22:41:29 PDT
    From: Richard P. Gabriel <rpg@lucid.com>

    I forgot to add that I didn't like the name ``cell-error'' for that
    type. Recall that the two subtypes are named ``unbound-variable'' and
    ``undefined-function''. Since these equally apply to lexical variables
    and functions, cells have little to do with it.

I am unaware of any Common Lisp language facilities for creating lexically
local unbound variables and/or undefined functions.  However, I agree that
the terminology of "symbol cells" is best abandoned, as it only leads to
confusion between the language and one possible implementation technique.

    In Pitman's original text, he says that this type of error occurs when
    accesing locations, so I think a better name is ``access-error''.

    Date: Mon, 5 Jun 89 15:26:54 EDT
    From: Guy Steele <gls@Think.COM>

    I agree that "access-error" is a better name.

The name in the Symbolics condition system, for what that's worth,
is SYS:CELL-CONTENTS-ERROR.  It has some other subtypes that are
connected with memory access errors (where the problem is with the
contents of the location, not the address of the location).  Those
types are not appropriate for the CL language standard, however.
SYS:CELL-CONTENTS-ERROR makes sense as an implementation type but
not as a portable type.

ACCESS-ERROR seems better than CELL-ERROR, but still a bit vague to me.
Are the CLOS condition types SLOT-MISSING and SLOT-UNBOUND subtypes of
ACCESS-ERROR?  I think SLOT-UNBOUND should be.  I'm unsure about
SLOT-MISSING but I think it should not be, even though from the name
ACCESS-ERROR sounds like it should include it.  What about
NO-APPLICABLE-METHOD when the generic function is an accessor?  Are
there other errors that might be considered to involve "access"?
What about an array subscript out of bounds, for example?

Aside to Kathy: version 5.14 of section 2.2 is missing the CLOS
condition types.

Aside: I wonder why SLOT-UNBOUND isn't named UNBOUND-SLOT.

Depending on your interpretation of the word "binding", UNBOUND-VARIABLE
and UNDEFINED-FUNCTION might be called BINDING-ERRORs.  I like that
better than ACCESS-ERROR, but there is potential for confusion since
Lisp programmers use the word "bind" in so many inconsistent ways.
Unless someone can think of a better name, which is quite possible,
I would prefer to go with BINDING-ERROR.

This rename will definitely have to go through the X3J13 process.  I
would not expect much controversy, however.