0.pre8.92:
[sbcl.git] / src / code / cold-init.lisp
index f2dca7d..eae1527 100644 (file)
@@ -22,8 +22,8 @@
 ;;; anything whose name matches a magic character pattern is
 ;;; uninterned.
 ;;;
-;;; FIXME: should also go through globaldb (and perhaps other tables)
-;;; blowing away associated entries
+;;; FIXME: Are there other tables that need to have entries removed?
+;;; What about symbols of the form DEF!FOO?
 (defun !unintern-init-only-stuff ()
   (do ((any-changes? nil nil))
       (nil)
                         (string= name "*!" :end1 2 :end2 2)))
            (/show0 "uninterning cold-init-only symbol..")
            (/primitive-print name)
+           ;; FIXME: Is this (FIRST (LAST *INFO-ENVIRONMENT*)) really
+           ;; meant to be an idiom to use?  Is there a more obvious
+           ;; name for this? [e.g. (GLOBAL-ENVIRONMENT)?]
+           (do-info ((first (last *info-environment*))
+                           :name entry :class class :type type)
+             (when (eq entry symbol)
+               (clear-info class type entry)))
            (unintern symbol package)
            (setf any-changes? t)))))
     (unless any-changes?
@@ -89,7 +96,7 @@
         *before-gc-hooks* nil
         *after-gc-hooks* nil
         *already-maybe-gcing* t
-       *gc-inhibit* t
+       *gc-inhibit* 1
        *need-to-collect-garbage* nil
        sb!unix::*interrupts-enabled* t
        sb!unix::*interrupt-pending* nil
         *cold-init-complete-p* nil
         *type-system-initialized* nil)
 
-  (show-and-call !exhaust-cold-init)
   (show-and-call !typecheckfuns-cold-init)
 
   ;; Anyone might call RANDOM to initialize a hash value or something;