Creates LispWorks executable applications and dynamic libraries.
lispworks
deliver function file level &rest keywords
function⇩ | |
file⇩ | |
level⇩ | |
keywords⇩ |
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 | .dll |
macOS | .dylib |
Other Unix-like systems | |
.so |
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-keywords)
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.
deliver-keywords
5 Keywords to the Delivery Function
delivered-image-p
save-image
Delivery User Guide - 01 Dec 2021 19:35:07