;;; from defstruct.lisp
(in-package "SB!KERNEL")
(defsetf %instance-ref %instance-set)
+
(defsetf %raw-instance-ref/word %raw-instance-set/word)
(defsetf %raw-instance-ref/single %raw-instance-set/single)
(defsetf %raw-instance-ref/double %raw-instance-set/double)
(defsetf %raw-instance-ref/complex-single %raw-instance-set/complex-single)
(defsetf %raw-instance-ref/complex-double %raw-instance-set/complex-double)
-(defsetf %raw-ref-single %raw-set-single)
-(defsetf %raw-ref-double %raw-set-double)
-
-(defsetf %raw-ref-complex-single %raw-set-complex-single)
-(defsetf %raw-ref-complex-double %raw-set-complex-double)
(defsetf %instance-layout %set-instance-layout)
(defsetf %funcallable-instance-info %set-funcallable-instance-info)
+(defsetf %funcallable-instance-layout %set-funcallable-instance-layout)
;;; from early-setf.lisp
(in-package "SB!IMPL")
-;;; KLUDGE: Various of these (e.g. AREF and BIT) have DEFUN (SETF FOO) versions
-;;; too. Do we really need both? -- WHN 19990921
+;;; (setf aref/bit/sbit) are implemented using setf-functions,
+;;; because they have to work with (setf (apply #'aref array subscripts))
+;;; All other setfs can be done using setf-functions too, but I
+;;; haven't found technical advantages or disatvantages for either
+;;; scheme.
#-sb-xc-host (defsetf car %rplaca)
#-sb-xc-host (defsetf cdr %rplacd)
#-sb-xc-host (defsetf caar (x) (v) `(%rplaca (car ,x) ,v))
#-sb-xc-host (defsetf tenth (x) (v) `(%rplaca (cdr (cddddr (cddddr ,x))) ,v))
#-sb-xc-host (defsetf rest %rplacd)
#-sb-xc-host (defsetf elt %setelt)
-#-sb-xc-host (defsetf aref %aset)
#-sb-xc-host (defsetf row-major-aref %set-row-major-aref)
#-sb-xc-host (defsetf svref %svset)
#-sb-xc-host (defsetf char %charset)
-#-sb-xc-host (defsetf bit %bitset)
#-sb-xc-host (defsetf schar %scharset)
-#-sb-xc-host (defsetf sbit %sbitset)
(defsetf %array-dimension %set-array-dimension)
-(defsetf sb!kernel:%raw-bits sb!kernel:%set-raw-bits)
(defsetf sb!kernel:%vector-raw-bits sb!kernel:%set-vector-raw-bits)
#-sb-xc-host (defsetf symbol-value set)
+#-sb-xc-host (defsetf symbol-global-value set-symbol-global-value)
#-sb-xc-host (defsetf symbol-plist %set-symbol-plist)
#-sb-xc-host (defsetf nth %setnth)
#-sb-xc-host (defsetf fill-pointer %set-fill-pointer)
(defsetf sap-ref-word %set-sap-ref-word)
(defsetf signed-sap-ref-word %set-signed-sap-ref-word)
(defsetf sap-ref-sap %set-sap-ref-sap)
+(defsetf sap-ref-lispobj %set-sap-ref-lispobj)
(defsetf sap-ref-single %set-sap-ref-single)
(defsetf sap-ref-double %set-sap-ref-double)
#!+long-float (defsetf sap-ref-long %set-sap-ref-long)
;;; from kernel.lisp
(in-package "SB!KERNEL")
(defsetf code-header-ref code-header-set)
-(defsetf %raw-bits %set-raw-bits)
;;; from serve-event.lisp
(in-package "SB!IMPL")