Internal symbols in packages you have kept may still be shaken out. If any such symbol must be kept in the application, retain it force in one of the following four ways:
:keep-symbols
keyword. This is the recommended solution. See :keep-symbols (page :keep-symbols).
:never-shake-packages
keyword.
This solution is suitable when all the symbols to keep are in one package,
FOO-PKG
say. Pass
:never-shake-packages
(list "FOO-PKG")
. See :never-shake-packages (page :never-shake-packages).
External symbols are always shaken during delivery.
You can override this behavior by passing
:shake-externals
nil
to
deliver
. See :shake-externals (page :shake-externals). You can also specify
:packages-to-shake-externals
and
:packages-to-keep-externals
, pages :packages-to-keep-externals and :packages-to-shake-externals.
A reference from the object to the symbol ensures that the garbage collector passes over it during delivery.
See also Coping with intern and find-symbol at runtime.