6.9.1 Making sure that packages are kept

Your application may rely upon certain system packages that Delivery deletes or smashes by default.

You can protect these packages with :packages-to-keep (page :packages-to-keep). All packages in the list passed with this keyword are kept in the delivered image, regardless of the state of the :smash-packages (page :smash-packages) and :delete-packages (page :delete-packages) keywords. If you pass :packages-to-keep :all , then the two variables are set to nil .

Note: COMMON-LISP is the package your application is most likely to rely on, and it is also very large. Keeping it has a very noticeable effect on the size of the application. However, if your application uses read or load , it invites the possibility of reading arbitrary code, and so COMMON-LISP must be kept.

See also Coping with intern and find-symbol at runtime.

LispWorks Delivery User Guide - 7 Apr 2005