The cl-environments Reference Manual

This is the cl-environments Reference Manual, version 0.5, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 04:51:50 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 cl-environments

Implements the CLTL2 environment access functionality for implementations which do not provide the functionality to the programmer.

Author

Alexander Gutev

License

MIT

Version

0.5

Dependencies
  • alexandria (system).
  • anaphora (system).
  • optima (system).
  • collectors (system).
  • parse-declarations-1.0 (system).
Source

cl-environments.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


3.1 cl-environments/src

Source

cl-environments.asd.

Parent Component

cl-environments (system).

Child Components

3.2 cl-environments/src/common

Source

cl-environments.asd.

Parent Component

src (module).

Child Components

3.3 cl-environments/src/walker

If Feature

(:not (:or :sbcl :allegro :lispworks))

Dependencies
Source

cl-environments.asd.

Parent Component

src (module).

Child Components

3.4 cl-environments/src/tools

Dependencies
Source

cl-environments.asd.

Parent Component

src (module).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 cl-environments/cl-environments.asd

Source

cl-environments.asd.

Parent Component

cl-environments (system).

ASDF Systems

cl-environments.


4.1.2 cl-environments/src/common/package.lisp

Source

cl-environments.asd.

Parent Component

common (module).

Packages

cl-environments.util.


4.1.3 cl-environments/src/common/let-over-lambda.lisp

Dependency

package.lisp (file).

Source

cl-environments.asd.

Parent Component

common (module).

Public Interface

defmacro! (macro).

Internals

4.1.4 cl-environments/src/common/util.lisp

Dependency

let-over-lambda.lisp (file).

Source

cl-environments.asd.

Parent Component

common (module).

Public Interface
Internals

gensyms (function).


4.1.5 cl-environments/src/common/macro-util.lisp

Dependency

util.lisp (file).

Source

cl-environments.asd.

Parent Component

common (module).

Public Interface

match-state (macro).


4.1.6 cl-environments/src/other/sbcl.lisp

If Feature

:sbcl

Dependency

common (module).

Source

cl-environments.asd.

Parent Component

src (module).

Packages
Public Interface
Internals

4.1.7 cl-environments/src/other/allegro.lisp

If Feature

:allegro

Dependencies
Source

cl-environments.asd.

Parent Component

src (module).


4.1.8 cl-environments/src/other/lispworks.lisp

If Feature

:lispworks

Dependencies
Source

cl-environments.asd.

Parent Component

src (module).


4.1.9 cl-environments/src/walker/package.lisp

Source

cl-environments.asd.

Parent Component

walker (module).


4.1.10 cl-environments/src/walker/util.lisp

Dependency

package.lisp (file).

Source

cl-environments.asd.

Parent Component

walker (module).


4.1.11 cl-environments/src/walker/walker.lisp

Dependency

util.lisp (file).

Source

cl-environments.asd.

Parent Component

walker (module).


4.1.12 cl-environments/src/walker/cl-environments.lisp

Dependency

walker.lisp (file).

Source

cl-environments.asd.

Parent Component

walker (module).


4.1.13 cl-environments/src/walker/environment.lisp

Dependency

cl-environments.lisp (file).

Source

cl-environments.asd.

Parent Component

walker (module).


4.1.14 cl-environments/src/walker/declarations.lisp

Dependency

environment.lisp (file).

Source

cl-environments.asd.

Parent Component

walker (module).


4.1.15 cl-environments/src/walker/lambda.lisp

Dependency

declarations.lisp (file).

Source

cl-environments.asd.

Parent Component

walker (module).


4.1.16 cl-environments/src/walker/let-forms.lisp

Dependency

lambda.lisp (file).

Source

cl-environments.asd.

Parent Component

walker (module).


4.1.17 cl-environments/src/walker/def-forms.lisp

Dependency

let-forms.lisp (file).

Source

cl-environments.asd.

Parent Component

walker (module).


4.1.18 cl-environments/src/walker/special-forms.lisp

Dependency

def-forms.lisp (file).

Source

cl-environments.asd.

Parent Component

walker (module).


4.1.19 cl-environments/src/walker/cltl2-interface.lisp

If Feature

(:not (:or :ccl :cmucl :ecl))

Dependency

special-forms.lisp (file).

Source

cl-environments.asd.

Parent Component

walker (module).


4.1.20 cl-environments/src/walker/augment-environment.lisp

