For details of the functions delivery-value, deliver-keywords, delivery-shaker-cleanup and delivery-shaker-weak-pointer which allow you fine-grained control during the delivery process, if required, see Delivery Reference Entries.
The function hcl:delivered-image-p
is the predicate for whether the running image is a delivered image, that is an image saved by a call to deliver.
The action list "Delivery actions" is executed w
hen the delivery process starts, before any system action. For example, if *my-hash-table*
contains entries that are not required in the delivered application, then you may write:
(defun clear-my-hash-table()
(maphash #'(lambda (x y)
(unless (required-in-the-application-p x y)
(remhash x *my-hash-table*)))
*my-hash-table*))
(define-action "delivery actions" "Clear my hash table"
'clear-my-hash-table)
Using the action list has two advantages (over the crude method of removing code by fmakunbound
and so on):
deliver
script, so it can be written near the code that uses *my-hash-table*
. This makes it easier to maintain that code. (setf delivery-value)
.LispWorks Delivery User Guide - 15 Feb 2015