Table of Contents

The document introduction.htm provides an overview of the Allegro CL documentation with links to all major documents and index.htm is the index.

This document is the table of contents for all Allegro CL HTML essay files (those in the doc/ subdirectory of the Allegro directory).

The documents are:

1 Allegro Odbc (aodbc.htm)
2 Building Images (building-images.htm)
3 Allegro CL Case Modes (case.htm)
4 Common Graphics Integrated Development Environment (cgide.htm)
5 Compiling (compiling.htm)
6 Allegro Composer (composer.htm)
7 Cross Reference Facility (cross-reference.htm)
8 Debugging (debugging.htm)
9 Defsystem (defsystem.htm)
10 Delivering Applications (delivery.htm)
11 The Domain Naming System Utility (dns.htm)
12 Dumplisp (dumplisp.htm)
13 The Emacs-Lisp Interface (eli.htm)
14 Errata in distributed Allegro CL 6.0 documentation (errata.htm)
15 Errors (errors.htm)
16 Foreign Function Interface (foreign-functions.htm)
17 Foreign Types (ftype.htm)
18 Fwrapping and Advice (fwrappers-and-advice.htm)
19 Garbage Collection (gc.htm)
20 Gray Streams in Allegro CL (gray-streams.htm)
21 International Character Support in Allegro CL (iacl.htm)
22 Implementation (implementation.htm)
23 Inspector (inspector.htm)
24 Installation of Allegro CL and related products (installation.htm)
25 Introduction to the Allegro CL Documentation (introduction.htm)
26 jLinker - A Dynamic Link between Lisp and Java (jlinker.htm)
27 Loading (loading.htm)
28 User-defined main() (main.htm)
29 Miscellaneous Functionality (miscellaneous.htm)
30 Multiprocessing (multiprocessing.htm)
31 OLE Interface (ole.htm)
32 Operating System Interface (os-interface.htm)
33 Packages (packages.htm)
34 Pathnames (pathnames.htm)
35 Lisp as an Internet Browser Plugin (plugin.htm)
36 Profiling (profiling.htm)
37 Regular Expression API (regexp.htm)
38 Release Notes for Allegro CL 6.0 (release-notes.htm)
39 Allegro CL Runtime (runtime.htm)
40 Lisp-based shared libraries on UNIX and DLL's on Windows (shared-library-and-dll.htm)
41 Allegro CL Socket Library (socket.htm)
42 Source File Recording (source-file-recording.htm)
43 Allegro CL Startup (startup.htm)
44 Streams in Allegro CL (streams.htm)
45 The Allegro CL Test harness (test-harness.htm)
46 The Top Level (top-level.htm)
47 URI support in Allegro CL (uri.htm)

1 Allegro Odbc (aodbc.htm)

1.0 Introduction
   1.1 Platform-specific information
2.0 Implementation notes
3.0 Using ODBC
4.0 ODBC examples
   4.1 A simple interaction
   4.2 Binding input parameters
   4.3 Scanning through rows
5.0 Character input buffers
6.0 Queries
7.0 Reference
8.0 Conditions

2 Building Images (building-images.htm)

1.0 Comparison with excl:dumplisp
2.0 Comparison with excl:generate-application
3.0 The template of a call to build-lisp-image
   3.1 The character size in the resulting image
4.0 Arguments to build-lisp-image 1: defaults inherited from the running image
5.0 Arguments to build-lisp-image 2: defaults not inherited from running image
   5.1 Debugging on UNIX
6.0 Use of custom.cl
7.0 Building an image to include patches
8.0 Minimal top levels
   8.1 Using the default minimal top-level
   8.2 Requiring the normal top-level in a minimal top-level lisp
   8.3 Top-level variables

3 Allegro CL Case Modes (case.htm)

1.0 Introduction to case in Allegro CL
   1.1 The Modes
2.0 readtable-case
3.0 The cost of portability
4.0 Portability
   4.1 Package names
   4.2 Package definitions
   4.3 Creating symbols
   4.4 Testing symbols
5.0 Importing Upper Case code into Lower Case mode

4 Common Graphics Integrated Development Environment (cgide.htm)

1.0 About Common Graphics and IDE documentation
2.0 About Menus and Dialogs in the IDE
3.0 Common Graphics and Simple Streams
4.0 About IDE startup
5.0 About submitting a bug report from a break in the IDE
6.0 About child, parent, and owner windows
7.0 About how to get sample code for creating controls
8.0 About event-handling in the IDE
9.0 About color palettes
10.0 About DDE support
11.0 About the Common Graphics timer facility
12.0 About coordinate systems in Common Graphics
   12.1 Coordinate System Unit of Size
   12.2 Coordinate System Location of Origin
13.0 About Rich Text Editing in Common Graphics
   13.1 The Rich Text Interactive Interface
   13.2 The Rich Text Programmatic Interface
14.0 About MCI support
15.0 About using multiple windowing threads in a CG application
   15.1 Modal CG utility dialogs are not shared between threads
   15.2 CG re-entrancy
   15.3 Enhanced Break Key functionality
   15.4 Debugging Multiple Threads in the IDE
16.0 About the position class

5 Compiling (compiling.htm)

