Shake out a few more symbols

Firstly, find-fdefn on a symbol is *not* redundant with having globladb info
since the fdefn goes in its own slot. But also the test was wrong
because it's trying to check whether the symbol is currently FBOUNDP.
Since FDEFNs can't go away, this change finds a little more to remove.
In practice, some un-fboundp symbols aren't removed because they have code
references, like STREAM-EXTERNAL-FORMAT calling S-%STREAM-EXTERNAL-FORMAT
which is defined only if sb-simple-streams gets loaded, etc, etc.
This commit is contained in:
Douglas Katzman 2022-09-15 11:04:36 -04:00
parent 84ee8f84dd
commit 1c5f82b95e

View file

@ -405,7 +405,7 @@ Please check that all strings which were not recognizable to the compiler
(lambda (symbol accessibility)
(declare (ignore accessibility))
(or (sb-kernel:symbol-%info symbol)
(sb-int:find-fdefn symbol) ; might be redundant with existence of %info, but ok
(sb-kernel:%symbol-function symbol)
(and (boundp symbol) (not (keywordp symbol)))))
;; Release mode: retain all symbols satisfying this intricate test
#-sb-devel
@ -471,7 +471,7 @@ Please check that all strings which were not recognizable to the compiler
(or (eq accessibility :external) (asm-inst-p symbol))
;; By default, retain any symbol with any attachments
(or (sb-kernel:symbol-%info symbol)
(sb-int:find-fdefn symbol)
(sb-kernel:%symbol-function symbol)
(and (boundp symbol) (not (keywordp symbol))))))))
:verbose nil :print nil)
(unintern 'sb-impl::shake-packages 'sb-impl)