Next Prev Top Index

Contents

1 Introduction

1.1 What does Delivery do?

1.2 What do you get with Delivery?

1.2.1 Programming libraries and facility support code

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.4.5 Security issues

1.4.6 Libraries

1.4.7 Error handling

1.4.8 Troubleshooting

1.4.9 Examples

1.5 Runtime licensing on UNIX

1.5.1 Protection of the delivery product on UNIX

1.5.2 Protection of the delivered image on UNIX

1.5.3 Unprotected run-time applications on UNIX

1.5.4 Expiration of unprotected run-time applications on UNIX

2 A Short Delivery Example

2.1 Developing the program

2.2 Delivering the program

2.2.1 Further example

3 Writing Code Suitable for Delivery

3.1 Basic considerations when coding for delivery

3.2 Efficiency considerations when coding for delivery

3.2.1 Use of modules

3.2.2 Loading code at runtime

3.2.3 Use of symbols, functions, and classes

3.2.4 Making references to packages

3.2.5 Declaring the types of variables used in function calls

3.2.6 Use of TYPEP, TYPECASE and SUBTYPEP for type discrimination

3.2.7 Use of CLOS

3.2.8 Use of the INTERN and FIND-SYMBOL functions

3.2.9 Use of the EVAL function and the invocation of uncompiled functions

3.2.10 User-defined and built-in packages

4 Delivering your Application

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 How to deliver a standalone version of your application

4.4 How to deliver a smaller and faster application

4.4.1 Making the image smaller

4.5 How Delivery makes an image smaller

4.5.1 Garbage collecting the image

4.5.2 Shaking the image

4.6 Additional steps after delivery level 5

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 Delivering the application

5.1.3.1 Directing the behavior of the treeshaker and garbage collector

5.1.3.2 Classes and structures

5.1.3.3 Symbols, functions, and packages

5.1.3.4 LispWorks environment

5.1.3.5 CLOS metaclass compression

5.1.3.6 Input and output

5.1.3.7 Dynamic code

5.1.3.8 Numbers

5.1.3.9 Conditions deletion

5.2 Alphabetical list of DELIVER keywords

6 Delivery and Internal Systems

6.1 Delivery and CLOS

6.1.1 Applications defining classes or methods dynamically

6.1.2 User-defined method combinations

6.1.2.1 Finding the necessary method combination templates

6.1.2.2 Incorporating the templates into the application

6.1.3 Compression of CLOS metaobjects

6.1.4 Classes, methods, and delivery

6.2 Editors for delivered applications

6.2.1 Editor command groups

6.3 Error handling in delivered applications

6.3.1 Making the application handle errors

6.3.1.1 Handling errors generated by the application

6.3.1.2 Handling errors generated by the Lisp system

6.3.2 Deleting of condition classes.

6.4 Foreign Language Interface templates.

6.5 Modules

6.6 Symbol and package issues during delivery

6.7 Throwing symbols and packages out of the application

6.7.1 Deleting packages

6.7.2 How to delete packages

6.7.3 Smashing packages

6.7.4 How to smash packages

6.7.5 When to delete and smash packages

6.8 Keeping packages and symbols in the application

6.8.1 Making sure that packages are kept

6.8.2 Making sure that symbols are kept

6.9 Coping with INTERN and FIND-SYMBOL at runtime

6.10 SYMBOL-NAME comparison

7 Troubleshooting

7.1 Debugging errors in the delivery image

7.2 Problems with undefined functions or variables

7.3 Failure to find a class

7.4 Possible explanations for a frozen image

7.5 Errors when finalizing classes

7.6 Warnings about combinations and templates

7.7 VALID TYPE SPECIFIER errors

7.8 Stack frames with the name NIL in simple backtraces

7.9 Blank or obscure lines in simple backtraces

7.10 NIL IS NOT OF TYPE HASH-TABLE errors

7.11 Trying to construct a constructor

7.12 Reducing the size of the delivered application

7.13 Interrogate-Symbols

8 User Actions in Delivery

8.1 Generat strategy for reducing the image size

8.2 User interface to the delivery process

9 Delivering CAPI Othello

9.1 Preparing for delivery

9.1.1 Writing a delivery script

9.2 Delivering a standalone image

9.3 Making a smaller delivered image

9.3.1 Increasing the delivery level

Index

LispWorks Delivery User Guide - 11 Dec 2001

Next Prev Top Index