The defconfig Reference Manual

This is the defconfig Reference Manual, version 1.2.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:15:47 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 defconfig

A configuration system for user exposed variables

Author

szos at posteo dot net

License

GPLv3

Version

1.2.1

Dependencies
  • alexandria (system).
  • trivial-cltl2 (system).
Source

defconfig.asd.

Child Components

3 Files

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


3.1 Lisp


3.1.1 defconfig/defconfig.asd

Source

defconfig.asd.

Parent Component

defconfig (system).

ASDF Systems

defconfig.


3.1.2 defconfig/package.lisp

Source

defconfig.asd.

Parent Component

defconfig (system).

Packages

defconfig.


3.1.3 defconfig/macros.lisp

Dependency

package.lisp (file).

Source

defconfig.asd.

Parent Component

defconfig (system).

Internals

atypecase (macro).


3.1.4 defconfig/database.lisp

Dependency

macros.lisp (file).

Source

defconfig.asd.

Parent Component

defconfig (system).

Public Interface
Internals

3.1.5 defconfig/classes.lisp

Dependency

database.lisp (file).

Source

defconfig.asd.

Parent Component

defconfig (system).

Public Interface
Internals

3.1.6 defconfig/conditions.lisp

Dependency

classes.lisp (file).

Source

defconfig.asd.

Parent Component

defconfig (system).

Public Interface
Internals

3.1.7 defconfig/defconfig.lisp

Dependency

conditions.lisp (file).

Source

defconfig.asd.

Parent Component

defconfig (system).

Public Interface
Internals

3.1.8 defconfig/setv.lisp

Dependency

defconfig.lisp (file).

Source

defconfig.asd.

Parent Component

defconfig (system).

Public Interface
Internals

3.1.9 defconfig/access.lisp

Dependency

setv.lisp (file).

Source

defconfig.asd.

Parent Component

