All Manuals > Delivery User Guide > 16 Delivery Reference Entries

deliver Function


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 5 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
Other Unix-like systems

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

On macOS, you may wish to create an application bundle containing your delivered image. For an example showing how to do this, see 13.3 Creating a macOS 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 5 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 28 The Application Builder in the LispWorks IDE User Guide.

See also

5 Keywords to the Delivery Function

Delivery User Guide - 01 Dec 2021 19:35:07