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.