If Feature

(:not (:or :ccl :cmucl :ecl))

Dependencies
Source

cl-environments.asd.

Parent Component

walker (module).


4.1.21 cl-environments/src/walker/cltl2-interface.ccl-cmucl.lisp

If Feature

(:or :ccl :cmucl)

Dependencies
Source

cl-environments.asd.

Parent Component

walker (module).


4.1.22 cl-environments/src/walker/cltl2-interface.ecl.lisp

If Feature

:ecl

Dependencies
Source

cl-environments.asd.

Parent Component

walker (module).


4.1.23 cl-environments/src/walker/hook.lisp

Dependencies
Source

cl-environments.asd.

Parent Component

walker (module).


4.1.24 cl-environments/src/walker/cl-overrides.lisp

Dependency

hook.lisp (file).

Source

cl-environments.asd.

Parent Component

walker (module).


4.1.25 cl-environments/src/tools/package.lisp

Source

cl-environments.asd.

Parent Component

tools (module).

Packages

cl-environments.tools.


4.1.26 cl-environments/src/tools/types.lisp

Dependency

package.lisp (file).

Source

cl-environments.asd.

Parent Component

tools (module).

Public Interface
Internals

5 Packages

Packages are listed by definition order.


5.1 cl-environments.tools

Source

package.lisp.

Use List
Public Interface
Internals

5.2 cl-environments-cl

Source

other/sbcl.lisp.

Nickname

cl-environments

Use List
Used By List

cl-environments.tools.


5.3 cl-environments.cltl2

Source

other/sbcl.lisp.

Use List
  • alexandria.
  • anaphora.
  • cl-environments.util.
  • common-lisp.
  • iterate.
  • optima.
  • sb-cltl2.
  • tcr.parse-declarations-1.0.
Used By List

cl-environments-cl.

Public Interface
Internals

5.4 cl-environments.util

Source

package.lisp.

Use List
  • alexandria.
  • anaphora.
  • common-lisp.
  • optima.
Used By List
Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Macros

Macro: define-declaration (decl-name (arg-var &optional env-var) &body body)
Package

cl-environments.cltl2.

Source

other/sbcl.lisp.

Macro: defmacro! (name args &rest body)
Package

cl-environments.util.

Source

let-over-lambda.lisp.

Macro: in-environment ((env-var &optional environment) (&rest bindings) &body forms)
Package

cl-environments.cltl2.

Source

other/sbcl.lisp.

Macro: let-if ((&rest bindings) condition &body body)

Allows variables to be initialized with different init-forms based on a condition. BINDINGS is a list of bindings where the first element is the symbol the second element is the init-form to evaluated if CONDITION evaluates to true, the second element is the init-form to evaluate if CONDITION evaluates to false.

Package

cl-environments.util.

Source

util.lisp.

Macro: match-state (arg &body states)

Implements an FSM where each state may specify a pattern and a list of from states, when the argument matches the pattern of a particular and the current state is in the state’s from states list, the FSM transitions to that state. Each element in STATES is a list of the following form: (STATE PATTERN [:FROM STATES] . BODY) where STATE is a symbol identifying the state, PATTERN is the pattern to be matched, and STATES is the optional list of from states (it and the :FROM keyword may be excluded), if there is only one state it does not have to be in a list. If a state specifies no from states, it is as if all declared states are specifed as from states. When a state becomes the current state the forms in its BODY are executed, in which the machine may either transition to the next state using the internal function (NEXT NEW-ARG) where NEW-ARG is the new argument to be matched against the patterns. If NEXT is never called in body the return value of the last form in BODY becomes the return value of the MATCH-STATE form. The intiial argument is given by evaluated the form ARG. The initial state may be optionally specified, when the first element of STATES is :START the second element is taken as the form to be evaluated to produce the start state, otherwise the start state defaults
to :START. Patterns are matched in the order given, the first state whose pattern matches (both the argument pattern and FROM list) becomes the current state.

Package

cl-environments.util.

Source

macro-util.lisp.

Macro: slot-values ((&rest slots) o!form &body body)
Package

cl-environments.util.

Source

util.lisp.

Macro: walk-environment (&body forms)
Package

cl-environments.cltl2.

Source

other/sbcl.lisp.


6.1.2 Ordinary functions

Function: augment-environment (env &key variable symbol-macro function macro declare)
Package

