ToC DocOverview CGDoc RelNotes FAQ Index PermutedIndex
Allegro CL version 11.0

Introduction to the Allegro CL documentation

Allegro CL documentation is regularly updated between releases. This page on the Franz Inc. website ( has links to the latest version of the Allegro CL documentation.


The main page for the index for the Allegro CL documentation is index.html. Every documentation HTML page has a link to the index on the Navigation Bar at the top and bottom. index.html points to index pages for each letter (some letters are combined). There are pages with Common Graphics functionality and pages without Common Graphics functionality.

Permuted Index

The main page for the permuted-index for the Allegro CL documentation is permuted-index.html. Every documentation HTML page has a link to the permuted index on the Navigation Bar at the top and bottom.
permuted-index.html points to index pages for each letter (some letters are combined).

The permuted index is generated from the link text of the index pages. Every word in such link text is indexed. For example, the link to the function build-lisp-image appears under B (for build), L (for lisp) and I (for image). This makes the permuted index a very useful tool for finding information on any topic where you know keywords but do not know which specifically appears in the index or the first letter of the names of the relevant symbols.

The permuted index has entries for each section heading of the essay documentation. Since they are indexed by each word in the heading, finding a section of interest using a keyword in the heading is relatively easy with the permuted index. (The headings are not in the regular index because they mostly start with "a" or "about" or "the" which are not words actually associated with the topic covered.)

Table of Contents

The table of contents of most of the essay documents is in contents.html. Every documentation HTML page has a link to contents.html (labeled ToC) on the Navigation Bars at the top and bottom. The following documents are not included in contents.html: the AllegroServe documentation, debugger-api.html, phtml.html, pxml.html, using-webactions.html, and webactions.html.

1.0 Documentation introduction

The documentation for Allegro CL is online at

The online documentation is arranged into an overview section and a reference section.

Installation information can be found in installation.html.

The release notes can be found in release-notes.html.

The User Guide for the Emacs-Lisp interface is in eli.html.

Every documentation page has a navigation bar at the top and bottom with links to the table of contents, contents.html; the documentation overview (this file); cgide.html, which contains, in its first section, the list of Common Graphics and IDE documentation; the Release Notes, release-notes.html; the Allegro CL FAQ; the index, index.html; and the permuted index, permuted-index.html. When the file referred to is open, the link is disabled and the background color is yellow instead of aqua (you may see different colors, of course).

1.1 Common Graphics and Integrated Development Environment Documentation

The documentation for Common Graphics and the Integrated Development Environment is integrated with the general Allegro CL documentation. Start with cgide.html. The section About Common Graphics and IDE documentation in that document provides a map of CG and IDE documentation.

1.2 ANSI Common Lisp and MetaObject Protocol Documentation

The ANSI specification is reproduced in ANSI Common Lisp (the link is to the initial page). See also Allegro CL and the ANSI CL standard and Compliance with the ANSI specification in implementation.html.

Documentation for the MetaObject Protocol (MOP) is in mop/contents.html (the link is to the initial page). The files in the mop/ subdirectory are an HTML version of the description of the MetaObject Protocol in chapters 5 and 6 of The Art of MetaObject Protocol by G. Koczales, J. des Rivieres, and D. Brobrow. The HTML version was prepared by Howard Stearns and copyrighted by the Elwood Corporation, as described in mop/admin.html.

1.3 Some notation

2.0 The Overview section

2.1 Allegro CL documentation table of contents

The document contents.html is an outline of the Allegro CL documentation in table of contents format. The outline is too large to reasonably be included in this document.

2.2 Allegro CL documentation: list of overview HTML documents

Here is a list of the files that make up the base Allegro CL documentation:

3.0 The Reference section

For Allegro CL-specific functionality, virtually every operator (function, generic function, or macro), every constant and variable, and many classes defined in Allegro CL, other than standard Common Lisp functionality, are described in HTML files called reference files. These files are in the same location as the file you are reading and are named [package-kind.html]


[kind] is one of

There are also files with top-level commands and ide-menus-and-dialogs.

[package] is the home package of the symbol being documented (either its name or a nickname). Some packages have no entries under certain kinds.

Here is a list of the references files. Some things are documented in essay files rather than in individual package/type files. All objects are listed in the index.

4.0 Assistance available on the internet and the World Wide Web

Franz Inc. maintains a World Wide Web home page ( Along with much else, the latest update of the Allegro CL documentation, the latest Allegro CL FAQ, and the latest Allegro CL updates can be found in the support section.

4.1 The Allegro CL FAQ

FAQ stands for Frequently Asked Questions. The Allegro CL FAQ is a document written in question and answer format containing answers to questions often asked by users of Allegro CL and related products. Franz Inc. updates the FAQ regularly.


4.2 Patches and updates

A patch is a file (typically a compiled Lisp file or a shared library file) which either corrects some error in the product or provides some enhancement or new feature. Patches are available from the Franz Inc. web site. (Some patches, particularly those which implement an improvement, an enhancement, or a new feature rather than a bug fix, are restricted to supported customers only.)

See Updating Allegro CL and the update program in the Installation Guide for more information and instructions for updating.

5.0 Reporting bugs

Before reporting a bug, please study this document and the ANSI CL Standard document.

A report that such and such happened is generally of limited value in determining the cause of a problem. It is very important for us to know what happened before the error occurred: what you typed in, what Allegro CL typed out. A verbatim log may be needed. If you are able to localize the bug and reliably duplicate it with a minimal amount of code, it will greatly expedite repairs.

It is much easier to find a bug that is generated when a single isolated function is applied than a bug that is generated somewhere when an enormous application is loaded. Although we are intimately familiar with Allegro CL, you are familiar with your application and the context in which the bug was observed. Context is also important in determining whether the bug is really in Allegro CL or in something that it depends on, such as the operating system.

To this end, we request that your reports to us of bugs or of suspected bugs include the following information. If any of the information is missing, it is likely to delay or complicate our response.

Use dribble-bug as follows. Entering

(excl:dribble-bug filename)

causes implementation and version information to be written to the file specified by filename, and then records the Lisp session in the same file. Exiting Lisp or entering


will close the file after the bug has been exhibited. The following dialog provides a rudimentary template for the kernel of a bug report.

USER(5) (dribble-bug "dribout")
USER(6) ;; Now duplicate your bug . . .
USER(7) (dribble)

It may be that the bug causes failure which prevents getting a dribble transcript showing the bug. We still need the dribble-bug output showing the platform, patches, etc. Get this with

USER(5) (dribble-bug "dribout")
USER(6) (dribble)

print-system-state prints the information that goes in a dribble-bug file. You can use that function to get the information if you wish. In either case, send the contents of the file dribout or the output of print-system-state.

Send bug reports to either the electronic mail or postal address given in Where to report bugs and send questions. We will investigate the report and inform you of its resolution in a timely manner.

As we said before, the dribble-bug log does not capture things printed by the operating system or by operating system utilities. These messages may be important. Please be sure you include them in the message.

5.1 Where to report bugs and send questions

Send problem reports and technical questions of any type by email to

5.2 Core files: when they are useful and what to do with them

Certain kinds of Allegro CL errors/problems cause failure of the Lisp and can result in the dumping of a core file. Sometimes this occurs when unexpected exceptions from the operating system make continued operation impossible. Sometimes it is due to a GC orm stack error. (GC errors are discussed in gc errors in gc.html.) Often you are asked whether you want a core file with a question like:

Would you like to dump core for debugging before exiting(y or n)?

If you answer y, then an attempt will be made to produce what is known as a "core file". Core files are usually produced on Unix and Unix-like systems, they have many different shapes and levels of usefulness. In order to make the best use of time spent and space used in preserving and communicating core dumps to Franz, here are some guidelines to follow when a core is produced:

  1. If possible, find another way: core files are sometimes large, sometimes incomplete, and often it is hard to glean enough information from a core to figure out what went wrong. A better strategy is to either find a reproducible test case which we can replicate in our offices, or else allow us ftp/vpn access to your machine to reproduce the failure.

  2. Send it all: the core file is never complete; it always relies on the original lisp executable (usually called mlisp, mlisp8, alisp, or alisp8, or renamed as your application) and on the "acldll" (which is the Allegro CL shared-library, having either .dll, .so, .sl, or .dylib extensions). It may also rely on a .pll file, which can be found out in a running image by noting the value returned by (excl:pll-file) - a null return means that there is no pll file, and a pathname is the location and name of the .pll file (the pathname should also be sent). Note: Even if you believe that we already have the executable file or the shared-library, or even the .pll, include all of it into the directory that you will send us.

  3. Don't use email: a usable core and its entourage are much too large to send through email; instead, package it up into a file suitable to send via FTP and contact for instructions on how to send it. (Franz Inc. no longer maintains an anonymous FTP server.)

6.0 Contacting Franz Inc. for sales, licensing assistance, and information

Sales and licensing questions should be directed to your account manager. If you are not already a customer (and thus do not yet have an account manager), send email to, or call us (we're in California, USA) at +1 510-452-2000. Please give your email address, phone number, and mailing address. The appropriate Account Manager will contact you.

If you are already a customer, you should have the name and email address of your account manager, but if they are not at hand, use the general ones given above.

General product information is available on our web site, You can get additional information by sending email to, by calling +1 510-452-2000 or by writing to

Franz Inc.
3685 Mount Diablo Blvd, Suite 300
Lafayette, CA 94549, USA

Copyright (c) 2023, Franz Inc. Lafayette, CA., USA. All rights reserved.

ToC DocOverview CGDoc RelNotes FAQ Index PermutedIndex
Allegro CL version 11.0