(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