Variable | Package: excl | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 10.1 Unrevised from 10.0 to 10.1. 10.0 version

## *required-top-level-bindings*

in releases prior to version 9.0, this variable was named `*cl-default-special-bindings*`. Use of that variable signals a warning (and then does the right things). Code using the old name should be updated to use the new name.

This variable holds an alist associating special variable symbols with forms to evaluate for binding values. When a process first starts execution, the *required-thread-bindings* are established and then the initial-bindings slot is examined for additional bindings to establish for the process. `*required-top-level-bindings*` contains a reasonable default list which establishes a default environment with standard Common Lisp values. The contents of this list may be examined, but if you want to modify it for a particular call to make-process, it is strongly suggested you either modify a copy made with copy-alist, or just cons replacement entries onto the front of the list.

This variable can be set but not bound (see defvar-nonbindable).

A variable should appear as the key (i.e. car) of an entry only once in this list. If a variable is the key of two or more elements, only the first is used and all subsequent elements are ignored.

Samples of the contents of `*required-top-level-bindings*` are shown next. Note that the contents of this list may be changed by patches.

    ((*print-pprint-dispatch* . #<excl::pprint-dispatch-struct @ #x2014a9c2>)
     (excl::*break-on-warnings* . excl::*break-on-warnings*)
     (*break-on-signals* . *break-on-signals*)
     (*random-state* make-random-state nil)
     (*package* find-package :user)
     (*print-simple-array-specialized*)
     (*print-lines*)
     (*print-miser-width* . 40)
     (*print-right-margin*)
     (*print-readably*)
     (*print-gensym* . t)
     (*print-array* . t)
     (*print-case* quote :upcase)
     (*print-circle*)
     (*print-length*)
     (*print-level*)
     (*print-radix*)
     (*print-base* . 10)
     (*print-pretty* system:global-symbol-value '*print-pretty*)
     (*print-escape* . t)
     (*enclose-printer-errors* . *enclose-printer-errors*)
     (*print-nickname* . *print-nickname*)
     (*read-base* . 10)
     (*read-default-float-format* quote single-float)
     (*readtable* copy-readtable nil))

The binding established in this variable are those (typically) needed for an interactive thread. A list of binding (such as this list) should be specified as the initial-bindings ketword argument to tpl:start-interactive-top-level.

A variable should appear as the key (i.e. car) of an entry only once in this list. If a variable is the key of two or more elements, only the first is used and all subsequent elements are ignored.

See Processes and their dynamic environments (both models) in multiprocessing.htm and Setting global variables in initialization files in startup.htm for a discussion of this variable. See also required-top-level-binding, tpl:start-interactive-top-level, `*default-lisp-listener-bindings*`, and required-thread-binding.

Copyright (c) 1998-2022, Franz Inc. Lafayette, CA., USA. All rights reserved.
This page was not revised from the 10.0 page.
Created 2019.8.20.

|  | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 10.1 Unrevised from 10.0 to 10.1. 10.0 version