2.2 Delivering the program

Having compiled the program, the next step is to attempt delivery, where you will load the compiled file in a fresh LispWorks session.

Programs are delivered with the function deliver . This function takes three mandatory arguments. There are also many optional keyword arguments to help Delivery make the smallest image possible.

You can read more about this function in Delivering your Application. Keywords to the Delivery Function, describes all the optional keywords available.

In this example, we do not use any of them, but just provide the mandatory arguments. They are:

This is the first function called when the application is run.

This is an integer in the range 0 to 5. It controls how much work is done to make the image smaller during delivery. At level 0, little effort is put into making a smaller image, while at level 5 a variety of strategies are employed.

Continuing with the example:

  1. Write a delivery script file ( deliver.lisp ) that loads the program and then calls deliver :
  2. (load-all-patches)
    (load (sys:example-file "delivery/hello/hello"))
     :load t)
    (deliver 'hello-world 
              "/Applications/LispWorks 4.4.5/")
             #-:cocoa "hello" 
             :interface :capi)
  3. Run the lisp image using the script as an init file. For example, on Windows open a DOS window. Ensure you are in the folder containing the LispWorks image and type:
  4. lispworks-4450.exe -init deliver.lisp

    On UNIX or Linux, type the following into a shell:

    unix% lispworks-4450 -init deliver.lisp

    On Mac OS X, use Ensure you're in the directory of the image first:

    unix% cd /Applications/LispWorks 4.4.5/
    unix% lispworks-4-4-5-darwin -init deliver.lisp

    If you want to see the output, you can redirect the output with > to a file or use | , if it works on your system.

  5. Run the application, which is saved in hello.exe on Windows, hello on UNIX/Linux, and on Mac OS X.

2.2.1 Further example

LispWorks Delivery User Guide - 7 Apr 2005