LispWorks Delivery User Guide > 4 Delivering your Application


4.1 The delivery function: deliver

The function deliver is the main interface to the delivery tools. Its basic syntax is shown below:



Signature: deliver function file level &rest keywords

The following three arguments are required:


The name of the function that starts an executable application.


A string or pathname naming the file in which the delivered image should be saved.

The file extension .exe or .dll is appended to executables or DLLs delivered on Microsoft Windows.

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.


An integer specifying the delivery level .

This is a measure of how much work Delivery does to reduce the size of the image. It must be an integer in the range 0 to 5. Level 5 is the most severe, while the least work on image reduction is done at level 0.

The most important keywords arguments are :interface and :multiprocessing. If your application uses the 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")

LispWorks Delivery User Guide - 22 Dec 2009