1.2 What do you get with Delivery?
1.2.1 Programming libraries and facility support code
1.2.2 Functionality removed by delivery
1.3 Conventions and terminology used in this manual
1.3.1 Common Lisp reference text
1.3.2 Platform-specific keywords
1.4 A breakdown of the delivery process
1.4.1 Developing your application
1.4.2 Managing and compiling your application
1.4.3 Debugging, profiling and tuning facilities
1.4.4 Delivering your compiled application
1.6.1 Protection of the delivery product on UNIX
1.6.2 Protection of the delivered image on UNIX
1.6.3 Unprotected runtime applications on UNIX
1.6.4 Expiration of unprotected runtime applications on UNIX
2.2.1 Delivering the program using the LispWorks IDE
2.2.2 Delivering the program using a command shell
3 Writing Code Suitable for Delivery
3.1 Separate runtime initializations from the build phase
3.2 Error handling in delivered applications
3.3 Efficiency considerations when coding for delivery
4.1 The delivery function: deliver
4.2 Using the delivery tools effectively
4.2.1 Saving the image before attempting delivery
4.2.2 Delivering the application in memory
4.3 Delivering a standalone application executable
4.4 Delivering a dynamic library
4.4.1 Simple delivery of a dynamic library
4.4.2 Using the dynamic library
4.4.3.1 Using the Application Builder
4.4.6 More about building dynamic libraries
4.5 How to deliver a smaller and faster application
4.5.1 Making the image smaller
4.6 How Delivery makes an image smaller
4.6.1 Garbage collecting the image
5 Keywords to the Delivery Function
5.1 Topic-based list of deliver keywords
5.1.1 Controlling the behavior of the delivered application
5.1.2 Testing and debugging during delivery
5.1.3 Behavior of the delivery process
5.1.4 Retaining or removing functionality
5.1.4.1 Directing the behavior of the treeshaker and garbage collector
5.1.4.2 Classes and structures
5.1.4.3 Symbols, functions, and packages
5.1.4.5 CLOS metaclass compression
5.2 Alphabetical list of deliver keywords
6.3 Bad interaction with clean-up utilities
6.5 Terminal windows and message logs
6.5.1 Controlling use of a terminal window
6.5.2 Logging debugging messages
6.6 File associations for a Macintosh application
6.8 Standard Edit keyboard gestures
6.9 Quitting a CAPI/Cocoa application
6.10 Platforms supporting dynamic library delivery
6.12 Examples of delivering Cocoa applications
7 Delivery on Microsoft Windows
7.1 Runtime library requirement
7.3 DOS windows and message logs
7.3.1 Controlling use of a DOS window
7.3.2 Logging debugging messages
7.4 File associations for a Windows application
7.7 Example of delivering a Service
8 Delivery on Linux, FreeBSD, x86/x64 Solaris and Unix
8.1.1 GTK+ libraries on the target machine
8.2.2 Motif on the target machine
8.2.4 X resource names use Lisp symbol names
8.3 LispWorks executable corrupted
8.4 Logging debugging messages
8.6 Products supporting dynamic library delivery
9 Delivery and Internal Systems
9.1.1 Applications defining classes or methods dynamically
9.1.2 Special dispatch functions and templates for them
9.1.2.1 Finding the necessary templates
9.1.2.2 Incorporating the templates into the application
9.1.4 Compression of CLOS metaobjects
9.1.5 Classes, methods, and delivery
9.1.6 Delivery and make-instance initarg checking
9.2 Editors for delivered applications
9.2.1 Form parsing and delivery
9.3.1 Interface geometry depends on Lisp symbol names
9.4 Error handling in delivered applications
9.4.1 Making the application handle errors
9.4.1.1 Handling errors generated by the application
9.4.1.2 Handling errors generated by the Lisp system
9.4.1.3 Providing a fallback handler for uncaught errors
9.4.2 Deleting of condition classes
9.5.1 Foreign Language Interface templates
9.7 Symbol and package issues during delivery
9.8 Throwing symbols and packages out of the application
9.8.5 When to delete and smash packages
9.9 Keeping packages and symbols in the application
9.9.1 Ensuring that packages are kept
9.9.2 Ensuring that symbols are kept
9.10 Coping with intern and find-symbol at runtime
10.1 Debugging errors in the delivery image
10.2 Problems with undefined functions or variables
10.4 REQUIRE was called after delivery time with module ...
10.5 Failed to reserve... error in compacted image
10.6 Memory clashes with other software
10.7 Possible explanations for a frozen image
10.8 Errors when finalizing classes
10.9 Warnings about combinations and templates
10.10 Valid type specifier errors
10.11 Stack frames with the name NIL in simple backtraces
10.12 Blank or obscure lines in simple backtraces
10.13 Nil is not of type hash-table errors
10.14 FLI template needs to be compiled
10.15 Failure to lookup X resources
10.16 Reducing the size of the delivered application
10.17 Debugging with :no-symbol-function-usage
11.1 General strategy for reducing the image size
11.2 User interface to the delivery process
12 Example: Delivering CAPI Othello
12.1.1 Writing a delivery script
12.2 Delivering a standalone image
12.3 Creating a Mac OS X application bundle
12.3.1 Example application bundle delivery script
12.3.2 Alternative application bundle creation code
12.3.3 Further Mac OS X delivery examples
12.4 Command line applications
12.5 Making a smaller delivered image
12.5.1 Increasing the delivery level
13 Efficiency considerations when coding for delivery
13.3 Use of symbols, functions, and classes
13.4 Making references to packages
13.5 Declaring the types of variables used in function calls
13.6 Avoid referencing type names
13.6.1 Referencing types via methods
13.6.2 Referencing types via predicates
13.7 Use of the INTERN and FIND-SYMBOL functions
13.8 Use of the EVAL function and the invocation of uncompiled functions
13.9 User-defined and built-in packages
LispWorks Delivery User Guide - 13 Dec 2011