NextPrevTopIndex

Contents

1 Introduction

1.1 About this manual

1.2 The LispWorks manuals

1.3 Other documentation

1.4 Notation and conventions

2 Starting LispWorks

2.1 The usual way to start LispWorks

2.2 Passing arguments to LispWorks

2.2.1 Saving a new image

2.2.2 Saving a console mode image

2.2.3 Bypassing initialization files

2.3 Other command line options

2.4 Starting the Common LispWorks Graphical IDE

2.5 Quitting LispWorks

3 The Debugger

3.1 Entering the TTY debugger

3.2 Simple use of the TTY debugger

3.3 The stack in the debugger

3.4 TTY debugger commands

3.4.1 Backtracing

3.4.2 Moving around the stack

3.4.3 Miscellaneous commands

3.4.4 Leaving the debugger

3.4.5 Example TTY session

3.5 Debugger control variables

4 The TTY Inspector

4.1 Describe

4.2 Inspect

4.3 Inspection modes

4.3.1 Hash table inspection modes

5 The Trace Facility

5.1 Simple tracing

5.2 Tracing options

5.2.1 Evaluating forms on entry to and exit from a traced function

5.2.2 Evaluating forms without printing results

5.2.3 Using the debugger when tracing

5.2.4 Entering stepping mode

5.2.5 Configuring function entry and exit information

5.2.6 Directing trace output

5.2.7 Restricting tracing

5.2.8 Storing the memory allocation made during a function call

5.2.9 Tracing functions from inside other functions

5.3 Example

5.4 Tracing methods

5.5 Trace variables

6 The Advice Facility

6.1 Combining the advice

6.2 Removing advice

6.3 Advice for macros and methods

6.4 Example

6.5 Advice functions and macros

7 Dspecs: Tools for Handling Definitions

7.1 Dspecs

7.2 Forms of dspecs

7.2.1 Canonical dspecs

7.3 Dspec namespaces

7.3.1 Dspec handlers

7.3.2 Dspec aliases

7.4 Types of relations between definitions

7.4.1 Functionally equivalent definers

7.4.2 Grouping subdefinitions together

7.4.3 Distributed definitions

7.5 Details of dspec classes and aliases

7.5.1 CLOS dspec classes

7.5.2 Part Classes

7.5.3 Foreign callable dspecs

7.6 Subfunction dspecs

7.7 Tracking definitions

7.7.1 Locations

7.7.2 Recording definitions and redefinition checking

7.8 Finding locations

7.9 Users of location information

7.9.1 Finding definitions in the LispWorks editor

7.9.2 The editor's implicit form parser

7.9.3 Reusing form parsers

8 Action Lists

8.1 Defining and undefining action lists

8.2 Exception handling variables

8.3 Other variables

8.4 Diagnostic utilities

8.5 Examples

8.6 Standard Action Lists

9 The Compiler

9.1 Compiling a function

9.2 Compiling a source file

9.3 How the compiler works

9.4 Compiler control

9.5 Declare, proclaim, and declaim

9.5.1 Naming conventions

9.6 Optimizing your code

9.6.1 Fast 32bit arithmetic

9.6.1.1 Optimized and unoptimized INT32 code

9.6.1.2 The INT32 API

9.6.1.3 INT32 Optimization

9.7 Compiler parameters affecting LispWorks

10 Storage Management

10.1 Introduction

10.2 Generations and segments

10.3 Allocation of objects

10.3.1 Allocation of static objects

10.3.2 Allocation in different generations

10.4 Mark and sweep

10.5 Promotion

10.6 Garbage collection strategy

10.7 Overflow

10.8 Behavior of generation 1

10.9 Behavior of generation 2

10.10 Forcing expansion

10.11 Controlling Fragmentation

10.12 Timing the garbage collector

10.13 Summary of garbage collection symbols

10.13.1 Determining storage usage

10.13.2 Allocating in specific generations

10.13.3 Controlling a specific generation

10.13.4 Reducing image size

10.13.5 Controlling the garbage collector

10.13.6 Garbage collection of foreign objects

10.13.7 Using special actions

10.13.8 Mapping across all objects

11 The Profiler

11.1 What the profiler does

11.2 Setting up the profiler

11.3 Running the profiler

11.4 Interpretation of profiling results

11.5 Profiling pitfalls

11.6 Profiling and garbage collection

12 Simple Customization of LispWorks

12.1 Customizing the editor

12.1.1 Controlling appearance of found definitions

12.1.2 Specifying the number of editor windows

12.1.3 Binding commands to keystrokes

12.2 Finding source code

12.3 Using ! for :redo

12.4 Customizing LispWorks for use with your own code

12.4.1 Preloading selected modules

12.4.2 Creating packages

12.5 Configuring the printer

12.5.1 PPD file details

13 The Metaobject Protocol

13.1 Metaobject features incompatible with AMOP

13.1.1 Instance Structure Protocol

13.1.2 Method Metaobjects

13.1.3 Method Lambdas

13.1.4 Method Functions

13.1.5 EQL specializers

13.1.6 Generic Function Invocation Protocol

13.1.7 Method combinations

13.1.8 Inheritance Structure of Metaobject Classes

13.2 Common problems when using the MOP

13.2.1 Inheritance across metaclasses

13.2.2 Accessors not using structure instance protocol

13.2.3 The MOP in delivered images

13.3 Implementation of virtual slots

14 Multiprocessing

14.1 Introduction to processes

14.2 The process programming interface

14.2.1 Creating a process

14.2.2 Finding out about processes

