X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fslots-boot.lisp;h=4ee0df1179a5a280c4f38168cbfe02b2abb7e05b;hb=9a2e730f74641e7de6ad4099111db92c5ad863bf;hp=bad2c3ae08c7c224fc504fff9e843c74bf8e7da9;hpb=ed7ba4dad8a79726fdfeba5aa12e276ea852c540;p=sbcl.git diff --git a/src/pcl/slots-boot.lisp b/src/pcl/slots-boot.lisp index bad2c3a..4ee0df1 100644 --- a/src/pcl/slots-boot.lisp +++ b/src/pcl/slots-boot.lisp @@ -23,32 +23,6 @@ (in-package "SB-PCL") -(defmacro slot-symbol (slot-name type) - `(if (and (symbolp ,slot-name) (symbol-package ,slot-name)) - (or (get ,slot-name ',(ecase type - (reader 'reader-symbol) - (writer 'writer-symbol) - (boundp 'boundp-symbol))) - (intern (format nil "~A ~A slot ~A" - (package-name (symbol-package ,slot-name)) - (symbol-name ,slot-name) - ,(symbol-name type)) - *slot-accessor-name-package*)) - (progn - (error "Non-symbol and non-interned symbol slot name accessors~ - are not yet implemented.") - ;;(make-symbol (format nil "~A ~A" ,slot-name ,type)) - ))) - -(defun slot-reader-symbol (slot-name) - (slot-symbol slot-name reader)) - -(defun slot-writer-symbol (slot-name) - (slot-symbol slot-name writer)) - -(defun slot-boundp-symbol (slot-name) - (slot-symbol slot-name boundp)) - (defmacro asv-funcall (sym slot-name type &rest args) (declare (ignore type)) `(if (fboundp ',sym) @@ -310,7 +284,7 @@ `(,name ,(class-name class) ,(slot-definition-name slotd))))) (defun make-internal-reader-method-function (class-name slot-name) - (list* ':method-spec `(internal-reader-method ,class-name ,slot-name) + (list* :method-spec `(internal-reader-method ,class-name ,slot-name) (make-method-function (lambda (instance) (let ((wrapper (get-instance-wrapper-or-nil instance))) @@ -352,10 +326,10 @@ (instance-read-internal .pv. instance-slots 1 (slot-value instance slot-name)))))))) - (setf (getf (getf initargs ':plist) ':slot-name-lists) + (setf (getf (getf initargs :plist) :slot-name-lists) (list (list nil slot-name))) - (setf (getf (getf initargs ':plist) ':pv-table-symbol) pv-table-symbol) - (list* ':method-spec `(reader-method ,class-name ,slot-name) + (setf (getf (getf initargs :plist) :pv-table-symbol) pv-table-symbol) + (list* :method-spec `(reader-method ,class-name ,slot-name) initargs))) (defun make-std-writer-method-function (class-name slot-name) @@ -369,10 +343,10 @@ (instance-write-internal .pv. instance-slots 1 nv (setf (slot-value instance slot-name) nv)))))))) - (setf (getf (getf initargs ':plist) ':slot-name-lists) + (setf (getf (getf initargs :plist) :slot-name-lists) (list nil (list nil slot-name))) - (setf (getf (getf initargs ':plist) ':pv-table-symbol) pv-table-symbol) - (list* ':method-spec `(writer-method ,class-name ,slot-name) + (setf (getf (getf initargs :plist) :pv-table-symbol) pv-table-symbol) + (list* :method-spec `(writer-method ,class-name ,slot-name) initargs))) (defun make-std-boundp-method-function (class-name slot-name) @@ -386,10 +360,10 @@ (instance-boundp-internal .pv. instance-slots 1 (slot-boundp instance slot-name)))))))) - (setf (getf (getf initargs ':plist) ':slot-name-lists) + (setf (getf (getf initargs :plist) :slot-name-lists) (list (list nil slot-name))) - (setf (getf (getf initargs ':plist) ':pv-table-symbol) pv-table-symbol) - (list* ':method-spec `(boundp-method ,class-name ,slot-name) + (setf (getf (getf initargs :plist) :pv-table-symbol) pv-table-symbol) + (list* :method-spec `(boundp-method ,class-name ,slot-name) initargs))) (defun initialize-internal-slot-gfs (slot-name &optional type)