[armedbear-devel] SLOT-VALUE and SLOT-VALUE-USING-CLASS with DEFSTRUCT

Tobias C Rittweiler tcr at freebits.de
Fri Jun 18 04:41:18 UTC 2010


> I committed (r12756) a simple implementation of SLOT-VALUE and friends
> (setf slot-value, slot-boundp, slot-makunbound) for structures. It
> searches for slots by iterating through the list of slot names stored
> in the structure-class, which is probably not very good
> performance-wise (CLOS objects use a map). Structure slots are
> initialized to NIL and can't be unbound, and
> slot-boundp/slot-makunbound reflect this.
> 
> I also added the necessary autoloads to autoloads.lisp.
> 
> Bye,
> Alessio

Regarding the initialization, this is not quite true; CLHS 
defstruct says

  If a slot is not initialized in this way, it is initialized by
  evaluating slot-initform in the slot description at the time the
  constructor function is called. If no slot-initform is supplied, the
  consequences are undefined if an attempt is later made to read the
  slot's value before a value is explicitly assigned.

As consequences are undefined, always returning NIL is compliant,
but you could also make it signal an error, and make SLOT-BOUNDP
cover this case.

  -T.





More information about the armedbear-devel mailing list