;;; ;;; This file contains code that should be processed after loading ;;; the compiled files belonging to a world, but before writing the ;;; core file. This happend in kernel.core ;;; ;;; Things you usually do here are deleting kernel.core symbols that ;;; are leftovers from the build process, but violate someone' else ;;; namespace and hence should not end up in the final image. ;;; ;;; This file must be *loadable* by kernel.core, but since is compiled ;;; by a full lisp in advance, it does not need to be *readable*. Got ;;; that? That means, as opposed to env-simple-*.lisp, which must be ;;; readable, in this file, you are allowed to use use reader macros, ;;; #'(lambda, funcall etc, but - for example - no logical pathnames ;;; and other stuff depending on runtime features. ;;; ;;; ;;; Final cleanup of image ;;; ;;; ;;; Use a named function so that we can remove it from the hooks easily ;;; #+nil (defun user::crabuild-cleanup () ;; ;; Unset variables that someone else set ;; ;; whereever this comes from, it clashes with the alien package, ;; so get rid of it. (unintern 'common-lisp::slot) ;; remove these hooks (setf ext:*before-save-initializations* #'(lambda () (remove #'user::crabuild-cleanup ext:*before-save-initializations*))) (print "Running last fixups") (in-package "COMMON-LISP-USER") (unintern 'user::crabuild-cleanup)) #+nil (pushnew #'user::crabuild-cleanup ext:*before-save-initializations*)