All Manuals > LispWorks Delivery User Guide > 16 Delivery Reference Entries




Creates LispWorks executable applications and dynamic libraries.




deliver function file level &rest keywords



A symbol.


A string or pathname.


An integer in the inclusive range [0, 5].


Keyword arguments described in full in Keywords to the Delivery Function.


The function deliver is the main interface to the delivery tools. You use it to create LispWorks executable applications and dynamic libraries.

The first three arguments are required.

If you are creating an executable application, function should name a function of no arguments. This function will be called on startup of the executable. If you are creating a dynamic library, function should be nil.

file names the file in which the delivered image should be saved. The file extension .exe is appended to executables delivered on Microsoft Windows. For dynamic libraries, a file extension is appended as follows:

Microsoft Windows


Mac OS X


Other Unix-like systems


If the delivery keyword :split is true then a second file containing the Lisp heap is created.

On Mac OS X, you may wish to create an application bundle containing your delivered image. For an example showing how to do this, see Creating a Mac OS X application bundle.

level specifies the delivery level which is a measure of how much work Delivery does to reduce the size of the image. level 5 is the most severe. The least work on image reduction is done at level 0.

The most important keywords arguments are :interface and :multiprocessing. If your application uses CAPI, you must pass :interface :capi. If your application does not use the CAPI, but does use multiprocessing, then you must pass :multiprocessing t. Your first attempt to deliver your application should use no more than these keywords.

In addition, a variety of other keywords can be passed to deliver. These are for fine-tuning by controlling aspects of delivery explicitly. Add more keywords only when you find that you need them.

All the deliver keywords are documented in Keywords to the Delivery Function. Additionally, they can been seen in the LispWorks image by calling:

(require "delivery")

deliver checks that load-all-patches has been called. If load-all-patches has not been called in the session, then deliver signals an error.


For information about invoking deliver using the IDE, see "The Application Builder" in the LispWorks IDE User Guide .

See also

deliver in the LispWorks User Guide and Reference Manual
delivered-image-p in the LispWorks User Guide and Reference Manual
save-image in the LispWorks User Guide and Reference Manual


LispWorks Delivery User Guide - 15 Feb 2015