FunctionPackage: systemToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 10.1
Unrevised from 10.0 to 10.1.
10.0 version


Arguments: symbol &optional env all-declarations

This function returns information about the variable named by symbol in the environment env. env may be an environment object or nil, indicating the null lexical environment.

all-declarations is a boolean which requests a building of the full alist to be provided as the third return value from this function. It is provided in order to reduce consing when its value is nil, since most declarations are ignorable by an implementation and thus it is not necessary to cons the alist every time.

Four values are returned.

  1. The first value returned is one of the following values, providing information about the binding of the variable named by symbol:
  2. The second returned value is a locative cons (a cons whose car and/or cdr may be used as a mutable value). This locative cons is used to provide the local binding of the value (for :evaluation environments) or local compiler structure information (for the two compilation environments). To reduce consing at critical points in the environments implementation, there are a few exceptions where the second value is not a cons representing a locative:
  3. The third returned value is an alist containing information declarations that apply to the bindings of symbol. The keys are symbols that name declaration specifiers (such as dynamic-extent, ignore, type, etc.) and the value is the associated value. This alist may not be complete if the all-declarations argument is not specified or is nil. If this is the case, only those declarations which have been actually stored into the environment object will be present in the alist; in general, if the symbol has no lexical binding and all-declarations is nil, then this third return value will also be nil. If all-declarations is true, then applicable declarations are also be gathered from the global environment. Note: the special declaration has special meaning in the context of variable-information; it never shows up in a declaration list, but instead shows up with the label :special in the first return value.
  4. The fourth returned value is a boolean indicating whether binding is local or global: the value is true if the binding is local, nil if not. (In CLtL-2, this local/global boolean is the second returned value.)

See environments.htm for more information on environments.

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.

Allegro CL version 10.1
Unrevised from 10.0 to 10.1.
10.0 version