LispWorks Delivery User Guide > 9 Delivery and Internal Systems > 9.9 Keeping packages and symbols in the application


9.9.2 Ensuring that symbols are kept

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:

  1. With the :keep-symbols keyword.
  2. This is the recommended solution. See :keep-symbols.

  3. With the :never-shake-packages keyword.
  4. 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.

  5. Export the symbol from the package.
  6. External symbols are always shaken during delivery.

    You can override this behavior by passing : shake-externals nil to deliver . See :shake-externals.

    You can also specify :packages-to-shake-externals and :packages-to-keep-externals.

  7. Make explicit reference to the symbol with another object that you know will not be deleted.
  8. 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.

LispWorks Delivery User Guide - 22 Dec 2009