1.0 Lisp images without a compiler
2.0 Compile-file
3.0 No-in-package warning
4.0 Undefined function warning
5.0 EOF encountered error
6.0 Variables which control information printed by compile-file
7.0 File types
8.0 Declarations and optimizations
   8.1 Examining the current settings and their effect
   8.2 Declared fixnums example
   8.3 Argument count checking example
   8.4 Argument type for a specialized function example
   8.5 Bound symbol example
   8.6 Tail merging discussion
   8.7 Changing compiler optimization switch settings
   8.8 Switch can be t or nil meaning always on or always off
9.0 Pointers for choosing speed and safety values
   9.1 Optimizing for fast floating-point operations
   9.2 Supported operations
   9.3 Help with declarations
   9.4 Explain types and calls
   9.5 Explain boxing
   9.6 Explain variables
10.0 Other declarations and optimizations
   10.1 Inline declarations ignored
   10.2 Defstruct accessors
   10.3 Stack consing, avoiding consing using apply, and stack allocation
   10.4 Adding typep-transformers
   10.5 Compiler handling of top-level forms

6 Allegro Composer (composer.htm)

1.0 Introduction
2.0 Customizing and executing Allegro Composer
   2.1 Setting up your system for Allegro Composer
   2.2 Building an image that contains Allegro Composer
   2.3 Starting and stopping Allegro Composer
      2.3.1 Starting Allegro Composer
      2.3.2 Starting Allegro Composer from your .clinit.cl file
      2.3.3 After Allegro Composer starts up
      2.3.4 Stopping Allegro Composer
   2.4 Errors while running Allegro Composer
   2.5 Composer variables
   2.6 Definitions of terms associated with Allegro Composer
3.0 Overview of Composer functionality
   3.1 The big picture
   3.2 The Composer menu
      3.2.1 The Inspect menu item
      3.2.2 The CLOS submenu
      3.2.3 The Xref submenu
      3.2.4 The Profiler submenu
      3.2.5 The Options menu item
      3.2.6 The Other submenu
      3.2.7 The Help submenu
      3.2.8 The Exit Composer/Common Windows menu item
   3.3 Gestures and presentations
      3.3.1 Changing gesture bindings
   3.4 Menus in Allegro Composer
   3.5 Graphs
      3.5.1 Scrolling graphs
      3.5.2 The graph overview window
      3.5.3 The Window menu on a graph window menu bar
      3.5.4 The History menu on a graph window menu bar
      3.5.5 The :menu gesture over a graph node
      3.5.6 The :secondary-menu gesture over a graph node
      3.5.7 The Find Node(s) from Name menu choice
4.0 The debugger in Allegro Composer
   4.1 Displaying a stack backtrace in a window
      4.1.1 The Window menu on a Debugger window menu bar
      4.1.2 The Debugger menu on a Debugger window menu bar
      4.1.3 Menus over frames 1: the :secondary-menu gesture menu
      4.1.4 Menus over frames 2: the :menu gesture menu
      4.1.5 Menus over objects
      4.1.6 The :menu gesture over a local
5.0 The window-based inspector
   5.1 Inspector windows and their menus
      5.1.1 The Window menu on an Inspector window
      5.1.2 The Inspect As menu on an Inspector window
      5.1.3 The History menu on an Inspector window
      5.1.4 Menus over labels and values in an Inspector window
6.0 Composer Browsers
   6.1 CLOS class browsers
   6.2 Cross reference browsers
   6.3 The defsystem browser
   6.4 The Process Browser
      6.4.1 The :menu gesture over a process
7.0 The window interface to the profiler
   7.1 Profiler graphs
A Configuring X windows for Allegro Composer
   A.1 Name and class of Composer tools
   A.2 Resources of tools
   A.3 Specifying resource values in .Xdefaults
   A.4 Reinitializing resources
B Problems starting Allegro Composer
   B.1 Error: there is no process named Connect to Emacs daemon
   B.2 Error: package Composer not found
   B.3 Error: Unknown hostname:

7 Cross Reference Facility (cross-reference.htm)

1.0 Cross reference introduction
   1.1 The cross-reference package
   1.2 The cross-reference database
   1.3 When is the cross-reference information generated?
   1.4 When is xref information in a fasl file added to the database?
   1.5 Things to note about the compiler and macros
2.0 What is in and how to access the xref database
   2.1 Clearing the database
   2.2 General description of query functions and commands
   2.3 The function-name and object arguments
   2.4 File information and the :in-files keyword argument
   2.5 The :in-functions keyword argument
   2.6 The :inverse keyword argument
3.0 A cross-referencer example

8 Debugging (debugging.htm)

1.0 Introduction
2.0 Getting out of the debugger
3.0 Internal functions
4.0 Debugging background processes
5.0 Stack commands
   5.1 :zoom
   5.2 :brief, :moderate, and :verbose modes of :zoom
   5.3 :all t and :all nil modes of :zoom
   5.4 :function t and :function nil modes of :zoom
   5.5 :specials t and :specials nil modes of :zoom
   5.6 :relative t and :relative nil modes of :zoom
   5.7 The :bt command for a quick look at the stack
   5.8 Variables that affect the behavior of :zoom
   5.9 Special handling of certain errors by :zoom
   5.10 :zoom analogs and stack movement commands
   5.11 Commands that hide frames
   5.12 Frame information commands
   5.13 Local variables and evaluation
   5.14 Getting a backtrace programmatically