cl-environments.cltl2.

Source

other/sbcl.lisp.

Function: augmented-compiler-macro-function (name &optional environment)
Package

cl-environments.cltl2.

Source

other/sbcl.lisp.

Function: augmented-constantp (form &optional environment)
Package

cl-environments.cltl2.

Source

other/sbcl.lisp.

Function: augmented-get-setf-expansion (form &optional env)
Package

cl-environments.cltl2.

Source

other/sbcl.lisp.

Function: augmented-macro-function (name &optional env)
Package

cl-environments.cltl2.

Source

other/sbcl.lisp.

Function: augmented-macroexpand (form &optional env)
Package

cl-environments.cltl2.

Source

other/sbcl.lisp.

Function: augmented-macroexpand-1 (form &optional env)
Package

cl-environments.cltl2.

Source

other/sbcl.lisp.

Function: declaration-information (name &optional env)
Package

cl-environments.cltl2.

Source

other/sbcl.lisp.

Function: disable-hook (&optional previous-hook)

Does nothing, provided for compatibility with implementations where the code walker is required.

Package

cl-environments.cltl2.

Source

other/sbcl.lisp.

Function: enable-hook (&optional previous-hook)

Does nothing, provided for compatibility with implementations where the code walker is required.

Package

cl-environments.cltl2.

Source

other/sbcl.lisp.

Function: enclose-macro (name lambda-list body &optional env)
Package

cl-environments.cltl2.

Source

other/sbcl.lisp.

Function: get-return-type (form env)

Determines the type of the return value of the form FORM, in the environment ENV.

Package

cl-environments.tools.

Source

types.lisp.

Function: get-return-types (forms env)

Determines the return value type of each form in FORMS, in the environment ENV. Returns a list where each element is the return-value type of the corresponding form in FORMS.

Package

cl-environments.tools.

Source

types.lisp.

Function: get-value-type (form env &optional n)

Determines the type of the N’th value returned by FORM, in the environment ENV. If N > 0 and there is no information about the type of the N’th value, NIL is returned.

Package

cl-environments.tools.

Source

types.lisp.

Function: reexport-all-symbols (from-package)
Package

cl-environments.util.

Source

util.lisp.


6.2 Internals


6.2.1 Macros

Macro: defmacro/g! (name args &rest body)
Package

cl-environments.util.

Source

let-over-lambda.lisp.

Macro: defun! (name args &body body)
Package

cl-environments.util.

Source

let-over-lambda.lisp.

Macro: disable-walker (&body body)
Package

cl-environments.cltl2.

Source

other/sbcl.lisp.


6.2.2 Ordinary functions

Function: constant-type (value)

Return the type specifier of a constant value.

If the value is a CHARACTER, NUMBER or SYMBOL an EQL type specifier is returned. Otherwise the type specifier returned by TYPE-OF is returned.

VALUE is the constant value.

Package

cl-environments.tools.

Source

types.lisp.

Function: g!-symbol-p (s)
Package

cl-environments.util.

Source

let-over-lambda.lisp.

Function: gensyms (syms &key key)
Package

cl-environments.util.

Source

util.lisp.

Function: get-special-form-return-type (operator operands env)

Determine the type of value returned by a form in which the operator is a special operator.

Package

cl-environments.tools.

Source

types.lisp.

Function: group (source n)
Package

cl-environments.util.

Source

let-over-lambda.lisp.

Function: lol-flatten (x)
Package

cl-environments.util.

Source

let-over-lambda.lisp.

Function: mkstr (&rest args)
Package

cl-environments.util.

Source

let-over-lambda.lisp.

Function: o!-symbol-p (s)
Package

cl-environments.util.

Source

let-over-lambda.lisp.

Function: o!-symbol-to-g!-symbol (s)
Package

cl-environments.util.

Source

let-over-lambda.lisp.

Function: partition-declarations (xs declarations &optional env)

Split DECLARATIONS into those that do and do not apply to XS. Return two values, one with each set.

Both sets of declarations are returned in a form that can be spliced directly into Lisp code:

(locally ,@(partition-declarations vars decls) ...)

Package

cl-environments.cltl2.

Source

other/sbcl.lisp.

Function: symb (&rest args)
Package

cl-environments.util.

Source

let-over-lambda.lisp.

Function: wrap-declaration-result (type value)

