Next Prev Up Top Contents Index

4.6 Additional steps after delivery level 5

There are several suggestions for additional steps that may be taken to reduce the size and speed of the delivered application image after the maximum delivery level has been reached.

  1. User packages may be pushed onto the list of packages to be deleted by using the keyword argument :delete-packages to the function deliver (see page :delete-packages). This means that all unreferenced symbols are shaken from the pushed packages.
  2. Return to compiling the application code, and experiment with optimization. Type declarations and safety declarations can both speed the application up and make it smaller. Compile code for delivery with the compiler option (space 3) . However, you should ensure that low-safety inlining does not bloat the image.
  3. Parts of the numeric code can be deleted by using the override list to specify that, for example, the code to handle complex numbers should be deleted. This can be done by passing :keep-complex nil to the function deliver .
  4. Study the output from a typical run, and delete unused functions with the deliver keyword :functions-to-remove , or do so manually with fmakunbound .
  5. If the application does not use CLOS, remove it with :keep-clos nil .
  6. Delete the format code by passing the :format nil to the function deliver .

 


LispWorks Delivery User Guide - 11 Dec 2001

Next Prev Up Top Contents Index