[comp.emacs] Shared accessors for defstructs

quiroz@cs.rochester.edu (Cesar Quiroz) (09/07/89)

James Aspnes noticed the incompatibility introduced by checking the
structure tag before doing an access or alteration, and has
suggested to remove the tag checking to permit sharing of common
slots.  This is admittedly the right thing with respect to slots
shared via :include.  CLtL gives the choice of NOT performing any
checking in this case, but then it seems this would go unreported:

(defstruct complex real imag)
(defstruct date day month year)

(complex-imag (make-date)) ...

This would also make accesses and mutations (via setf) faster...
The alternative to no tag checking is to make sure that every time we
define structs someone is keeping track of the inclusions, so that a
runtime check can decide if a slot borrowing is valid or not (ug,
more checks at runtime).

SO, I would like to ask you people if there is a consensus as to
what would be more useful.  If you use defstructs (or plan to,
etc...), please take a moment to consider which behavior is more
useful and mail your opinion to me.  Same goes in case you figure
out a third option that doesn't break anything else and still fixes
this.

Thanks,

-- 
                                      Cesar Augusto Quiroz Gonzalez
                                      Department of Computer Science
                                      University of Rochester
                                      Rochester,  NY 14627