14.2.3 Process Priorities

14.2.4 Interrupting a process

14.2.5 Multiprocessing

14.2.5.1 Starting multiprocessing interactively

14.2.5.2 Multiprocessing on startup

14.2.5.3 Running your own process on startup

14.2.6 Returning a value from another process

14.2.7 Example

14.3 Locks

14.4 Native threads and foreign code

14.4.1 Native threads on Windows

14.4.2 Native threads on Mac OS X

14.4.3 Native threads on Linux and other UNIX platforms

14.5 Example

15 Common Defsystem

15.1 Introduction

15.2 Defining a system

15.2.1 DEFSYSTEM syntax

15.2.2 DEFSYSTEM options

15.2.3 DEFSYSTEM members

15.2.4 DEFSYSTEM rules

15.2.5 Examples

16 The Parser Generator

16.1 Introduction

16.2 Grammar rules

16.2.1 Example

16.2.2 Resolving ambiguities

16.3 Functions defined by defparser

16.4 Error handling

16.5 Interface to lexical analyzer

16.6 Example

17 Dynamic Data Exchange

17.1 Introduction

17.1.1 Types of transaction

17.1.2 Conversations, servers, topics, and items

17.1.3 Advise loops

17.1.4 Execute transactions

17.2 Client interface

17.2.1 Opening and closing conversations

17.2.2 Automatically managed conversations

17.2.3 Advise loops

17.2.4 Request and poke transactions

17.2.5 Execute transactions

17.3 Server interface

17.3.1 Starting a DDE server

17.3.2 Handling poke and request transactions

17.3.3 Topics

17.3.3.1 General topics

17.3.3.2 Dispatching topics

17.3.3.3 The system topic

18 Common SQL

18.1 Introduction

18.1.1 Overview

18.1.2 Supported databases

18.2 Initialization

18.2.1 SQL interface

18.2.2 Database classes

18.2.3 Initialization functions and variables

18.2.4 Database libraries

18.2.5 Database connection and disconnection

18.2.5.1 Connection example

18.3 Functional interface

18.3.1 Functional Data Manipulation Language (FDML)

18.3.1.1 Querying

18.3.1.2 Modification

18.3.1.3 Caching of table queries

18.3.1.4 Transaction handling

18.3.1.5 Iteration

18.3.1.6 Specifying SQL directly

18.3.1.7 Building vendor-specific SQL

18.3.1.8 Working with date fields

18.3.2 Functional Data Definition Language (FDDL)

18.3.2.1 Querying the schema

18.3.2.2 FDDL Querying example

18.3.2.3 Modification

18.4 Object oriented interface

18.4.1 Object oriented/relational model

18.4.2 Object-Oriented Data Definition Language (OODDL)

18.4.2.1 Example View Class definition

18.4.3 Object-Oriented Data Manipulation Language (OODML)

18.4.3.1 Examples

18.4.3.2 Iteration

18.5 Symbolic SQL syntax

18.5.1 The "[...]" Syntax

18.5.1.1 Enclosing database identifiers

18.5.1.2 SQL strings representing symbolic expressions

18.5.1.3 Calling database functions

18.5.1.4 Enclosing literal SQL

18.5.2 Programmatic interface

18.5.2.1 Examples

18.5.3 Utilities

18.6 SQL I/O recording

18.7 Error handling in Common SQL

18.7.1 SQL condition classes

18.7.2 Database error accessors

19 User Defined Streams

19.1 Introduction

19.2 An illustrative example of user defined streams

19.2.1 Defining a new stream class

19.2.2 Recognizing the stream element type

19.2.3 Stream directionality

19.2.4 Stream input

19.2.5 Stream output

19.2.6 Instantiating the stream

20 Socket Stream SSL interface

20.1 Creating a stream with SSL

20.2 SSL-CTX and SSL objects

20.3 OPENSSL interface

20.3.1 OPENSSL constants

20.3.2 Naming conventions for direct OPENSSL calls

20.3.2.1 Mapping C names to Lisp names

20.3.2.2 Mapping Lisp names to C names

20.3.3 Direct calls to OPENSSL

20.4 Socket Stream SSL keyword arguments

20.5 Explictly attaching SSL

20.6 Dealing with SSL objects explictly

20.7 Initialization

20.8 Obtaining and installing the OPENSSL library

20.8.1 Installing the OPENSSL library on Solaris

20.8.2 Location of OPENSSL

20.9 Errors in SSL

21 Internationalization

21.1 Introduction

21.2 Character and String types

21.2.1 Character types

21.2.2 Character Syntax

21.2.3 String types

21.3 String accessors

21.4 String Construction

21.4.1 Default string construction

21.4.2 String construction with known type

21.4.3 Controlling string construction

21.5 External Formats

21.6 External Formats and File Streams

21.6.1 Using complete external formats

21.6.2 Guessing the external format

21.6.3 External formats and stream-element-type

21.6.4 External formats and the LispWorks Editor

21.7 External Formats and the Foreign Language Interface

22 LispWorks' Operating Environment

22.1 The Operating System

22.2 Site Name

22.3 The Lisp Image

22.4 The Command Line

22.4.1 Command Line Arguments

22.5 Address Space and Image Size

22.5.1 Size of real memory

22.5.2 Layout of memory

22.6 Exit status

22.7 User Preferences

22.7.1 Location of persistant settings

22.7.2 Accessing persistant settings

22.7.3 Example using user preferences

22.8 Special Folders

Index

 


LispWorks User Guide - 8 Apr 2005

NextPrevTopIndex