Wrap user-define declarations (TYPE = :DECLARE) in a list to silence errors due to SBCL bug.

Package

cl-environments.cltl2.

Source

other/sbcl.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   A   C   D   E   F   G   I   L   M   O   P   R   S   W  
Index Entry  Section

A
augment-environment: Public ordinary functions
augmented-compiler-macro-function: Public ordinary functions
augmented-constantp: Public ordinary functions
augmented-get-setf-expansion: Public ordinary functions
augmented-macro-function: Public ordinary functions
augmented-macroexpand: Public ordinary functions
augmented-macroexpand-1: Public ordinary functions

C
constant-type: Private ordinary functions

D
declaration-information: Public ordinary functions
define-declaration: Public macros
defmacro!: Public macros
defmacro/g!: Private macros
defun!: Private macros
disable-hook: Public ordinary functions
disable-walker: Private macros

E
enable-hook: Public ordinary functions
enclose-macro: Public ordinary functions

F
Function, augment-environment: Public ordinary functions
Function, augmented-compiler-macro-function: Public ordinary functions
Function, augmented-constantp: Public ordinary functions
Function, augmented-get-setf-expansion: Public ordinary functions
Function, augmented-macro-function: Public ordinary functions
Function, augmented-macroexpand: Public ordinary functions
Function, augmented-macroexpand-1: Public ordinary functions
Function, constant-type: Private ordinary functions
Function, declaration-information: Public ordinary functions
Function, disable-hook: Public ordinary functions
Function, enable-hook: Public ordinary functions
Function, enclose-macro: Public ordinary functions
Function, g!-symbol-p: Private ordinary functions
Function, gensyms: Private ordinary functions
Function, get-return-type: Public ordinary functions
Function, get-return-types: Public ordinary functions
Function, get-special-form-return-type: Private ordinary functions
Function, get-value-type: Public ordinary functions
Function, group: Private ordinary functions
Function, lol-flatten: Private ordinary functions
Function, mkstr: Private ordinary functions
Function, o!-symbol-p: Private ordinary functions
Function, o!-symbol-to-g!-symbol: Private ordinary functions
Function, partition-declarations: Private ordinary functions
Function, reexport-all-symbols: Public ordinary functions
Function, symb: Private ordinary functions
Function, wrap-declaration-result: Private ordinary functions

G
g!-symbol-p: Private ordinary functions
gensyms: Private ordinary functions
get-return-type: Public ordinary functions
get-return-types: Public ordinary functions
get-special-form-return-type: Private ordinary functions
get-value-type: Public ordinary functions
group: Private ordinary functions

I
in-environment: Public macros

L
let-if: Public macros
lol-flatten: Private ordinary functions

M
Macro, define-declaration: Public macros
Macro, defmacro!: Public macros
Macro, defmacro/g!: Private macros
Macro, defun!: Private macros
Macro, disable-walker: Private macros
Macro, in-environment: Public macros
Macro, let-if: Public macros
Macro, match-state: Public macros
Macro, slot-values: Public macros
Macro, walk-environment: Public macros
match-state: Public macros
mkstr: Private ordinary functions

O
o!-symbol-p: Private ordinary functions
o!-symbol-to-g!-symbol: Private ordinary functions

P
partition-declarations: Private ordinary functions

R
reexport-all-symbols: Public ordinary functions

S
slot-values: Public macros
symb: Private ordinary functions

W
walk-environment: Public macros
wrap-declaration-result: Private ordinary functions


A.3 Variables


A.4 Data types

Jump to:   A   C   D   E   F   H   L   M   O   P   S   T   U   W  
Index Entry  Section

A
augment-environment.lisp: The cl-environments/src/walker/augment-environment․lisp file

C
cl-environments: The cl-environments system
cl-environments-cl: The cl-environments-cl package
cl-environments.asd: The cl-environments/cl-environments․asd file
cl-environments.cltl2: The cl-environments․cltl2 package
cl-environments.lisp: The cl-environments/src/walker/cl-environments․lisp file
cl-environments.tools: The cl-environments․tools package
cl-environments.util: The cl-environments․util package
cl-overrides.lisp: The cl-environments/src/walker/cl-overrides․lisp file
cltl2-interface.ccl-cmucl.lisp: The cl-environments/src/walker/cltl2-interface․ccl-cmucl․lisp file
cltl2-interface.ecl.lisp: The cl-environments/src/walker/cltl2-interface․ecl․lisp file
cltl2-interface.lisp: The cl-environments/src/walker/cltl2-interface․lisp file
common: The cl-environments/src/common module

