In many cases, the size of the image can be reduced if part of the user code or data is eliminated, for example, when this code/data is there for debugging purposes. The system, however, cannot tell which part of the code/data can be eliminated, so you have to do it yourself.
That can be done in either of two ways:
deliver, by using
remhashetc. The adavantage of this approach is that it does not require you to know anything about delivery. The disadvantage of this is that it has to be explicitly put in the delivery script..
*my-hash-able*contains entries that are not required in the delivered application, The you may write:
(maphash #'(lambda (x y)
(unless (required-in-the-application-p x y)
(remhash x *my-hash-able*)))
(define-action "delivery actions" "Clear my hash table"
Using the action list has two advantages:
deliverscript, so it can be written near the rest of the code that is using
*my-hash-able*, which makes it easier to maintain the code.