(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "INTERLISP") (FILECREATED "16-Oct-88 17:32:07" {ERIS}<LISPCORE>PATCHES>SOURCES>AR-10885-PATCH.\;3 2970 |changes| |to:| (VARS AR-10885-PATCHCOMS) |previous| |date:| "16-Oct-88 17:20:55" {ERIS}<LISPCORE>PATCHES>SOURCES>AR-10885-PATCH.\;1) (PRETTYCOMPRINT AR-10885-PATCHCOMS) (RPAQQ AR-10885-PATCHCOMS ( (* |;;| "Patch file AR-10885-PATCH. Contains fixes for the AR(s) (10885).") (ADDVARS (*FEATURES* :AR-10885)) (FUNCTIONS CL::DEFSTRUCT-SHARED-SETF-EXPANDER) (PROP FILETYPE AR-10885-PATCH))) (* |;;| "Patch file AR-10885-PATCH. Contains fixes for the AR(s) (10885).") (ADDTOVAR *FEATURES* :AR-10885) (CL::DEFINE-SHARED-SETF-MACRO CL::DEFSTRUCT-SHARED-SETF-EXPANDER CL::ACCESSOR (CL::DATUM) ( CL::NEW-VALUE ) (* |;;| "Shared setf expander for all defstruct slot accessors ") (LET ((CL::SLOT-INFO (CL:GETHASH CL::ACCESSOR CL::*DEFSTRUCT-INFO-CACHE*))) (CL:WHEN (NULL CL::SLOT-INFO) (CL:SETQ CL::SLOT-INFO (CL::CACHE-SLOT-INFO CL::ACCESSOR))) (DESTRUCTURING-BIND (TYPE CL::SLOT CL::FAST-ACCESSSOR-P) CL::SLOT-INFO (LET ((CL::DESCRIPTOR (CL::PSLOT-FIELD-DESCRIPTOR CL::SLOT))) (CL:ECASE TYPE (CL::DATATYPE `(,(CL:IF CL::FAST-ACCESSSOR-P 'FREPLACEFIELD 'REPLACEFIELD) ',CL::DESCRIPTOR ,CL::DATUM ,CL::NEW-VALUE)) (LIST `(CL:SETF (CL:NTH ,CL::DESCRIPTOR ,CL::DATUM) ,CL::NEW-VALUE)) (CL:VECTOR (CL:MACROLET ((CL::SIMPLE-P (CL::X) `(OR (CL:SYMBOLP ,CL::X) (CL:CONSTANTP ,CL::X)))) (CL:IF (AND (CL::SIMPLE-P CL::DATUM) (CL::SIMPLE-P CL::NEW-VALUE)) `(ASET ,CL::NEW-VALUE ,CL::DATUM ,CL::DESCRIPTOR) (LET ((CL::D (CL:GENSYM)) (CL::V (CL:GENSYM))) `(LET ((,CL::D ,CL::DATUM) (,CL::V ,CL::NEW-VALUE)) (ASET ,CL::V ,CL::D ,CL::DESCRIPTOR))))))))))) (PUTPROPS AR-10885-PATCH FILETYPE :COMPILE-FILE) (DECLARE\: DONTCOPY (FILEMAP (NIL))) STOP