D
declarations.lisp: The cl-environments/src/walker/declarations․lisp file
def-forms.lisp: The cl-environments/src/walker/def-forms․lisp file

E
environment.lisp: The cl-environments/src/walker/environment․lisp file

F
File, augment-environment.lisp: The cl-environments/src/walker/augment-environment․lisp file
File, cl-environments.asd: The cl-environments/cl-environments․asd file
File, cl-environments.lisp: The cl-environments/src/walker/cl-environments․lisp file
File, cl-overrides.lisp: The cl-environments/src/walker/cl-overrides․lisp file
File, cltl2-interface.ccl-cmucl.lisp: The cl-environments/src/walker/cltl2-interface․ccl-cmucl․lisp file
File, cltl2-interface.ecl.lisp: The cl-environments/src/walker/cltl2-interface․ecl․lisp file
File, cltl2-interface.lisp: The cl-environments/src/walker/cltl2-interface․lisp file
File, declarations.lisp: The cl-environments/src/walker/declarations․lisp file
File, def-forms.lisp: The cl-environments/src/walker/def-forms․lisp file
File, environment.lisp: The cl-environments/src/walker/environment․lisp file
File, hook.lisp: The cl-environments/src/walker/hook․lisp file
File, lambda.lisp: The cl-environments/src/walker/lambda․lisp file
File, let-forms.lisp: The cl-environments/src/walker/let-forms․lisp file
File, let-over-lambda.lisp: The cl-environments/src/common/let-over-lambda․lisp file
File, macro-util.lisp: The cl-environments/src/common/macro-util․lisp file
File, other/allegro.lisp: The cl-environments/src/other/allegro․lisp file
File, other/lispworks.lisp: The cl-environments/src/other/lispworks․lisp file
File, other/sbcl.lisp: The cl-environments/src/other/sbcl․lisp file
File, package.lisp: The cl-environments/src/common/package․lisp file
File, package.lisp: The cl-environments/src/walker/package․lisp file
File, package.lisp: The cl-environments/src/tools/package․lisp file
File, special-forms.lisp: The cl-environments/src/walker/special-forms․lisp file
File, types.lisp: The cl-environments/src/tools/types․lisp file
File, util.lisp: The cl-environments/src/common/util․lisp file
File, util.lisp: The cl-environments/src/walker/util․lisp file
File, walker.lisp: The cl-environments/src/walker/walker․lisp file

H
hook.lisp: The cl-environments/src/walker/hook․lisp file

L
lambda.lisp: The cl-environments/src/walker/lambda․lisp file
let-forms.lisp: The cl-environments/src/walker/let-forms․lisp file
let-over-lambda.lisp: The cl-environments/src/common/let-over-lambda․lisp file

M
macro-util.lisp: The cl-environments/src/common/macro-util․lisp file
Module, common: The cl-environments/src/common module
Module, src: The cl-environments/src module
Module, tools: The cl-environments/src/tools module
Module, walker: The cl-environments/src/walker module

O
other/allegro.lisp: The cl-environments/src/other/allegro․lisp file
other/lispworks.lisp: The cl-environments/src/other/lispworks․lisp file
other/sbcl.lisp: The cl-environments/src/other/sbcl․lisp file

P
Package, cl-environments-cl: The cl-environments-cl package
Package, cl-environments.cltl2: The cl-environments․cltl2 package
Package, cl-environments.tools: The cl-environments․tools package
Package, cl-environments.util: The cl-environments․util package
package.lisp: The cl-environments/src/common/package․lisp file
package.lisp: The cl-environments/src/walker/package․lisp file
package.lisp: The cl-environments/src/tools/package․lisp file

S
special-forms.lisp: The cl-environments/src/walker/special-forms․lisp file
src: The cl-environments/src module
System, cl-environments: The cl-environments system

T
tools: The cl-environments/src/tools module
types.lisp: The cl-environments/src/tools/types․lisp file

U
util.lisp: The cl-environments/src/common/util․lisp file
util.lisp: The cl-environments/src/walker/util․lisp file

W
walker: The cl-environments/src/walker module
walker.lisp: The cl-environments/src/walker/walker․lisp file