Utility predicates for packing: UNBOUNDED-SC-P and UNBOUNDED-TN-P
[sbcl.git] / src / cold / chill.lisp
index 92b19c9..1156698 100644 (file)
@@ -20,7 +20,7 @@
 (in-package "SB-COLD")
 
 ;;; We need the #! readtable modifications.
-(load "src/cold/shebang.lisp")
+(load (merge-pathnames "shebang.lisp" *load-truename*))
 
 ;;; #!+ and #!- now refer to *FEATURES* values (as opposed to the way
 ;;; that they referred to special target-only *SHEBANG-FEATURES* values
 ;;; Just in case we want to play with the initial value of
 ;;; backend-subfeatures
 (setf sb-cold:*shebang-backend-subfeatures* sb-c:*backend-subfeatures*)
-;;; The nickname SB!XC now refers to the CL package.
-(rename-package "COMMON-LISP"
-               "COMMON-LISP"
-               (cons "SB!XC" (package-nicknames "CL")))
 
-;;; Any other name SB!FOO refers to the package now called SB-FOO.
-(dolist (package (list-all-packages))
-  (let ((name (package-name package))
-       (nicknames (package-nicknames package))
-       (warm-name-prefix "SB-")
-       (cold-name-prefix "SB!"))
-    (when (string= name warm-name-prefix :end1 (length warm-name-prefix))
-      (let* ((stem (subseq name (length cold-name-prefix)))
-            (cold-name (concatenate 'simple-string cold-name-prefix stem)))
-       (rename-package package name (cons cold-name nicknames))))))
+(handler-bind ((sb-ext:package-locked-error #'continue))
+  ;; The nickname SB!XC now refers to the CL package.
+  (rename-package "COMMON-LISP" "COMMON-LISP"
+                  (cons "SB!XC" (package-nicknames "CL")))
+  (sb-ext:unlock-package "CL")
+
+  ;; Any other name SB!FOO refers to the package now called SB-FOO.
+  (dolist (package (list-all-packages))
+    (let ((name (package-name package))
+          (nicknames (package-nicknames package))
+          (warm-name-prefix "SB-")
+          (cold-name-prefix "SB!"))
+      (when (and (> (length name) (length warm-name-prefix))
+                 (string= name warm-name-prefix
+                          :end1 (length warm-name-prefix)))
+        (let* ((stem (subseq name (length cold-name-prefix)))
+               (cold-name (concatenate 'simple-string cold-name-prefix stem)))
+          (rename-package package name (cons cold-name nicknames)))
+        (sb-ext:unlock-package package)))))