Symbols and packages usually have the most significant effect on the size of a delivered application, so it is worth paying attention to them during delivery.
The basic principle of delivery is to garbage collect the image, freeing anything the application does not refer to in order to make the image smaller. This strategy works well enough for most objects, but not for symbols within packages: since all such symbols are referred to by their package, none of them can be deleted.
You can overcome this problem in the following ways:
Deleting and smashing packages are not recommended. Deleting and smashing are explained in the next section. They are both ways of removing symbols from the application, one being more extreme than the other. You should note, however, that it is possible to handle specific symbols individually. This is preferred.
By default, Delivery deletes all of the system's packages, and smashes some of them. This following section also explains how to prevent this when necessary.
Delivery can remove symbol names. At level 5 by default it changes all symbol names that are not explicitly retained to the same string "Dummy Symbol Name"
. This makes it difficult to debug the application - for the recommended approach see :symbol-names-action.
LispWorks Delivery User Guide - 10 Aug 2017