diff --git a/tools/pclcom.lisp b/tools/pclcom.lisp index ad70754a16da4eafd7a14b40f93bc44dee3ad399..72714b1450372436e51150a676b3bad7905cf9e6 100644 --- a/tools/pclcom.lisp +++ b/tools/pclcom.lisp @@ -38,15 +38,17 @@ (t (setf (kernel:class-pcl-class class) nil))))))) - ;; Shadowing-import 'pcl::class so that this symbol is the same as - ;; used by the compiler in ir1tran. - (let ((class 'pcl::class)) + ;; Rename the PCL package to OLD-PCL, then restoring pcl::class and + ;; pcl::..slot-unbound.. back to the PCL package as they need be + ;; consistent with the symbols recognised by the compiler. + (let ((class 'pcl::class) + (slot-unbound 'pcl::..slot-unbound..)) (rename-package "PCL" "OLD-PCL") (make-package "PCL") (shadowing-import class "PCL") - ;; Move class back to the PCL package so that the respective debug - ;; variable has a valid package name. - (kernel:%set-symbol-package class (find-package "PCL")))) + (kernel:%set-symbol-package class (find-package "PCL")) + (import slot-unbound "PCL") + (kernel:%set-symbol-package slot-unbound (find-package "PCL")))) (when (find-package "SLOT-ACCESSOR-NAME") (rename-package "SLOT-ACCESSOR-NAME" "OLD-SLOT-ACCESSOR-NAME"))