| Allegro CL version 6.2 Object described on page has changed in 6.2 |
This document is the table of contents for all Allegro CL HTML and PDF essay files (those in the doc/ and doc/cg/subdirectories of the Allegro directory) along with links to the ANSI spec and MOP documentation.
The documents listed in categories (General Information, Language Features, Programming Tools, Common Graphics and the IDE, Add-on Features). An alphabetical listing of the documents (by filename) appears here.
1.0 Aodbc introduction
1.1 Platform-specific information for aodbc
2.0 Implementation notes for aodbc
2.1 Representing characters in databases in aodbc
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 Transactions
8.0 Reference
9.0 Conditions
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 the running image
6.0 Debugging an image build problem or failure
7.0 Use of custom.cl
8.0 Building an image to include patches
9.0 Minimal top levels
9.1 Using the default minimal top-level
9.2 Requiring the normal top-level in a minimal top-level lisp
9.3 Top-level variables
1.0 Allegro CL Modern Mode
1.1 Modern mode background
1.2 ANSI mode problems
1.3 Modern Mode
1.4 A note on support for ANSI mode
2.0 Case implementation in Allegro CL
3.0 readtable-case
4.0 ANSI/Modern code portability
4.1 Package names
4.2 Package definitions
4.3 Creating symbols
4.4 Testing symbols
5.0 Importing ANSI mode code into Modern mode
1.0 Displaying help
1.1 Comprehensive help
1.2 Quick help
2.0 Triggering help
2.1 Triggering help automatically
2.2 Triggering help on request
3.0 Deciding what to provide help on
3.1 Help on the selected window
3.2 Help on the selected data object
4.0 An example of providing help
1.0 The two clipboards in Common Graphics
2.0 The OS clipboard
3.0 The lisp clipboard
4.0 Built-In Cut, Copy, and Paste functionality
5.0 Adding Cut/Copy/Paste commands to a menu-bar
6.0 Viewing the lisp clipboard contents
7.0 Clipboard example
1.0 Coordinate System Unit of Size
2.0 Coordinate System Location of Origin
1.0 What to draw on
1.1 Drawing on windows in general
1.2 Considerations for drawing on particular kinds of windows
1.3 Drawing on the screen
1.4 Drawing on bitmap-streams
1.5 Drawing on printers
2.0 Coordinates
3.0 Drawing functions
3.1 Drawing lines, filling areas, and erasing
3.2 The current drawing style
3.3 Drawing text and fonts
3.4 Drawing pixmaps and icons
4.0 Animation
1.0 When to use icons
2.0 Using a built-in icon
3.0 Assigning an icon to a window title-bar
4.0 Assigning an icon to a control
5.0 Creating an icon
6.0 Drawing an icon
7.0 Assigning an icon to an application
1.0 Introduction to pixmaps
2.0 Using properties
3.0 Pixmap properties
4.0 Creating a pixmap programmatically
5.0 Textures
5.1 Texture properties
5.2 Texture-infos
6.0 Cached pixmaps
7.0 Cached pixmaps
8.0 Outline controls and pixmaps
9.0 Pixmap handle functions
10.0 Converting from .bmp files to lisp code
11.0 Enhancing the IDE with pixmaps
12.0 Mouse cursors
1.0 The Rich Text Interactive Interface
2.0 The Rich Text Programmatic Interface
1.0 The *system* variable
2.0 System configuration
3.0 The app slot
4.0 System start up and shut down
5.0 dumplisp
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
4.1 How to create an 8-bit image which starts the IDE
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 using multiple windowing threads in a Common Graphics application
8.1 Modal CG utility dialogs are not shared between threads
8.2 CG re-entrancy
8.3 Enhanced Break Key functionality
8.4 Debugging Multiple Threads in the IDE
8.5 Using the IDE while user code is busy
9.0 About design considerations for event-driven applications
9.1 Message-handling routines that run for a long time
9.2 Message-handling routines that block
10.0 About the position class
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
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:
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
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 < 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 Tracing function objects
10.2 Trace example
10.3 Tracing setf, :before, and :after methods and internal functions
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
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
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.9.1 Icon files suitable as a value for icon-file
4.10 Installation of your application on Windows using the Install Wizard
4.10.1 Uninstalling an application on Windows
4.11 Testing your application
4.12 Expiration warnings
5.0 generate-executable: a wrapper from generate-application
6.0 Patching your application after delivery
6.1 The Allegro CL patch naming scheme
6.2 Loading Allegro CL patches
6.3 Patches for your application
6.4 Creating patch files in general
6.5 Creating a patch file
6.6 What to do with patch files
6.7 Including application patches in an image at build time
6.8 Superseding a patch
6.9 Withdrawing a patch
6.10 Distributing patches
6.11 Loading patches
1.0 Using An Example Allegro CL Based DLL: fact.dll
2.0 Building the Example DLL: fact.dll
3.0 Building the Companion DXL File: fact.dxl
4.0 Building Your Own Lisp Based DLL
5.0 Deploying Your Lisp Based DLL
6.0 LNKACL DLL Exported Routines
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
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
1.0 Introduction to the Emacs-Lisp interface
1.1 If you are new to Emacs
1.2 Starting Allegro CL as a subprocess of Emacs
1.3 Notation conventions used in this document
1.4 Format of this document
1.5 Previous versions of Emacs
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 encountered an error when loading .emacs
2.1.3 Checking your setup
2.1.4 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
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
1.0 Examples introduction
1.1 Common Graphics and IDE examples
1.2 Allegro CL RPC examples
1.3 The AddCaps application
1.4 AllegroServe examples
1.5 The checklinks tool
1.6 Lisp as a DLL example
1.7 jLinker examples
1.8 The simple network paging protocol example
1.9 Encapsulating streams examples
1.10 The skeleton test application
1.11 An example using Telnet to communicate with a running Lisp process
1.12 Lisp as a Unix Shared Library
1.13 XML-RPC examples
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/.dylib/.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/dylib/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 Allegro CL Functionality
1.7.1 Linking to Allegro CL shared library on Mac OS X
1.7.2 Delaying linking the Allegro CL shared-library until runtime
1.8 Releasing the heap when calling foreign functions
2.0 The 4.3.x UNIX model for foreign functions
3.0 The Allegro CL 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
I Building shared libraries on Mac OS X
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
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
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 using cl:room
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
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
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 External-Formats in 8-bit Lisp.
3.4 Older Allegro CL External-Format Compatibility
4.0 Foreign-Functions
5.0 External formats and locales
5.1 The initial locale when Allegro CL starts up
5.2 Locales in applications
6.0 Localization support in Allegro CL
6.1 Introduction to locales
6.2 Locale Definition
6.3 Locale Attribute Accessors
7.0 String collation with international characters
8.0 Earlier International Allegro CL Compatibility
8.1 EUC Module
8.2 :mode Option Removal
A Functions, Symbols, Variables Documentation
A.1 External-Format API
B #\newline Discussion
C 8-bit images
D Links to Unicode Reports
1.0 The IMAP interface
1.1 IMAP facility package
1.2 Mailboxes
1.3 Messages
1.4 Flags
1.5 Connecting to the server
1.6 Mailbox manipulation
1.7 Message manipulation
1.8 Mailbox Accessors
1.9 Fetching a Letter
1.10 Searching for Messages
1.11 Examples
1.11.1 Connect to the imap server on the machine holding the email
1.11.2 Select the inbox, that's where the incoming mail arrives
1.11.3 Check how many messages are in the mailbox
2.0 The Pop interface
3.0 Conditions signaled by the IMAP and Pop interfaces
4.0 The SMTP interface (used for sending mail)
1.0 Implementation introduction
2.0 Data types
2.1 Array sizes
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, cl:apropos
5.1.1 A comment about with-open-file and timing hazards
5.2 cl:directory
5.3 Reader macros and cl:*features*
5.3.1 Features present or missing from *features* in Allegro CL
5.4 cl:random
5.5 cl:make-hash-table
5.6 cl:make-array
5.7 cl:defpackage
5.8 cl:file-length
5.9 Functionality for quickly writing and reading floats
5.10 cl:provide and cl:require
5.11 Speed and pretty printing
5.12 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 (fspecs)
8.0 Some low-level functionality
8.1 Windows: GetWinMainArgs2
9.0 Conformance with the ANSI specification
1.0 The inspector introduction
2.0 An example of inspect
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 and supported Operating System versions
1.4 Warning to Linux (x86) and FreeBSD users about long filenames on CD
2.0 Preinstallation Steps
2.1 Increasing the default stack size on Dec Alpha and Mac OS X machines
2.2 Preparing for AllegroStore installation
2.3 You can leave Allegro CL 6.1 installed
3.0 Installation steps
4.0 Notes for installation of Allegro CL on UNIX
4.1 Testing that the installation of Allegro CL on Unix was successful
4.2 What to do if bunzip2 won't execute on the CD
5.0 Installation on Windows
5.1 Testing that the installation of Allegro CL on Windows was successful
6.0 Installation instructions and information for AllegroStore users
6.1 Pre-Installation notes for AllegroStore users
6.2 Compatibility notes for AllegroStore users
6.3 Installing ObjectStore
6.3.1 Step 1: Copying and unencrypting the ObjectStore distribution
6.3.2 Step 2: Install ObjectStore
6.3.3 Step 3: Set up the individual Runtime environments
6.3.4 Step 4: Build an AllegroStore Lisp image [optional]
6.3.5 Step 5: Test the AllegroStore installation
7.0 Installing Emacs
8.0 Installing OpenSSL libraries on Windows
9.0 Other Allegro CL products
10.0 Other material on the CD
11.0 Getting a license file
12.0 Installing source code
13.0 The Trial Edition
13.1 Information on the Trial license
13.2 Information on installing the Trial edition
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
4.6 Updating the bundle file
5.0 Reporting bugs
5.1 Where to report bugs and send questions
6.0 Contacting Franz Inc. for sales, licensing assistance, and information
1.0 Introduction
2.0 Lexical items
3.0 Types
4.0 Files
5.0 def-java-class
6.0 def-java-method
7.0 Special Symbols
8.0 Special Forms
9.0 Functions
10.0 macros
11.0 package
12.0 import
13.0 def-java-macro
14.0 Using the jil compiler
15.0 Test suite example
16.0 TicTacToe example
1.0 Introduction
2.0 Creating a Dynamically Linked Lisp/Java Application
2.1 Calling Java
2.1.1 Two Calling Models
2.1.2 Data Types and Conversions
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
2.9 Re-entrancy
2.10 jLinker Connect Issues
2.11 Calling Methods of Inner Classes
3.0 Installation
3.1 Files Involved in Installing jLinker
3.2 Dedicated Java Server
3.3 Peer-to-Peer Interaction
3.4 One Lisp and Several Java Client/Server connections
4.0 A Complete Code Example
5.0 Packaging Lisp applications as Java beans and servlets
5.1 The jLinker Java Bean API
5.2 The jLinker Servlet API
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
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
1.0 Introduction
2.0 The fasl reader/writer
3.0 Miscellaneous extensions
4.0 Creating and using pll files
5.0 MD5 support
6.0 Base64 support
7.0 Support for encryption
7.1 Support for Blowfish encryption
7.2 Support for rsa encryption
1.0 Multiprocessing introduction
1.1 Data types added to standard Common Lisp
1.2 stack-groups (non :os-threads model only)
2.0 Wide binding (both models)
2.1 The bindstack index
3.0 Processes and profiling (both models)
4.0 :os-threads model thread-related variables and functions
4.1 Threads and processes in the :os-threads model
4.2 The :os-threads model and foreign functions (:os-threads model)
4.3 Waiting for input from a stream (:os-threads model)
4.3.1 mp:process-wait vs mp:wait-for-input-available (:os-threads model)
5.0 Stack-group variables and functions in the non :os-threads model
5.1 Stack-group programming example (non :os-threads model)
5.2 Processes in the non :os-threads model
5.3 Waiting for input from a stream (non :os-threads model)
5.3.1 mp:process-wait vs mp:wait-for-input-available (non :os-threads model)
6.0 Process functions and variables (both models)
7.0 Processes and their dynamic environments (both models)
7.1 Lisp listeners and special variable bindings
8.0 Gates (both models)
9.0 Queues (both models)
10.0 Process locks (both models)
11.0 A simple example of multiprocessing
1.0 Introduction
2.0 Sample Programs
3.0 System Structure
3.1 Basic Concepts
3.2 Important CLOS Issues for an Allegro CL 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
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
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
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 Miscellaneous pathname functions
7.0 Logical pathnames
7.1 Logical pathnames: introduction
7.2 Logical pathnames: general implementation details
7.3 Logical pathnames: some points to note
7.4 Details of cl:load-logical-pathname-translations
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
1.0 Introduction
2.0 All pre-6.2 Lisp compiled files must be recompiled (old fasl files will not load)
3.0 Release Notes for installation
4.0 Release notes for specific platforms
4.1 Compaq Alpha running Tru64: default stack size should be increased
4.2 Mac OS X notes
4.2.1 Increasing stack size on Mac OS X
4.2.2 Building shared libraries on Mac OS X
4.3 Heap start locations
5.0 Release Notes for the base Lisp
5.1 New features in the base Lisp
5.2 Non-backward-compatible changes in the base Lisp
5.3 Other changes in the base Lisp
5.4 Base Lisp platform-specific information
6.0 Release Notes for CLIM
7.0 Release Notes for Common Graphics (Windows only)
7.1 Information on avoiding deadlocks in Common Graphics applications
7.2 Non-backward-compatible changes in Common Graphics
7.3 Other changes in Common Graphics
8.0 Release Notes for AllegroStore
8.1 Non-backward-compatible changes in AllegroStore
8.2 Other changes in AllegroStore
9.0 Release notes for Orblink
9.1 Portable Object Adaptor (POA) in Allegro CL 6.2
10.0 Documentation modifications in Allegro CL 6.2
11.0 Availability of CLX for Allegro CL
A cl:rename-file and excl:rename-file-raw
B Common Graphics bug fixes and minor enhancements
1.0 Introduction
1.1 The package and module for RPC
1.2 Security considerations
2.0 A Simple RPC Example
3.0 Connection options, Server Classes, and Port Classes
3.1 Stream Socket Connections
3.2 Datagram Socket Connection
3.3 Shared Memory Connections
3.4 Creating new RPC port and server classes
3.5 Security mixins and subclasses
4.0 The Lisp RPC Programming Interface
4.1 Stream socket connections
4.1.1 Connecting stream sockets
4.1.2 Explicit port interface of stream sockets
4.1.3 Declarative interface of stream sockets
4.1.4 Callback style of stream sockets
4.2 Datagram socket connections
4.2.1 Connecting datagram sockets
4.2.2 Explicit port interface of datagram socket connections
4.2.3 Declarative interface of datagram socket connections
4.2.4 Callback style of datagram socket connections
4.3 Shared Memory Connections (Windows Only)
4.3.1 Making a Shared Memory Connection
4.3.2 Explicit port interface of shared memory connections
4.3.3 Declarative interface of shared memory connections
4.3.4 Callback style of shared memory connections
5.0 Data Representation
5.1 Uniqueness of Remote References
5.2 Argument Conversions
5.3 Operator Conversion
5.4 Data Type Qualifiers
6.0 Error Tags
7.0 Gates
8.0 Examples
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
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 The Allegro CL SSL API
1.0 Source-file recording Introduction
1.1 Functions that implement source file recording
2.0 Redefinition warnings
2.1 Pathname comparison
1.0 The Allegro directory
2.0 Allegro CL Executables: alisp, alisp8, mlisp, mlisp8, allegro, allegro-ansi
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
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 Blocking behavior in simple-streams
5.2.2 The endian-swap keyword argument to read-vector and write-vector
5.3 Force-output and finish-output policy
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
10.6 Details of stream-line-column and charpos
11.0 The simple-stream class hierarchy illustrated
12.0 Encapsulating Streams
12.1 Encapsulation terminology
12.2 Strategy descriptions necessary for encapsulation
12.3 Valid connections between octet-oriented and character-oriented streams
12.4 Examples of stream encapsulations
12.4.1 Rot13b: An Example of Bidirectional Stream Encapsulation
12.4.2 Rot13s: An example of buffer-oriented stream encapsulation
12.4.3 Base64: an example of binary stream encapsulation
12.5 Encapsulating composing external-formats
1.0 The tester module API
1.1 Test Harness Variables
1.2 Test Harness Macros
1.3 Examples
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 Automatic timing information
10.0 Top-level variables
11.0 Adding new top-level commands
1.0 How it Works
2.0 An Example: A Shared Library that computes factorials
2.1 fact.c details
2.2 fact.cl details
2.3 ftest.c details
3.0 Compilation and Delivery
4.0 Additional Tips
5.0 OS Specific Notes
5.1 Notes on Lisp as a shared library on Sun Solaris 32 bit
5.2 Notes on Lisp as a shared library on Sun Solaris 64 bit
5.3 Notes on Lisp as a shared library on Alpha Unix 32 bit
5.4 Notes on Lisp as a shared library on Alpha Unix 64 bit
5.5 Notes on Lisp as a shared library on SGI IRIX
5.6 Notes on Lisp as a shared library on HP-UX 10.20 (32-bit only)
5.7 Notes on Lisp as a shared library on HP-UX 11.0 (64-bit only)
5.8 Notes on Lisp as a shared library on Mac OS X
5.9 Notes on Lisp as a shared library on FreeBSD
5.10 Notes on Lisp as a shared library on AIX
5.11 Notes on Lisp as a shared library on Linux
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
1.0 Introduction
2.0 All Lisp files must be recompiled (old fasl files will not load)
3.0 Release Notes for installation
4.0 Release notes for specific platforms
4.1 Note on Windows XP
4.2 Compaq Alpha running Tru64: default stack size should be increased
4.3 Heap start locations
5.0 Release Notes for the base Lisp
5.1 New features in the base Lisp
5.2 Non-backward-compatible changes in the base Lisp
5.3 Other changes in the base Lisp
5.4 Base Lisp platform-specific information
5.4.1 HP
5.4.2 LINUX Redhat
5.4.3 SPARC
5.4.4 MacOS X
5.4.5 Compaq ALPHA
6.0 Release Notes for CLIM
7.0 Release Notes for Common Graphics (Windows only)
7.1 Information on avoiding deadlocks in Common Graphics applications
7.2 Non-backward-compatible changes in Common Graphics
7.3 Other changes in Common Graphics
8.0 Release Notes for AllegroStore
8.1 Non-backward-compatible changes in AllegroStore
8.2 Other changes in AllegroStore
8.2.1 Special note for users on Linux
9.0 Release notes for Orblink
10.0 Availability of CLX for Allegro CL
A Changes to the startup sequence for the Integrated Development Environment (IDE) on Windows
B Common Graphics bug fixes and minor enhancements
Copyright (c) 1998-2002, Franz Inc. Oakland, CA., USA. All rights reserved.
Documentation for Allegro CL version 6.2. This page was not revised from the 6.1 page.
Created 2002.2.26.
| Allegro CL version 6.2 Object described on page has changed in 6.2 |