[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Issue EQUAL-STRUCTURE
- To: IIM@ECLA.USC.EDU
- Subject: Issue EQUAL-STRUCTURE
- From: Jon L White <jonl@lucid.com>
- Date: Wed, 1 Mar 89 20:25:00 PST
- Cc: cl-cleanup@SAIL.STANFORD.EDU
- In-reply-to: Kim A. Barrett's message of Tue 28 Feb 89 13:44:16-PST <12474359674.19.IIM@ECLA.USC.EDU>
re: [incompatibly changing EQUALP on defstruct instances]
I believe you yourself have taken a position on some
issues that the status quo is wrong and needs to be fixed.
Right. But the issue here is whether the fix is:
(1) to drastically rip up the current default behaviour, or
(2) to provide mechanisms that allow users to modify behaviour
[and presumably, he gets the "default" if he doesn't do so].
I've been favoring (2) over (1).
So as-and-when an EQUALP-GENERIC issues comes out, I would favor
retaining the default behaviour for the various broad meta-classes:
(1) BUILT-IN-CLASS: behaviour for objects from this metaclass are
already detailed in CLtL, on a class-by-class (type-by-type?)
basis;
(2) STRUCTURE-CLASS: again, CLtL fairly directly specifies a default
behaviour that needn't be incompatibly changed;
(3) STANDARD-CLASS: I'm not sure if 88-002R spells it out, but I thought
the consensus was that the default behaviour should be to signal
an error [i.e., you shouldn't let it get that far]. Defaulting to
EQL would probably be workable too, but wouldn't be as much help
in finding obscure bugs.
(4) RANDOM-{user-defined}META-CLASS: Might as well take the same tack as
for STANDARD-CLASS, since that is nearly as stringent as possible.
After all, that's what classes (and classes of classes, or "meta-classes")
are for -- to separate out just the parts you want to be different. And
currently, I don't see any reason to merge instances of STRUCTURE-OBJECT
in with those of STANDARD-OBJECT [yes, I know, "STRUCTURE-OBJECT" is a bit
of a neolgism, but one needs the term].
-- JonL --