6.0 Local variables and the debugger
   6.1 Discard local variable information before dumplisp
   6.2 Summary of the discussion of locals
   6.3 What are local variables?
   6.4 How does the compiler treat local variables?
   6.5 What is the difference between using registers and using the stack?
   6.6 Live and dead ranges of local variables
   6.7 Locals and functions in the tail position
   6.8 Example showing live range
   6.9 The debug=1 behavior with locals
   6.10 The behavior with debug=2
   6.11 Problem with debug=1 and debug=2 behavior before a local has a value
   6.12 Why only have good behavior of locals at debug=3?
   6.13 The behavior with debug=3 (and speed less than 3)
   6.14 The behavior with debug=3 and speed=3
   6.15 I compiled with debug=3 but I want to see dead locals anyway
7.0 Break on exit
8.0 :return and :restart
9.0 Ghost frames in backtraces
   9.1 Summary of the ghost frames section
   9.2 What is a ghost frame?
   9.3 What kinds of optimizations cause ghost frames?
   9.4 How does the debugger know about ghost frames?
   9.5 When will the debugger display ghost frames?
   9.6 Can I return from or restart a ghost frame?
   9.7 What do the suspension points (`...') mean in a ghost frame?
   9.8 The ghost frame has no `...'s; are all possible frames displayed?
   9.9 No ghost frames are displayed. Do all functions appear on the stack?
   9.10 Ghost frames in a brief backtrace
   9.11 Can I turn off printing of ghost frames?
   9.12 Can backtraces involving system functions have ghost frames?
   9.13 Ghost frames and Allegro Composer
10.0 The tracer
   10.1 Trace example
   10.2 Tracing setf, :before, and :after methods
11.0 The stepper
   11.1 Turning stepping off
   11.2 Other stepping commands and variables
   11.3 Stepping example
12.0 The Lisp DeBug (ldb) stepper
   12.1 Entering and Exiting the ldb stepper
   12.2 Ldb stepper functional interface
   12.3 Ldb stepping example run

9 Defsystem (defsystem.htm)

1.0 Defsystem introduction
   1.1 Defsystem terminology
2.0 Using Defsystem
3.0 Module-specifications
   3.1 Short form module-specifications
   3.2 Long form module-specifications
4.0 Redefinition of systems
5.0 Predefined operations on systems and defsystem variables
6.0 Extending Defsystem
   6.1 Class hierarchy
   6.2 Defining new classes
7.0 Extending defsystem syntax through shared-initialize methods
   7.1 Defsystem methods that can be specialized
8.0 Defsystem extension examples
   8.1 Example of defining a new system class
   8.2 Example of defining new system operations
   8.3 Example of master and development directories
   8.4 Example of one system definition referencing another

10 Delivering Applications (delivery.htm)

1.0 Delivery introduction
2.0 Definitions
3.0 Developing the application and preparing for delivery
   3.1 A summary of the delivery process
   3.2 Legal and licensing issues
   3.3 Deciding on necessary features
   3.4 Deciding on top-level (user interaction)
   3.5 Packaging the product
   3.6 Including all desired modules
   3.7 Defining the init functionality
   3.8 Specifying the initial value of *package*
   3.9 Setting up logical pathname translations
   3.10 Use of shared libraries (foreign files)
   3.11 CLOS training
      3.11.1 Generic functions, method combination, and discrimination
      3.11.2 Effective methods
      3.11.3 Caches for fast dispatching
      3.11.4 Constructor functions
      3.11.5 How to do CLOS start up optimizations
      3.11.6 make-instance optimization
4.0 Creating the deliverable
   4.1 Resources
   4.2 Defsystem
   4.3 Tuning the application
   4.4 More on the development environment
   4.5 GC parameters and switches
   4.6 GC cursors
   4.7 Allegro Presto
   4.8 Allegro Runtime
   4.9 Windows specific information
   4.10 Installation of your application on Windows using the Install Wizard
   4.11 Testing your application
   4.12 Expiration warnings
5.0 Patching your application after delivery
   5.1 The Allegro CL patch naming scheme
   5.2 Loading Allegro CL patches
   5.3 Patches for your application
   5.4 Creating patch files in general
   5.5 Creating a patch file
   5.6 What to do with patch files
   5.7 Including application patches in an image at build time
   5.8 Superseding a patch
   5.9 Withdrawing a patch
   5.10 Distributing patches
   5.11 Loading patches

11 The Domain Naming System Utility (dns.htm)

1.0 The Allegro CL Domain Naming System Package
2.0 Nameserver
3.0 The DNS API
   3.1 Address queries
   3.2 Inverse queries
   3.3 MX queries
   3.4 Undecoded responses
   3.5 Repeat and timeout

12 Dumplisp (dumplisp.htm)

1.0 Introduction to excl:dumplisp
2.0 Changes from earlier releases
3.0 Finding additional files
4.0 Uses of excl:dumplisp
5.0 excl:dumplisp will fail under some conditions
6.0 [allegro directory]/src/aclstart.cl is the source code for startup
7.0 Creating an application
8.0 Creating a customized image
9.0 When the dumped image starts 1: values of global variables
10.0 When the dumped image starts 2: command-line arguments
11.0 When the dumped image starts 3: reading init files
12.0 When the dumped image starts 4: restart actions
13.0 When the dumped image starts 5: the two restart functions
14.0 The emacs-lisp interface and dumped images
15.0 Dumping a prestoized image
16.0 Standalone image: not supported
17.0 How the dumped image finds loaded library files
18.0 Logical pathnames and the dumped image
19.0 How the dumped image finds its Allegro directory
20.0 How to use the dumped image

13 The Emacs-Lisp Interface (eli.htm)

1.0 Introduction to the Emacs-Lisp interface
   1.1 If you are new to Emacs
   1.2 Notation conventions used in this document
   1.3 Format of this document
   1.4 Previous versions of Emacs
   1.5 Previous versions of the Emacs-Lisp interface
   1.6 What should be in your .emacs file
   1.7 Emacs Documentation
   1.8 Licensing issues and The Free Software Foundation
   1.9 Quirks of the Emacs-Lisp Interface
   1.10 Bug reports and fixes
2.0 Starting the Emacs-Lisp interface
   2.1 Troubleshooting the Emacs-Lisp interface
      2.1.1 Emacs reports that a function defined in the interface is undefined
      2.1.2 Emacs reports that it cannot find a file to load
      2.1.3 Emacs reports that it encountered an error when loading .emacs
      2.1.4 Checking your setup
      2.1.5 Other strange or unexplained behavior
3.0 Running Common Lisp
   3.1 Key bindings in Common Lisp subprocess mode
   3.2 Typing input to Common Lisp
   3.3 Functions and variables for Interacting with a CL subprocess
4.0 Editing Common Lisp Programs
   4.1 Indentation
   4.2 Packages and readtables
   4.3 Syntactic modification of Common Lisp source code
   4.4 Information sharing between Common Lisp and Emacs
   4.5 common-lisp-mode functions and variables
   4.6 definition-mode functions and variables
5.0 Writing and Debugging Common Lisp Programs
   5.1 Finding the definitions of functions
   5.2 Interaction with Allegro Composer
   5.3 Modifying the state of the Common Lisp environment
   5.4 Debugging Common Lisp processing in Emacs
   5.5 Lisp Listeners
   5.6 Miscellaneous programming aids
   5.7 Bug reports
6.0 Shell modes
7.0 Advanced miscellaneous features
   7.1 Emacs hooks
   7.2 The Emacs-Lisp interface and excl:dumplisp
   7.3 Raw mode

14 Errata in distributed Allegro CL 6.0 documentation (errata.htm)

1.0 Errata introduction

15 Errors (errors.htm)

1.0 Errors
   1.1 More on cl:stream-error
2.0 Some common errors
   2.1 An unhandled error occurred during initialization:
   2.2 Attempt to call -name- which is defined as a macro
   2.3 Gc errors
   2.4 Bus errors and segmentation violations
   2.5 Using package [package] results in name conflicts...
3.0 Type errors in sequence functions

16 Foreign Function Interface (foreign-functions.htm)

1.0 Foreign functions introduction
   1.1 Some notation
   1.2 Different versions of Allegro CL load foreign code differently
   1.3 Package information
   1.4 Load foreign code with cl:load
      1.4.1 Foreign File Processing
      1.4.2 Externals must be resolved when the .so/.sl/.dll file is created
      1.4.3 One library file cannot depend on an already loaded library file
      1.4.4 Entry points are updated automatically
      1.4.5 Duplicate entry points are never a problem
      1.4.6 If you modify a so/sl/dll file that has been loaded, you must load the modified file!
   1.5 Foreign code cannot easily be included at installation time
   1.6 Foreign functions and multiprocessing
   1.7 Creating Shared Objects that refer to ACL Functionality
   1.8 Releasing the heap when calling foreign functions
2.0 The 4.3.x UNIX model for foreign functions
3.0 The ACL 3.0.x for Windows model for foreign functions
4.0 The foreign function interface specification
   4.1 Foreign function interface function summary
      4.1.1 A note on foreign addresses
   4.2 def-foreign-call
      4.2.1 def-foreign-call syntax
      4.2.2 def-foreign-call examples
   4.3 def-foreign-variable
      4.3.1 def-foreign-variable syntax
      4.3.2 def-foreign-variable examples
5.0 Conventions for passing arguments
   5.1 Modifying arguments called by address: use arrays
   5.2 Lisp may not see a modification of an argument passed by address
   5.3 Lisp unexpectedly sees a change to an argument passed by address
   5.4 Passing fixnums, bignums, and integers
   5.5 Another example using arrays to pass values
6.0 Passing strings between Lisp and C
   6.1 Passing strings from Lisp to C
   6.2 Special Case: Passing an array of strings from Lisp to C
7.0 Handling signals in foreign code
8.0 Input/output in foreign code
9.0 Using Lisp functions and values from C
   9.1 Accessing Lisp values from C: lisp_value()
   9.2 Calling Lisp functions from C: lisp_call_address() and lisp_call()
   9.3 Calling foreign callables from Lisp
A Foreign Functions on Windows
   A.1 Making a .dll
   A.2 Making a Fortran .dll
   A.3 The Lisp side of foreign functions
   A.4 A complete example
B Building shared libraries on Solaris 2.4 or later
C Building shared libraries on HP-UX 10.20, 11
D Building shared libraries on SGI/IRIX 6.2 or later
E Building shared libraries on Compaq Tru64 4.0 or later
F Building shared libraries on AIX 4.2 or later
G Building shared libraries on Linux
H Building shared libraries on FreeBSD

17 Foreign Types (ftype.htm)

1.0 Foreign types introduction
2.0 The foreign types facility
3.0 Examples
4.0 The Syntax for Foreign Types
5.0 Primitive Types
6.0 Allocation types
7.0 Aligned Pointers
8.0 Bit Fields
9.0 The Programming Interface
10.0 Passing Foreign Objects to Foreign Functions
   10.1 String representation
   10.2 A Quiz

18 Fwrapping and Advice (fwrappers-and-advice.htm)

1.0 The Fwrap Facility
   1.1 Background
2.0 The Def-fwrapper/fwrap Facility
   2.1 Macroexpansion and Compilation of Fwrappers
3.0 Fwrap Examples
   3.1 Simple fwrap example
   3.2 Fwrapper and argument access example
   3.3 Interaction between fwrap and trace
4.0 Modifications Made to Trace
5.0 Replacing advice with fwrappers
6.0 Introduction
   6.1 Advising a function
      6.1.1 Advice of class :before
      6.1.2 Advice of class :around
      6.1.3 Advice of class :after
      6.1.4 More on the position argument
   6.2 Removing advice from a function or macro
   6.3 Utilities associated with advice
   6.4 Examples using advice
   6.5 Advising macros

19 Garbage Collection (gc.htm)

1.0 Garbage collection introduction
   1.1 The garbage collection scheme
   1.2 How newspace is managed with scavenges
   1.3 The system knows the age of objects in newspace
   1.4 Objects that survive long enough are tenured to oldspace
   1.5 Placement of newspace and oldspace: the simple model
   1.6 Oldspace, newspace, and Lisp will grow when necessary
   1.7 The almost former gap problem
2.0 User control over the garbage collector
   2.1 Switches and parameters
   2.2 Triggering a scavenge
   2.3 Triggering a global gc
   2.4 Getting information on memory management
3.0 Tuning the garbage collector
   3.1 How do I find out when scavenges happen?
   3.2 How many bytes are being tenured?
   3.3 When there is a global gc, how many bytes are freed up?
   3.4 How many old areas are there after your application is loaded?
   3.5 Can other things be changed while running?
4.0 Initial sizes of old and new spaces
5.0 System parameters and switches
   5.1 Parameters that control generations and tenuring
   5.2 Parameters that control minimum size
   5.3 Parameters that control how big newly allocated spaces are
   5.4 Gsgc switches
   5.5 Gsgc functions and variables
6.0 Global garbage collection
   6.1 The tenuring macro
7.0 Gc cursors
8.0 Other gc information
9.0 gc errors
   9.1 Storage-condition errors
   9.2 Gsgc failure
10.0 Weak vectors, finalizations, static arrays, etc.
   10.1 Weak arrays and hashtables
   10.2 Finalizations
   10.3 Example of weak vectors and finalizations
   10.4 Static arrays

20 Gray Streams in Allegro CL (gray-streams.htm)

1.0 Introduction to Gray streams in Allegro CL
2.0 Documenting object-oriented protocols
3.0 Stream classes
4.0 Generic functions for character input
5.0 Generic functions for character output
6.0 Generic functions for binary streams
7.0 Functions for efficient input and output of sequences
8.0 Creating streams
9.0 Miscellaneous stream functions

21 International Character Support in Allegro CL (iacl.htm)

1.0 Introduction
2.0 Internal Representation
   2.1 History
   2.2 Unicode
   2.3 Memory Usage
   2.4 Character names
3.0 External formats
   3.1 External-Format Overview
      3.1.1 Basic External-Format Types
      3.1.2 The unicode and fat External-Format Types
      3.1.3 Composed External-Formats
      3.1.4 Defining External-Formats
      3.1.5 Retrieving Existing External-Formats
      3.1.6 External-Format Runtime Mode
   3.2 External-Format Usage
      3.2.1 Streams
      3.2.2 String <-> External-Format Lisp Arrays
   3.3 Older Allegro CL External-Format Compatibility
4.0 Foreign-Functions
5.0 Locales
   5.1 The initial locale when Allegro CL starts up
   5.2 Locales in applications
6.0 Earlier International Allegro CL Compatibility
   6.1 EUC Module
   6.2 :mode Option Removal
A Functions, Symbols, Variables Documentation
   A.1 External-Format API
B #\newline Discussion
C 8-bit images

22 Implementation (implementation.htm)

1.0 Implementation introduction
2.0 Data types
3.0 Characters
4.0 Autoloading
   4.1 Where the autoloaded files are located
   4.2 Common Lisp symbols
   4.3 Major extensions
   4.4 How to load modules
5.0 Miscellaneous implementation details
   5.1 Extensions to cl:make-package, cl:disassemble, cl:open
   5.2 cl:directory
   5.3 Reader macros and cl:*features*
   5.4 cl:random
   5.5 cl:make-hash-table
   5.6 cl:make-array
   5.7 cl:file-length
   5.8 Functionality for quickly writing and reading floats
   5.9 cl:provide and cl:require
   5.10 Speed and pretty printing
   5.11 64 bit Allegro CL Implementations
6.0 Allegro CL and the ANSI CL standard
   6.1 Compatibility with pre-ANSI CLtL-1 in Allegro CL
   6.2 Other package changes and compile-time-too behavior
   6.3 The function data type
   6.4 CLOS and MOP
   6.5 CLOS and MOP conformance
   6.6 CLOS optimization
7.0 Function specs
8.0 Some low-level functionality
   8.1 Windows: GetWinMainArgs2
9.0 Compliance with the ANSI specification

23 Inspector (inspector.htm)

1.0 The inspector introduction
2.0 An example of inspect

24 Installation of Allegro CL and related products (installation.htm)

1.0 Installation introduction
   1.1 Distribution is on two CD's
   1.2 Definitions of some terms used in this document
   1.3 Installation sizes
   1.4 Warning to Linux Redhat 6 and FreeBSD users about long filenames on CD
2.0 Preinstallation Steps
3.0 Installation steps
4.0 Installation of Allegro CL on UNIX
   4.1 What to do if bunzip2 won't execute on the CD
5.0 Installation on Windows
6.0 Installation of ObjectStore
   6.1 Supported Operating System versions for AllegroStore
   6.2 Installing ObjectStore
      6.2.1 Step 1: Copying and unencrypting the ObjectStore distribution
      6.2.2 Step 2: Install ObjectStore
      6.2.3 Step 3: Set up the individual Runtime environments
      6.2.4 Step 4: Build an AllegroStore Lisp image [optional]
      6.2.5 Step 5: Test the AllegroStore installation
7.0 Installing Emacs
8.0 Installing OpenSSL libraries
9.0 Other material on the CD
10.0 Getting a license file
11.0 The Trial Edition
   11.1 Information on the Trial license
   11.2 Information on installing the Trial edition

25 Introduction to the Allegro CL Documentation (introduction.htm)

1.0 Documentation introduction
   1.1 Common Graphics and Integrated Development Environment Documentation
   1.2 ANSI Common Lisp and MetaObject Protocol Documentation
   1.3 Some notation
2.0 The Overview section
   2.1 Allegro CL documentation table of contents
   2.2 Allegro CL documentation: list of overview HTML documents
3.0 The Reference section
4.0 Assistance available on the internet and the World Wide Web
   4.1 The Allegro CL FAQ
   4.2 Patches
   4.3 Further patch information
   4.4 Should you get all patches?
   4.5 What to do with patches when you have downloaded them
5.0 Reporting bugs
   5.1 Where to report bugs and send questions
6.0 Contacting Franz Inc. for sales, licensing assistance, and information

26 jLinker - A Dynamic Link between Lisp and Java (jlinker.htm)

1.0 Introduction
2.0 Creating a Dynamically Linked Lisp/Java Application
   2.1 Calling Java
   2.2 Dynamic Linkage Lisp Reference - The Funcall Model
   2.3 Dynamic Linkage Lisp Reference - The Class Model
   2.4 Dynamic Linkage Java Reference
   2.5 Initialization Functions and Variables
   2.6 Event Handling
      2.6.1 Lightweight Callback to Lisp Methods
      2.6.2 Lisp Functions to Dispatch Java Events
      2.6.3 Implemented Sub-Classes of AWT Event Handlers
   2.7 I18N Issues
   2.8 Java Applets and Servlets
   2.9 Rentrancy
   2.10 jLinker Connect Issues
3.0 Installation
   3.1 Files Involved in Installing jLinker
4.0 Dedicated Java Server
   4.1 Peer-to-Peer Interaction
   4.2 One Lisp and Several Java Client/Server connections
5.0 A Complete Code Example

27 Loading (loading.htm)

1.0 Using the load function
   1.1 EOF encountered error during a load
   1.2 Special utilities for loading applications
2.0 Search lists
   2.1 Search List Structure
   2.2 Search lists variables
   2.3 Search list example
3.0 The Allegro Presto algorithm
   3.1 Comparison to autoloading
   3.2 Improved locality of reference
   3.3 Allegro Presto: basic usage
   3.4 Allegro Presto: advanced usage
   3.5 Libfasl loading
   3.6 What does the libfasl feature apply to?
   3.7 What does the libfasl feature do?
   3.8 When is a stub function fully loaded?
   3.9 When is libfasl loading invoked?
   3.10 What are the costs and advantages of using the libfasl feature?
   3.11 The in-package restriction
   3.12 Affect on users 1: keeping track of files
   3.13 What happens if Lisp cannot find a necessary fasl file?
   3.14 What happens if the file has changed?
   3.15 Affect on users 2: eq-ness of function objects
   3.16 Libfasl and excl:dumplisp
4.0 Loading and case modes

28 User-defined main() (main.htm)

1.0 Introduction
2.0 On UNIX
   2.1 Remarks on main() on Unix
3.0 On Windows
   3.1 Remarks on main() on Windows
A Potential problems with user-defined main() on Linux

29 Miscellaneous Functionality (miscellaneous.htm)

1.0 Introduction
2.0 The fasl reader/writer
3.0 Miscellaneous extensions
4.0 Creating and using pll files
5.0 MD5 support

30 Multiprocessing (multiprocessing.htm)

1.0 Multiprocessing introduction
   1.1 Data types added to standard Common Lisp
   1.2 stack-groups (non :os-threads model only)
2.0 Processes and profiling (both models)
3.0 :os-threads model thread-related variables and functions
   3.1 Threads and processes in the :os-threads model
   3.2 The :os-threads model and foreign functions (:os-threads model)
   3.3 Waiting for input from a stream (:os-threads model)
      3.3.1 mp:process-wait vs mp:wait-for-input-available (:os-threads model)
4.0 Stack-group variables and functions in the non :os-threads model
   4.1 Stack-group programming example (non :os-threads model)
   4.2 Processes in the non :os-threads model
   4.3 Waiting for input from a stream (non :os-threads model)
      4.3.1 mp:process-wait vs mp:wait-for-input-available (non :os-threads model)
5.0 Process functions and variables (both models)
6.0 Processes and their dynamic environments (both models)
   6.1 Lisp listeners and special variable bindings
7.0 Gates (both models)
8.0 Queues (both models)
9.0 Process locks (both models)
10.0 A simple example of multiprocessing

31 OLE Interface (ole.htm)

1.0 Introduction
2.0 Sample Programs
3.0 System Structure
   3.1 Basic Concepts
   3.2 Important CLOS Issues for an ACL OLE Application
   3.3 Special OLE Data Types
   3.4 Language and Locale
   3.5 Interfaces and Objects
   3.6 The Registry
4.0 Writing an Automation Client
   4.1 Dynamic naming
   4.2 Unique ids
   4.3 Classes
   4.4 The Lisp remote-autotool Class
   4.5 Set-up
5.0 Writing a Server
6.0 Defining Interfaces
7.0 Low Level View
   7.1 Class Hierarchies
   7.2 Control Flow

32 Operating System Interface (os-interface.htm)

1.0 Operating-system interface
2.0 Subprocess functions
3.0 Environment functions
4.0 Temporary directory and files
5.0 Accessing command-line arguments
6.0 Polling and setting environment variables

33 Packages (packages.htm)

1.0 Packages introduction
2.0 Hierarchical Packages
   2.1 Relative package names
   2.2 Compatibility with ANSI Common Lisp
   2.3 Package prefixes reserved by Allegro CL
   2.4 New Common Lisp functions
   2.5 The implementation of Hierarchical Packages
   2.6 Testing the Hierarchical Packages Implementation
3.0 Packages in Allegro CL
4.0 Notes on specific packages
5.0 Package nicknames
6.0 Package locking and package definition locking
   6.1 Package locking
   6.2 Package definition locking
   6.3 Implementation packages
   6.4 Package locked errors
   6.5 Locally circumventing package locked errors
   6.6 The packages locked by default
   6.7 Justification for package locking

34 Pathnames (pathnames.htm)

1.0 Unix symbolic links and truenames
2.0 Windows devices
3.0 Parsing Unix pathnames
   3.1 Preprocessing
   3.2 Determining the :directory component
   3.3 Determining the :name component
   3.4 Determining the :type component
   3.5 Anomalies
   3.6 Table of examples
4.0 The directory component of merged pathnames
5.0 Parsing Windows pathnames
6.0 Logical pathnames
   6.1 Logical pathnames: introduction
   6.2 Logical pathnames: general implementation details
   6.3 Logical pathnames: some points to note
   6.4 Details of cl:load-logical-pathname-translations

35 Lisp as an Internet Browser Plugin (plugin.htm)

36 Profiling (profiling.htm)

1.0 Profiler Introduction
2.0 The three profilers: general information
   2.1 The time profiler
   2.2 The space profiler
   2.3 The call-counting profiler
3.0 Invoking the profiler
4.0 Further points, including information on temporary files
   4.1 Profiling error: could not read text section
5.0 Controlling the operation of the profiler
   5.1 Control of data collection
   5.2 Profiling with multiprocessing enabled
   5.3 Closures in profiler output
6.0 Interpreting the results
   6.1 Call-count results
   6.2 Space and time profiler results
   6.3 Examples

37 Regular Expression API (regexp.htm)

38 Release Notes for Allegro CL 6.0 (release-notes.htm)

1.0 Introduction
2.0 Release Notes for installation
3.0 Release Notes for the base Lisp
   3.1 New features in the base Lisp
   3.2 Non-backward-compatible changes in the base Lisp
   3.3 Other changes in the base Lisp
   3.4 Base Lisp platform-specific information
4.0 Release Notes for CLIM
5.0 Release Notes for Common Graphics (Windows only)
   5.1 Non-backward-compatible changes in Common Graphics
   5.2 Other changes in Common Graphics
6.0 Release Notes for AllegroStore
   6.1 Non-backward-compatible changes in AllegroStore
   6.2 Other changes in AllegroStore
      6.2.1 Special note for users on Linux
      6.2.2 Special note for users on Windows
A More on Common Graphics changes to frame-with-single-child
B Common Graphics Classes removed because of changed drawing functionality
C Common Graphics bug fixes and minor enhancements
D AllegroServe: Working with the Apache web server
E 64 bit Allegro CL Implementations

39 Allegro CL Runtime (runtime.htm)

1.0 Allegro Runtime introduction
   1.1 Standard Runtime
   1.2 Dynamic Runtime
   1.3 Partner's Runtime
2.0 Creating runtime applications
3.0 Conditions on distributing Allegro Runtime created applications

40 Lisp-based shared libraries on UNIX and DLL's on Windows (shared-library-and-dll.htm)

41 Allegro CL Socket Library (socket.htm)

1.0 Introduction and background
2.0 Characteristics
3.0 Stream Sockets
   3.1 Connections
   3.2 Host Naming
4.0 Variables
5.0 Functions
6.0 Errors
7.0 Examples
8.0 Secure Socket Layer (SSL)
   8.1 SSL History
   8.2 Secure connections
   8.3 Client/Server
   8.4 Authentication
   8.5 Certificates
   8.6 Installation
   8.7 The Allegro CL SSL API

42 Source File Recording (source-file-recording.htm)

1.0 Source-file recording Introduction
2.0 Redefinition warnings
   2.1 Pathname comparison

43 Allegro CL Startup (startup.htm)

1.0 The Allegro directory
2.0 Allegro CL Executables
3.0 The Allegro CL license file
4.0 Starting Allegro CL
   4.1 Starting on UNIX machines
      4.1.1 Starting on UNIX using a shell script
   4.2 Starting on Windows machines
      4.2.1 Starting Allegro CL on Windows as a Console App
   4.3 The executable, the image, and additional files
   4.4 The executable and image names
   4.5 Argument defaults
5.0 Command line arguments
6.0 Files Lisp must find to start up and files it may need later
   6.1 Files Lisp needs to start up 1: .so (or dll) files built with image
   6.2 Files Lisp needs to start up 2: the Allegro directory
7.0 The start-up message
8.0 Running Lisp as a subprocess of Emacs
   8.1 Starting Lisp as a subprocess of Emacs the first time
   8.2 Starting Lisp within Emacs after the first time
   8.3 What if the Emacs-Lisp interface does not start?
   8.4 Using the IDE with Emacs
9.0 Starting Lisp from a shell
10.0 Start-up problems
11.0 How to exit Lisp
   11.1 How to exit for sure
12.0 What Lisp does when it starts up
13.0 Initialization and the sys:siteinit.cl and [.]clinit.cl files
   13.1 Errors in an initialization file
   13.2 No top-level commands in initialization files
   13.3 Cannot (effectively) set a variable bound by load
   13.4 Starting Allegro Composer from .clinit.cl
14.0 Setting global variables in initialization files
   14.1 Where are the bindings defined?
   14.2 Many bindings are to specific values, not to the variables' actual values
   14.3 How to set the value so a listener sees it?
   14.4 A sample initialization file
15.0 After Lisp starts up
   15.1 The initial prompt
   15.2 Errors
   15.3 What if the system seems to hang?
   15.4 Enough C-c's (on Unix) will always interrupt
   15.5 The Allegro Icon on the system tray will interrupt on Windows
   15.6 Help while running Lisp
16.0 Files that may be looked for on startup and after startup

44 Streams in Allegro CL (streams.htm)

1.0 Simple-stream introduction
2.0 Simple-stream background
   2.1 Problems with Gray streams
   2.2 A new stream hierarchy
3.0 The programming model
   3.1 How to get a simple-stream and how to get a Gray stream
   3.2 Trivial Stream Dispatch
   3.3 Simple-stream Description
4.0 Device Level Functionality
   4.1 Device Interface
5.0 Implementation of Standard Interface Functionality for Simple-Streams
   5.1 Implementation of Common Lisp Functions for Simple-Streams
   5.2 Extended Interface Functionality
      5.2.1 The endian-swap keyword argument to read-vector and write-vector
6.0 Higher Level functions
7.0 Simple-stream Class Hierarchy
8.0 Implementation Strategies
9.0 Control-character Processing
10.0 Device-writing Tips
   10.1 Defining new stream classes
   10.2 Device-open
   10.3 From-scratch device-open
   10.4 Implementation Helpers for device-read and device-write
   10.5 Other Stream Implementation Functions and Macros

45 The Allegro CL Test harness (test-harness.htm)

1.0 The tester module API
   1.1 Test Harness Variables
   1.2 Test Harness Macros
   1.3 Examples

46 The Top Level (top-level.htm)

1.0 Introduction to the Lisp top-level listener
2.0 The prompt
3.0 Commands and expressions
   3.1 Case sensitivity of input
   3.2 Getting help for top-level commands
   3.3 Command and expression history
   3.4 Anomalies with the :history list
4.0 Break levels
   4.1 Commands to manipulate break levels:
5.0 Commands for compiling and loading
   5.1 File arguments are read as strings
6.0 Top-level interaction with multiprocessing
7.0 Commands for killing processes and exiting Lisp
8.0 Miscellaneous top-level commands
9.0 Top-level variables
10.0 Adding new top-level commands

47 URI support in Allegro CL (uri.htm)

1.0 Introduction
2.0 The URI API definition
3.0 Parsing, escape decoding/encoding and the path
4.0 Interning URIs
5.0 Allegro CL implementation notes
6.0 Examples

Copyright (c) 2000, Franz Inc. Berkeley, CA., USA. All rights reserved. Created 2000.10.5.