defconfig (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 defconfig

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

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


5.1 Public Interface


5.1.1 Special variables

Special Variable: *setv-permissiveness*

Determines how setv will act when no config-info object is
found. :STRICT means to error out. :GREEDY means to search through all registered databases for a config-info object and use the first one that is found, or if none is found error out. :PERMISSIVE means to setf when a config-info object isnt found. :GREEDY+PERMISSIVE means to search through all registered databases and use the first object found, but if one isnt found to setf regardless.

Package

defconfig.

Source

setv.lisp.


5.1.2 Macros

Macro: defconfig (place &rest args)

Defconfig defines a config-info object and potentially a dynamic variable.

PLACE may be either a symbol or a list of length 1. If PLACE is a list, defconfig functions as a wrapper around define-accessor-config. If it is a symbol, defconfig defines a variable config as well as a dynamic variable. Additionally, if the first element of ARGS is a keyword and the second element of ARGS is not a keyword, the default value will be the value of PLACE.

The following keys are acceptable in ARGS: VALIDATOR, TYPESPEC, COERCER, DOCUMENTATION, DB, TAGS, and REGEN-CONFIG. REINITIALIZE is also acceptable if PLACE is a symbol.

VALIDATOR and TYPESPEC may not coexist in a single defconfig call. VALIDATOR is for providing a function to validate values. It must take a single value, the value to validate. TYPESPEC takes a type specification and generates a validation function from it.

If provided, COERCER must be a function taking a single argument: the value to coerce. It is called iff an invalid value is passed to setv, and it is called on the invalid value in an attempt to generate a valid one. The return value of COERCER is checked against the VALIDATOR (or the function generated with TYPESPEC) and if it is valid it is used in place of the original value.

DOCUMENTATION is the documentation of PLACE and is used in the defvar/defparameter form when PLACE is a symbol and is placed in the config-info object regardless of whether PLACE is a symbol or a list.

DB is the database to place the generated config-info object into, and defaults to *default-db*. Defconfig does not check if DB is in the plist of databases before placing the config-info object into DB. It is assumed that if a DB has been removed from the database plist the user has a good understanding of what they are doing and is managing the database themselves. (databases must be manually removed from the plist).

TAGS are strings that can be used to search for a config-info object. The search functionality is currently only partially implemented.

Package

defconfig.

Source

defconfig.lisp.

Macro: defconfig-minimal (place &rest args)

Define a minimal config, with no value tracking.

Package

defconfig.

Source

defconfig.lisp.

Macro: define-accessor-config (accessor &key validator typespec coercer db tags regen-config documentation)

Define an accessor config object and place it in DB with the key ACCESSOR

Package

defconfig.

Source

defconfig.lisp.

Macro: define-defconfig-db (var key &key parameter if-exists doc)

define a dynamic variable name VAR to be a defconfig database accessible by passing KEY to the function get-db. If PARAMETER is true, create this var with a defparameter form, otherwise use defvar. DOC is the documentation to pass to the def(parameter|var) form.

Package

defconfig.

Source

database.lisp.

Macro: define-minimal-config (place &key type validator typespec coercer db regen-config)

define a minimal config object for PLACE and in DB.

Package

defconfig.

Source

defconfig.lisp.

Macro: define-variable-config (place default-value &key validator typespec coercer db tags documentation regen-config)

Define a variable config object and place it in DB with the key PLACE.

Package

defconfig.

Source

defconfig.lisp.

Macro: psetv (&rest args)

The setv equivalent of psetf - set all places in parallel

Package

defconfig.

Source

setv.lisp.

Macro: reset-place (place &key db previous-value)

looks up PLACE in DB and set it to its default or previous value.

Package

defconfig.

Source

access.lisp.

Macro: setv (&rest args)

Setv must get an even number of ARGS - every place must have a value. Setv can also take the key argument :db, to specify which database to look up config objects in.

Package

defconfig.

Source

setv.lisp.

Macro: with-atomic-setv ((&key errorp handle-conditions db) &body body)

This macro, upon encountering an error, resets all places encountered within calls to setv to be reset to the value they held before the call to with-atomic-setv. Which errors to reset upon can be controlled with HANDLE-CONDITIONS. If it is nil, it defaults to ’error. If a handled condition is encountered, it will be wrapped in SETV-WRAPPED-ERROR, unless RE-ERROR is nil, in which case a warning will be generated and the condition will be returned.

Package

defconfig.

Source

setv.lisp.

Macro: with-atomic-setv* ((&key re-error handle-conditions db) &body body)
Package

defconfig.

Source

setv.lisp.


5.1.3 Ordinary functions

Function: delete-db (key &optional makunbound)

delete the database associated with KEY. if MAKUNBOUND is T, then unbind the symbol holding the database associated with KEY

Package

defconfig.

Source

database.lisp.

Function: get-db (key)

get the database associated with KEY

Package

defconfig.

Source

database.lisp.

Function: get-db-var (key)

get the variable holding the database associated with KEY

Package

defconfig.

Source

database.lisp.

Function: list-dbs ()

list all defconfig databases

Package

defconfig.

Source

database.lisp.

Function: search-configurable-objects (term &optional database-key)

Returns a list of all configurable objects matching TERM. If DATABASE-KEY is provided, search only in that database.

Package

defconfig.

Source

access.lisp.

Function: tag-configurable-place (tag place &key db reclass)

Push TAG onto the list of tags for the config-info object associated with PLACE in DB.

Package

defconfig.

Source

access.lisp.


5.1.4 Generic functions

Generic Function: clean-previous-value (place &key db)

use to set the previous value of PLACE to the default value. This is useful for places that may hold a large object which you want gc’d

Package

defconfig.

Source

access.lisp.

Methods
Method: clean-previous-value ((place symbol) &key db)
Method: clean-previous-value ((object config-info) &key db)
Method: clean-previous-value ((place list) &key db)
Method: clean-previous-value ((object accessor-config-info) &key db)
Generic Reader: config-info-coercer (object)
Package

defconfig.

Methods
Reader Method: config-info-coercer ((config-info-functions config-info-functions))

The function by which invalid datum will attempt to be coerced

Source

classes.lisp.

Target Slot

coercer.

Generic Reader: config-info-db (object)
Package

defconfig.

Methods
Reader Method: config-info-db ((config-info-direct-info config-info-direct-info))

the database that the config info object is housed in.

Source

classes.lisp.

Target Slot

db.

Generic Reader: config-info-default-value (object)
Package

defconfig.

Methods
Reader Method: config-info-default-value ((config-info-values config-info-values))

The default value of this config-info object

Source

classes.lisp.

Target Slot

default-value.

Generic Reader: config-info-documentation (object)
Package

defconfig.

Methods
Reader Method: config-info-documentation ((config-info-metadata config-info-metadata))

The docstring for the place being governed. if a variable it is the same as the variables docstring

Source

classes.lisp.

Target Slot

docstring.

Generic Reader: config-info-name (object)
Package

defconfig.

Methods
Reader Method: config-info-name ((config-info-metadata config-info-metadata))

The formal name by which this config-info object can be searched for

Source

classes.lisp.

Target Slot

name.

Generic Reader: config-info-place (object)
Package

defconfig.

Methods
Reader Method: config-info-place ((config-info-direct-info config-info-direct-info))

The place which this config info governs.

Source

classes.lisp.

Target Slot

place.

Generic Reader: config-info-predicate (object)
Package

defconfig.

Methods
Reader Method: config-info-predicate ((config-info-functions config-info-functions))

The predicate against which valid values are checked

Source

classes.lisp.

Target Slot

predicate.

Generic Reader: config-info-previous-value (object)
Package

defconfig.

Methods
Reader Method: config-info-previous-value ((config-info-values config-info-values))

holds the value previously assigned to the config-info object. initially the same as default-value

Source

classes.lisp.

Target Slot

prev-value.

Generic Reader: config-info-tags (object)
Package

defconfig.

Methods
Reader Method: config-info-tags ((config-info-metadata config-info-metadata))

Tags which can be used for finding a config-info object

Source

classes.lisp.

Target Slot

tags.

Generic Reader: config-info-typespec (object)
Package

defconfig.

Methods
Reader Method: config-info-typespec ((config-info-metadata config-info-metadata))

When a typespec is provided instead of a validator, this slot will hold it

Source

classes.lisp.

Target Slot

typespec.

Generic Reader: config-info-valid-values-description (object)
Package

defconfig.

Methods
Reader Method: config-info-valid-values-description ((config-info-metadata config-info-metadata))

An explanation of the valid values and predicate function

Source

classes.lisp.

Target Slot

valid-values.

Generic Function: reset-computed-place (place &key db previous-value test)

Reset PLACE to its default value, unless PREVIOUS-VALUE is true, then reset to the previous value. TEST is used to check if a reset is needed.

Package

defconfig.

Source

access.lisp.

Methods
Method: reset-computed-place ((place symbol) &key db test previous-value)
Method: reset-computed-place ((object config-info) &key db test previous-value)
Method: reset-computed-place ((place list) &key db test previous-value)
Method: reset-computed-place ((object accessor-config-info) &key db test previous-value)
Method: reset-computed-place ((object minimal-config-info) &key db test previous-value)

5.1.5 Standalone methods

Method: initialize-instance :after ((obj accessor-config-info) &key)
Source

classes.lisp.

Method: initialize-instance :after ((obj config-info) &key)
Source

classes.lisp.

Method: print-object ((object accessor-config-info) stream)
Source

classes.lisp.

Method: print-object ((object minimal-config-info) stream)
Source

classes.lisp.

Method: print-object ((object config-info) stream)
Source

classes.lisp.


5.1.6 Conditions

Condition: config-error

This condition is the root condition for all defconfig conditions. If one wants to catch all defconfig conditions (such as with handler-case) then config-error should be used.

Package

defconfig.

Source

conditions.lisp.

Direct superclasses

error.

Direct subclasses
Condition: database-already-exists-error

This condition indicates KEY already denotes a database in *db-plist*

Package

defconfig.

Source

conditions.lisp.

Direct superclasses

config-error.

Direct methods

database-already-exists-error-key.

Direct slots
Slot: key
Initargs

:key

Readers

database-already-exists-error-key.

Writers

This slot is read-only.

Condition: invalid-coerced-datum-error

This condition indicates that coercion was attempted on VALUE, producing COERCED-VALUE, and that COERCED-VALUE is invalid for PLACE-FORM

Package

defconfig.

Source

conditions.lisp.

Direct superclasses

invalid-datum-error.

Direct methods

invalid-coerced-datum-error-value.

Direct slots
Slot: coerced-value
Initform

(quote nil)

Initargs

:coerced-value

Readers

invalid-coerced-datum-error-value.

Writers

This slot is read-only.

Condition: invalid-datum-error

This condition indicates that VALUE is invalid for PLACE-FORM

Package

defconfig.

Source

conditions.lisp.

Direct superclasses

config-error.

Direct subclasses

invalid-coerced-datum-error.

Direct methods
Direct slots
Slot: place-form
Initform

(quote nil)

Initargs

:place

Readers

invalid-datum-error-place.

Writers

This slot is read-only.

Slot: value
Initform

(quote nil)

Initargs

:value

Readers

invalid-datum-error-value.

Writers

This slot is read-only.

Slot: config-object
Initform

(quote nil)

Initargs

:config-object

Readers

invalid-datum-error-config-object.

Writers

This slot is read-only.

Condition: no-bound-default-value-error

This condition indicates that the default-value slot of OBJECT is unbound. This will only be signalled when trying to reset a place to its default value.

Package

defconfig.

Source

conditions.lisp.

Direct superclasses

untrackable-place-error.

Condition: no-config-found-error

This condition indicates that PLACE-FORM does not denote a config-info object in DATABASE

Package

defconfig.

Source

conditions.lisp.

Direct superclasses

config-error.

Direct methods
Direct slots
Slot: place-form
Initform

(quote nil)

Initargs

:place

Readers

no-config-found-error-place.

Writers

This slot is read-only.

Slot: database
Initform

(quote nil)

Initargs

:db

Readers

no-config-found-error-db.

Writers

This slot is read-only.

Condition: not-resettable-place-error

This condition indicates that a reset was attempted on an accessor place.

Package

defconfig.

Source

conditions.lisp.

Direct superclasses

untrackable-place-error.

Condition: setv-wrapped-error

This condition is only ever signalled from within WITH-ATOMIC-SETV, and indicates that an error was caught which caused WITH-ATOMIC-SETV to reset all places found within its body. It has one slot, CONDITION, which contains the condition that was caught.

Package

defconfig.

Source

conditions.lisp.

Direct superclasses

config-error.

Direct methods
Direct slots
Slot: condition
Package

common-lisp.

Initargs

:error

Readers

setv-wrapped-error-condition.

Writers

(setf setv-wrapped-error-condition).

Condition: untrackable-place-error
Package

defconfig.

Source

conditions.lisp.

Direct superclasses

config-error.

Direct subclasses
Direct methods
Direct slots
Slot: object
Initargs

:object

Readers

untrackable-place-error-object.

Writers

This slot is read-only.

Slot: place
Initargs

:place

Readers

untrackable-place-error-place.

Writers

This slot is read-only.


5.2 Internals


5.2.1 Special variables

Special Variable: *db-plist*

A plist holding all databases for defconfig

Package

defconfig.

Source

database.lisp.

Special Variable: *default-db*

The default database for defconfig

Package

defconfig.

Source

database.lisp.


5.2.2 Macros

Macro: %%setv (place value db)
Package

defconfig.

Source

setv.lisp.

Macro: %%setv-coerced (place value config-object coercer throwtag)
Package

defconfig.

Source

setv.lisp.

Macro: %atomic-setv (block-name reset-on-errors accumulator database &rest args)

generates a set of calls to %setv-with-reset.

Package

defconfig.

Source

setv.lisp.

Macro: %atomic-setv-reset (accumulator &key pop)

this macro resets all encountered places within a call to with-atomic-setv*.

Package

defconfig.

Source

setv.lisp.

Macro: %psetv (db pairs)
Package

defconfig.

Source

setv.lisp.

Macro: %runtime-atomic-setv (accumulator block-name reset-errors database &rest args)
Package

defconfig.

Source

setv.lisp.

Macro: %runtime-atomic-setv-reset (accumulator &key pop)
Package

defconfig.

Source

setv.lisp.

Macro: %runtime-setv-with-reset (ac block-name reset-errors place value db)
Package

defconfig.

Source

setv.lisp.

Macro: %setv-ensure-setf (place value config-info-object)
Package

defconfig.

Source

setv.lisp.

Macro: %setv-with-reset (block-name reset-on accumulator place value db)

Wrap setv in a handler to catch all errors, which will reset all encountered places, after which it returns the condition from the named block.

Package

defconfig.

Source

setv.lisp.

Macro: %with-atomic-setv* ((&key re-error handle-conditions db) &body body)

This macro utilizes compiler-let to allow rollbacks of accessor stuff.

Package

defconfig.

Source

setv.lisp.

Macro: atypecase (thing &body cases)
Package

defconfig.

Source

macros.lisp.

Macro: defconf-a (place &key predicate coercer db tags documentation regen valid-values)
Package

defconfig.

Source

defconfig.lisp.

Macro: defconf-v (place default &key predicate coercer db tags documentation regen valid-values)
Package

defconfig.

Source

defconfig.lisp.

Macro: define-min (place &key predicate coercer db regen-config)
Package

defconfig.

Source

defconfig.lisp.

Macro: destructuring-keys ((var &rest keys) list &body body)

separates keys from list, storing the remainder in VAR, and making each key a variable via destructuring-bind.

Package

defconfig.

Source

setv.lisp.

Macro: setv-atomic (&rest args)

this version of setv saves the original value of the places being set, and resets all to their original value if an error is encountered. the error is then resignalled. It is generally advisable to use WITH-ATOMIC-SETV instead.

Package

defconfig.

Source

setv.lisp.

Macro: with-config-info ((var place &key db unfound-policy) &body body)
Package

defconfig.

Source

access.lisp.

Macro: with-runtime-atomic-setv ((&key re-error handle-conditions db) &body body)
Package

defconfig.

Source

setv.lisp.


5.2.3 Ordinary functions

Function: %%with-config-info (fn place database policy)
Package

defconfig.

Source

access.lisp.

Function: %fsetv-ensure-validity (throwtag config-info-object value invalid-symbol &optional errorp place error extra-args)

check VALUE against CONFIG-INFO-OBJECTs predicate. return VALUE if it passes. If ERRORP is true error if VALUE doesnt pass. If ERRORP is nil and VALUE doesnt pass, return INVALID-SYMBOL. Restarts are put in place to provide a value or set regardless.

Package

defconfig.

Source

setv.lisp.

Function: %fsetv-get-config-info-object (place hash db &optional setf-symbol)

return setf symbol if we want the caller to setf place. setf-symbol only needs to be provided if were calling this in a setv expansion.

Package

defconfig.

Source

setv.lisp.

Function: add-db-to-plist (key varname)

add a database to *db-plist* in the correct format of (KEY (VARNAME value)). VARNAME is the quoted variable referencing the database, while value is the symbol-value of VARNAME. for internal use only

Package

defconfig.

Source

database.lisp.

Function: config-info-search-in-db (term &key namespace db)

takes a term, as well as a namespace and a database. the :db keyarg should be a database as returned by make-config-database. the :namespace keyarg should be one of :both :accessor or :variable. Note that the namespace keyarg isnt used if term is a symbol. Term should be either a string, a list of strings, a symbol, or a list of symbols representing an accessor and a place.

Package

defconfig.

Source

access.lisp.

Function: config-info-search-tags (tags &key namespace db)
Package

defconfig.

Source

access.lisp.

Function: db-key-exists-p (key)

return t/nil if KEY denotes a pre-existing db

Package

defconfig.

Source

database.lisp.

Function: def-defconfig-db-error-check (key var)

Check that KEY is a keyword and doesnt already denotes a database in *db-plist*. If it does signal an error within the context of a use-value restart to allow the user to provide a new value to use instead of KEY

Package

defconfig.

Source

database.lisp.

Function: defconfig-database-p (db)
Package

defconfig.

Source

database.lisp.

Function: generate-valid-values-coercer-string (&optional coercer)
Package

defconfig.

Source

classes.lisp.

Function: generate-valid-values-predicate-string (&key typespec predicate)
Package

defconfig.

Source

classes.lisp.

Function: generate-vv-string (spec obj)
Package

defconfig.

Source

classes.lisp.

Function: getdb (key)

used internally by defconfig to wrap around getf - think of it as currying getf with *db-plist* as the place

Package

defconfig.

Source

database.lisp.

Function: list-of-strings-p (thing)
Package

defconfig.

Source

access.lisp.

Function: make-config-database ()

Return a cons of two hash tables

Package

defconfig.

Source

database.lisp.

Function: place->config-info (place &key db)
Package

defconfig.

Source

access.lisp.

Function: remove-keys (list keys)

returns two values - accumulated non-keys and keys

Package

defconfig.

Source

setv.lisp.

Function: slot-bound-p (obj slot)
Package

defconfig.

Source

classes.lisp.


5.2.4 Generic functions

Generic Reader: config-info-prev-value (object)
Generic Writer: (setf config-info-prev-value) (object)
Package

defconfig.

Methods
Reader Method: config-info-prev-value ((config-info-values config-info-values))
Writer Method: (setf config-info-prev-value) ((config-info-values config-info-values))

holds the value previously assigned to the config-info object. initially the same as default-value

Source

classes.lisp.

Target Slot

prev-value.

Generic Reader: config-info-tag-list (object)
Generic Writer: (setf config-info-tag-list) (object)
Package

defconfig.

Methods
Reader Method: config-info-tag-list ((config-info-metadata config-info-metadata))
Writer Method: (setf config-info-tag-list) ((config-info-metadata config-info-metadata))

Tags which can be used for finding a config-info object

Source

classes.lisp.

Target Slot

tags.

Generic Reader: database-already-exists-error-key (condition)
Package

defconfig.

Methods
Reader Method: database-already-exists-error-key ((condition database-already-exists-error))
Source

conditions.lisp.

Target Slot

key.

Generic Reader: invalid-coerced-datum-error-value (condition)
Package

defconfig.

Methods
Reader Method: invalid-coerced-datum-error-value ((condition invalid-coerced-datum-error))
Source

conditions.lisp.

Target Slot

coerced-value.

Generic Reader: invalid-datum-error-config-object (condition)
Package

defconfig.

Methods
Reader Method: invalid-datum-error-config-object ((condition invalid-datum-error))
Source

conditions.lisp.

Target Slot

config-object.

Generic Reader: invalid-datum-error-place (condition)
Package

defconfig.

Methods
Reader Method: invalid-datum-error-place ((condition invalid-datum-error))
Source

conditions.lisp.

Target Slot

place-form.

Generic Reader: invalid-datum-error-value (condition)
Package

defconfig.

Methods
Reader Method: invalid-datum-error-value ((condition invalid-datum-error))
Source

conditions.lisp.

Target Slot

value.

Generic Reader: no-config-found-error-db (condition)
Package

defconfig.

Methods
Reader Method: no-config-found-error-db ((condition no-config-found-error))
Source

conditions.lisp.

Target Slot

database.

Generic Reader: no-config-found-error-place (condition)
Package

defconfig.

Methods
Reader Method: no-config-found-error-place ((condition no-config-found-error))
Source

conditions.lisp.

Target Slot

place-form.

Generic Reader: setv-wrapped-error-condition (condition)
Generic Writer: (setf setv-wrapped-error-condition) (condition)
Package

defconfig.

Methods
Reader Method: setv-wrapped-error-condition ((condition setv-wrapped-error))
Writer Method: (setf setv-wrapped-error-condition) ((condition setv-wrapped-error))
Source

conditions.lisp.

Target Slot

condition.

Generic Reader: untrackable-place-error-object (condition)
Package

defconfig.

Methods
Reader Method: untrackable-place-error-object ((condition untrackable-place-error))
Source

conditions.lisp.

Target Slot

object.

Generic Reader: untrackable-place-error-place (condition)
Package

defconfig.

Methods
Reader Method: untrackable-place-error-place ((condition untrackable-place-error))
Source

conditions.lisp.

Target Slot

place.


5.2.5 Conditions

Condition: with-atomic-setv-internal-error
Package

defconfig.

Source

conditions.lisp.

Direct superclasses

config-error.


5.2.6 Classes

Class: accessor-config-info
Package

defconfig.

Source

classes.lisp.

Direct superclasses
Direct subclasses

config-info.

Direct methods
Class: config-info
Package

defconfig.

Source

classes.lisp.

Direct superclasses
Direct methods
Class: config-info-direct-info
Package

defconfig.

Source

classes.lisp.

Direct subclasses

minimal-config-info.

Direct methods
Direct slots
Slot: db

the database that the config info object is housed in.

Type

(or symbol cons)

Initargs

:db

Readers

config-info-db.

Writers

This slot is read-only.

Slot: place

The place which this config info governs.

Type

symbol

Initargs

:place

Readers

config-info-place.

Writers

This slot is read-only.

Class: config-info-functions
Package

defconfig.

Source

classes.lisp.

Direct subclasses

minimal-config-info.

Direct methods
Direct slots
Slot: predicate

The predicate against which valid values are checked

Type

(function (t) boolean)

Initform

(function identity)

Initargs

:predicate

Readers

config-info-predicate.

Writers

This slot is read-only.

Slot: coercer

The function by which invalid datum will attempt to be coerced

Type

(or function null)

Initargs

:coercer

Readers

config-info-coercer.

Writers

This slot is read-only.

Class: config-info-metadata
Package

defconfig.

Source

classes.lisp.

Direct subclasses

accessor-config-info.

Direct methods
Direct slots
Slot: name

The formal name by which this config-info object can be searched for

Initform

"unnamed config-info object"

Initargs

:name

Readers

config-info-name.

Writers

This slot is read-only.

Slot: tags

Tags which can be used for finding a config-info object

Initform

(quote nil)

Initargs

:tags

Readers
Writers

(setf config-info-tag-list).

Slot: docstring

The docstring for the place being governed. if a variable it is the same as the variables docstring

Type

(or string null)

Initargs

:documentation

Readers

config-info-documentation.

Writers

This slot is read-only.

Slot: valid-values

An explanation of the valid values and predicate function

Initargs

:valid-values

Readers

config-info-valid-values-description.

Writers

This slot is read-only.

Slot: typespec

When a typespec is provided instead of a validator, this slot will hold it

Readers

config-info-typespec.

Writers

This slot is read-only.

Class: config-info-values
Package

defconfig.

Source

classes.lisp.

Direct subclasses

config-info.

Direct methods
Direct slots
Slot: default-value

The default value of this config-info object

Initargs

:default

Readers

config-info-default-value.

Writers

This slot is read-only.

Slot: prev-value

holds the value previously assigned to the config-info object. initially the same as default-value

Initargs

:previous

Readers
Writers

(setf config-info-prev-value).

Class: minimal-config-info
Package

defconfig.

Source

classes.lisp.

Direct superclasses
Direct subclasses

accessor-config-info.

Direct methods

5.2.7 Types

Type: defconfig-database ()
Package

defconfig.

Source

database.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
A   C   D   F   G   I   L   M   N   P   R   S   T   U   W  
Index Entry  Section

%
%%setv: Private macros
%%setv-coerced: Private macros
%%with-config-info: Private ordinary functions
%atomic-setv: Private macros
%atomic-setv-reset: Private macros
%fsetv-ensure-validity: Private ordinary functions
%fsetv-get-config-info-object: Private ordinary functions
%psetv: Private macros
%runtime-atomic-setv: Private macros
%runtime-atomic-setv-reset: Private macros
%runtime-setv-with-reset: Private macros
%setv-ensure-setf: Private macros
%setv-with-reset: Private macros
%with-atomic-setv*: Private macros

(
(setf config-info-prev-value): Private generic functions
(setf config-info-prev-value): Private generic functions
(setf config-info-tag-list): Private generic functions
(setf config-info-tag-list): Private generic functions
(setf setv-wrapped-error-condition): Private generic functions
(setf setv-wrapped-error-condition): Private generic functions

A
add-db-to-plist: Private ordinary functions
atypecase: Private macros

C
clean-previous-value: Public generic functions
clean-previous-value: Public generic functions
clean-previous-value: Public generic functions
clean-previous-value: Public generic functions
clean-previous-value: Public generic functions
config-info-coercer: Public generic functions
config-info-coercer: Public generic functions
config-info-db: Public generic functions
config-info-db: Public generic functions
config-info-default-value: Public generic functions
config-info-default-value: Public generic functions
config-info-documentation: Public generic functions
config-info-documentation: Public generic functions
config-info-name: Public generic functions
config-info-name: Public generic functions
config-info-place: Public generic functions
config-info-place: Public generic functions
config-info-predicate: Public generic functions
config-info-predicate: Public generic functions
config-info-prev-value: Private generic functions
config-info-prev-value: Private generic functions
config-info-previous-value: Public generic functions
config-info-previous-value: Public generic functions
config-info-search-in-db: Private ordinary functions
config-info-search-tags: Private ordinary functions
config-info-tag-list: Private generic functions
config-info-tag-list: Private generic functions
config-info-tags: Public generic functions
config-info-tags: Public generic functions
config-info-typespec: Public generic functions
config-info-typespec: Public generic functions
config-info-valid-values-description: Public generic functions
config-info-valid-values-description: Public generic functions

D
database-already-exists-error-key: Private generic functions
database-already-exists-error-key: Private generic functions
db-key-exists-p: Private ordinary functions
def-defconfig-db-error-check: Private ordinary functions
defconf-a: Private macros
defconf-v: Private macros
defconfig: Public macros
defconfig-database-p: Private ordinary functions
defconfig-minimal: Public macros
define-accessor-config: Public macros
define-defconfig-db: Public macros
define-min: Private macros
define-minimal-config: Public macros
define-variable-config: Public macros
delete-db: Public ordinary functions
destructuring-keys: Private macros

F
Function, %%with-config-info: Private ordinary functions
Function, %fsetv-ensure-validity: Private ordinary functions
Function, %fsetv-get-config-info-object: Private ordinary functions
Function, add-db-to-plist: Private ordinary functions
Function, config-info-search-in-db: Private ordinary functions
Function, config-info-search-tags: Private ordinary functions
Function, db-key-exists-p: Private ordinary functions
Function, def-defconfig-db-error-check: Private ordinary functions
Function, defconfig-database-p: Private ordinary functions
Function, delete-db: Public ordinary functions
Function, generate-valid-values-coercer-string: Private ordinary functions
Function, generate-valid-values-predicate-string: Private ordinary functions
Function, generate-vv-string: Private ordinary functions
Function, get-db: Public ordinary functions
Function, get-db-var: Public ordinary functions
Function, getdb: Private ordinary functions
Function, list-dbs: Public ordinary functions
Function, list-of-strings-p: Private ordinary functions
Function, make-config-database: Private ordinary functions
Function, place->config-info: Private ordinary functions
Function, remove-keys: Private ordinary functions
Function, search-configurable-objects: Public ordinary functions
Function, slot-bound-p: Private ordinary functions
Function, tag-configurable-place: Public ordinary functions

G
generate-valid-values-coercer-string: Private ordinary functions
generate-valid-values-predicate-string: Private ordinary functions
generate-vv-string: Private ordinary functions
Generic Function, (setf config-info-prev-value): Private generic functions
Generic Function, (setf config-info-tag-list): Private generic functions
Generic Function, (setf setv-wrapped-error-condition): Private generic functions
Generic Function, clean-previous-value: Public generic functions
Generic Function, config-info-coercer: Public generic functions
Generic Function, config-info-db: Public generic functions
Generic Function, config-info-default-value: Public generic functions
Generic Function, config-info-documentation: Public generic functions
Generic Function, config-info-name: Public generic functions
Generic Function, config-info-place: Public generic functions
Generic Function, config-info-predicate: Public generic functions
Generic Function, config-info-prev-value: Private generic functions
Generic Function, config-info-previous-value: Public generic functions
Generic Function, config-info-tag-list: Private generic functions
Generic Function, config-info-tags: Public generic functions
Generic Function, config-info-typespec: Public generic functions
Generic Function, config-info-valid-values-description: Public generic functions
Generic Function, database-already-exists-error-key: Private generic functions
Generic Function, invalid-coerced-datum-error-value: Private generic functions
Generic Function, invalid-datum-error-config-object: Private generic functions
Generic Function, invalid-datum-error-place: Private generic functions
Generic Function, invalid-datum-error-value: Private generic functions
Generic Function, no-config-found-error-db: Private generic functions
Generic Function, no-config-found-error-place: Private generic functions
Generic Function, reset-computed-place: Public generic functions
Generic Function, setv-wrapped-error-condition: Private generic functions
Generic Function, untrackable-place-error-object: Private generic functions
Generic Function, untrackable-place-error-place: Private generic functions
get-db: Public ordinary functions
get-db-var: Public ordinary functions
getdb: Private ordinary functions

I
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
invalid-coerced-datum-error-value: Private generic functions
invalid-coerced-datum-error-value: Private generic functions
invalid-datum-error-config-object: Private generic functions
invalid-datum-error-config-object: Private generic functions
invalid-datum-error-place: Private generic functions
invalid-datum-error-place: Private generic functions
invalid-datum-error-value: Private generic functions
invalid-datum-error-value: Private generic functions

L
list-dbs: Public ordinary functions
list-of-strings-p: Private ordinary functions

M
Macro, %%setv: Private macros
Macro, %%setv-coerced: Private macros
Macro, %atomic-setv: Private macros
Macro, %atomic-setv-reset: Private macros
Macro, %psetv: Private macros
Macro, %runtime-atomic-setv: Private macros
Macro, %runtime-atomic-setv-reset: Private macros
Macro, %runtime-setv-with-reset: Private macros
Macro, %setv-ensure-setf: Private macros
Macro, %setv-with-reset: Private macros
Macro, %with-atomic-setv*: Private macros
Macro, atypecase: Private macros
Macro, defconf-a: Private macros
Macro, defconf-v: Private macros
Macro, defconfig: Public macros
Macro, defconfig-minimal: Public macros
Macro, define-accessor-config: Public macros
Macro, define-defconfig-db: Public macros
Macro, define-min: Private macros
Macro, define-minimal-config: Public macros
Macro, define-variable-config: Public macros
Macro, destructuring-keys: Private macros
Macro, psetv: Public macros
Macro, reset-place: Public macros
Macro, setv: Public macros
Macro, setv-atomic: Private macros
Macro, with-atomic-setv: Public macros
Macro, with-atomic-setv*: Public macros
Macro, with-config-info: Private macros
Macro, with-runtime-atomic-setv: Private macros
make-config-database: Private ordinary functions
Method, (setf config-info-prev-value): Private generic functions
Method, (setf config-info-tag-list): Private generic functions
Method, (setf setv-wrapped-error-condition): Private generic functions
Method, clean-previous-value: Public generic functions
Method, clean-previous-value: Public generic functions
Method, clean-previous-value: Public generic functions
Method, clean-previous-value: Public generic functions
Method, config-info-coercer: Public generic functions
Method, config-info-db: Public generic functions
Method, config-info-default-value: Public generic functions
Method, config-info-documentation: Public generic functions
Method, config-info-name: Public generic functions
Method, config-info-place: Public generic functions
Method, config-info-predicate: Public generic functions
Method, config-info-prev-value: Private generic functions
Method, config-info-previous-value: Public generic functions
Method, config-info-tag-list: Private generic functions
Method, config-info-tags: Public generic functions
Method, config-info-typespec: Public generic functions
Method, config-info-valid-values-description: Public generic functions
Method, database-already-exists-error-key: Private generic functions
Method, initialize-instance: Public standalone methods
Method, initialize-instance: Public standalone methods
Method, invalid-coerced-datum-error-value: Private generic functions
Method, invalid-datum-error-config-object: Private generic functions
Method, invalid-datum-error-place: Private generic functions
Method, invalid-datum-error-value: Private generic functions
Method, no-config-found-error-db: Private generic functions
Method, no-config-found-error-place: Private generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, reset-computed-place: Public generic functions
Method, reset-computed-place: Public generic functions
Method, reset-computed-place: Public generic functions
Method, reset-computed-place: Public generic functions
Method, reset-computed-place: Public generic functions
Method, setv-wrapped-error-condition: Private generic functions
Method, untrackable-place-error-object: Private generic functions
Method, untrackable-place-error-place: Private generic functions

N
no-config-found-error-db: Private generic functions
no-config-found-error-db: Private generic functions
no-config-found-error-place: Private generic functions
no-config-found-error-place: Private generic functions

P
place->config-info: Private ordinary functions
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
psetv: Public macros

R
remove-keys: Private ordinary functions
reset-computed-place: Public generic functions
reset-computed-place: Public generic functions
reset-computed-place: Public generic functions
reset-computed-place: Public generic functions
reset-computed-place: Public generic functions
reset-computed-place: Public generic functions
reset-place: Public macros

S
search-configurable-objects: Public ordinary functions
setv: Public macros
setv-atomic: Private macros
setv-wrapped-error-condition: Private generic functions
setv-wrapped-error-condition: Private generic functions
slot-bound-p: Private ordinary functions

T
tag-configurable-place: Public ordinary functions

U
untrackable-place-error-object: Private generic functions
untrackable-place-error-object: Private generic functions
untrackable-place-error-place: Private generic functions
untrackable-place-error-place: Private generic functions

W
with-atomic-setv: Public macros
with-atomic-setv*: Public macros
with-config-info: Private macros
with-runtime-atomic-setv: Private macros


A.3 Variables

Jump to:   *  
C   D   K   N   O   P   S   T   V  
Index Entry  Section

*
*db-plist*: Private special variables
*default-db*: Private special variables
*setv-permissiveness*: Public special variables

C
coerced-value: Public conditions
coercer: Private classes
condition: Public conditions
config-object: Public conditions

D
database: Public conditions
db: Private classes
default-value: Private classes
docstring: Private classes

K
key: Public conditions

N
name: Private classes

O
object: Public conditions

P
place: Public conditions
place: Private classes
place-form: Public conditions
place-form: Public conditions
predicate: Private classes
prev-value: Private classes

S
Slot, coerced-value: Public conditions
Slot, coercer: Private classes
Slot, condition: Public conditions
Slot, config-object: Public conditions
Slot, database: Public conditions
Slot, db: Private classes
Slot, default-value: Private classes
Slot, docstring: Private classes
Slot, key: Public conditions
Slot, name: Private classes
Slot, object: Public conditions
Slot, place: Public conditions
Slot, place: Private classes
Slot, place-form: Public conditions
Slot, place-form: Public conditions
Slot, predicate: Private classes
Slot, prev-value: Private classes
Slot, tags: Private classes
Slot, typespec: Private classes
Slot, valid-values: Private classes
Slot, value: Public conditions
Special Variable, *db-plist*: Private special variables
Special Variable, *default-db*: Private special variables
Special Variable, *setv-permissiveness*: Public special variables

T
tags: Private classes
typespec: Private classes

V
valid-values: Private classes
value: Public conditions


A.4 Data types

Jump to:   A   C   D   F   I   M   N   P   S   T   U   W  
Index Entry  Section

A
access.lisp: The defconfig/access․lisp file
accessor-config-info: Private classes

C
Class, accessor-config-info: Private classes
Class, config-info: Private classes
Class, config-info-direct-info: Private classes
Class, config-info-functions: Private classes
Class, config-info-metadata: Private classes
Class, config-info-values: Private classes
Class, minimal-config-info: Private classes
classes.lisp: The defconfig/classes․lisp file
Condition, config-error: Public conditions
Condition, database-already-exists-error: Public conditions
Condition, invalid-coerced-datum-error: Public conditions
Condition, invalid-datum-error: Public conditions
Condition, no-bound-default-value-error: Public conditions
Condition, no-config-found-error: Public conditions
Condition, not-resettable-place-error: Public conditions
Condition, setv-wrapped-error: Public conditions
Condition, untrackable-place-error: Public conditions
Condition, with-atomic-setv-internal-error: Private conditions
conditions.lisp: The defconfig/conditions․lisp file
config-error: Public conditions
config-info: Private classes
config-info-direct-info: Private classes
config-info-functions: Private classes
config-info-metadata: Private classes
config-info-values: Private classes

D
database-already-exists-error: Public conditions
database.lisp: The defconfig/database․lisp file
defconfig: The defconfig system
defconfig: The defconfig package
defconfig-database: Private types
defconfig.asd: The defconfig/defconfig․asd file
defconfig.lisp: The defconfig/defconfig․lisp file

F
File, access.lisp: The defconfig/access․lisp file
File, classes.lisp: The defconfig/classes․lisp file
File, conditions.lisp: The defconfig/conditions․lisp file
File, database.lisp: The defconfig/database․lisp file
File, defconfig.asd: The defconfig/defconfig․asd file
File, defconfig.lisp: The defconfig/defconfig․lisp file
File, macros.lisp: The defconfig/macros․lisp file
File, package.lisp: The defconfig/package․lisp file
File, setv.lisp: The defconfig/setv․lisp file

I
invalid-coerced-datum-error: Public conditions
invalid-datum-error: Public conditions

M
macros.lisp: The defconfig/macros․lisp file
minimal-config-info: Private classes

N
no-bound-default-value-error: Public conditions
no-config-found-error: Public conditions
not-resettable-place-error: Public conditions

P
Package, defconfig: The defconfig package
package.lisp: The defconfig/package․lisp file

S
setv-wrapped-error: Public conditions
setv.lisp: The defconfig/setv․lisp file
System, defconfig: The defconfig system

T
Type, defconfig-database: Private types

U
untrackable-place-error: Public conditions

W
with-atomic-setv-internal-error: Private conditions