Use standard CLOS functions in actor load forms (SBCL internal functions no longer exist)

This commit is contained in:
~keith 2022-05-09 17:06:11 +00:00
parent 19fb9fb9fb
commit 11e0f2f0df
Signed by: keith
GPG key ID: 5BEBEEAB2C73D520

View file

@ -100,14 +100,14 @@
(declare (ignore environment))
(values
;; cons form
`(sb-kernel::new-instance ,(class-name (class-of obj)))
`(allocate-instance (find-class ',(class-name (class-of obj))))
;; init form
(loop for slot in (sb-mop:class-slots (class-of obj))
for slot-name = (sb-mop:slot-definition-name slot)
collect slot-name into slots
collect (make-value-init-form (slot-value obj slot-name))
into values
finally (return `(sb-pcl::set-slots ,obj ,slots ,@values)))
nconc `((slot-value ,obj ',slot-name)
,(make-value-init-form (slot-value obj slot-name)))
into setfs
finally (return `(setf ,@setfs)))
))
(defun make-value-init-form (x)