The live-cells Reference Manual

This is the live-cells Reference Manual, version 0.1.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Fri May 15 12:39:58 2026 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 live-cells

Reactive programming for lisp

Author

Alexander Gutev

License

MIT

Version

0.1.0

Dependencies
  • alexandria (system).
  • anaphora (system).
  • arrows (system).
  • generic-cl (system).
Source

live-cells.asd.

Child Component

src (module).


3 Modules

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


3.1 live-cells/src

Source

live-cells.asd.

Parent Component

live-cells (system).

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 live-cells/live-cells.asd

Source

live-cells.asd.

Parent Component

live-cells (system).

ASDF Systems

live-cells.


4.1.2 live-cells/src/package.lisp

Source

live-cells.asd.

Parent Component

src (module).

Packages

4.1.3 live-cells/src/codegen.lisp

Dependency

package.lisp (file).

Source

live-cells.asd.

Parent Component

src (module).

Internals

4.1.4 live-cells/src/observer.lisp

Dependency

codegen.lisp (file).

Source

live-cells.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.5 live-cells/src/base-cell.lisp

Dependency

observer.lisp (file).

Source

live-cells.asd.

Parent Component

src (module).

Internals

4.1.6 live-cells/src/tracker.lisp

Dependency

base-cell.lisp (file).

Source

live-cells.asd.

Parent Component

src (module).

Internals

4.1.7 live-cells/src/observer-cell.lisp

Dependency

tracker.lisp (file).

Source

live-cells.asd.

Parent Component

src (module).

Internals

4.1.8 live-cells/src/changes-only-state.lisp

Dependency

observer-cell.lisp (file).

Source

live-cells.asd.

Parent Component

src (module).

Internals

4.1.9 live-cells/src/stop-compute.lisp

Dependency

changes-only-state.lisp (file).

Source

live-cells.asd.

Parent Component

src (module).

Public Interface
Internals

default-value (reader method).


4.1.10 live-cells/src/computed-cell.lisp

Dependency

stop-compute.lisp (file).

Source

live-cells.asd.

Parent Component

src (module).

Internals

4.1.11 live-cells/src/mutable-cell.lisp

Dependency

computed-cell.lisp (file).

Source

live-cells.asd.

Parent Component

src (module).

Public Interface

batch (macro).

Internals

4.1.12 live-cells/src/watch-function.lisp

Dependency

mutable-cell.lisp (file).

Source

live-cells.asd.

Parent Component

src (module).

Internals

4.1.13 live-cells/src/macros.lisp

Dependency

watch-function.lisp (file).

Source

live-cells.asd.

Parent Component

src (module).

Public Interface
Internals

5 Packages

Packages are listed by definition order.


5.1 live-cells

Provides the API for using live cells.

Source

package.lisp.

Use List
  • anaphora.
  • arrows.
  • generic-cl.
Public Interface
Internals

5.2 live-cells-cell

Package used for generated cell identifiers.

This package should NEVER be used by any other package.

Source

package.lisp.


6 Definitions

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


6.1 Public Interface


6.1.1 Symbol macros

Symbol Macro: none
Package

live-cells.

Source

stop-compute.lisp.


6.1.2 Macros

Macro: batch (&body forms)

Batch assignments to the values of mutable cells.

The forms in FORMS are evaluated, in an implicit PROGN, with mutable cell assignment batching in effect. This means that when the value of a mutable cell is set by SETF within the dynamic extent of the BATCH form, the observers of the cell are only notified after the last form in FORMS is evaluated, or the BATCH form is exited by a non-local exit such as by RETURN-FROM. The effect of this is that the cells appear to have their values changed simultaneously.

.. note::

When a BATCH form is nested in the dynamic extent of another BATCH form, the nested BATCH form has no effect other than to evaluate FORMS. The observers of the cells are only notified when exiting the outermost BATCH form.

Returns the value of the last form in FORMS.

Package

live-cells.

Source

mutable-cell.lisp.

Macro: cell-let ((&rest bindings) &body body)

Define cells that are visible only to the forms in BODY.

BINDINGS is a list of cell bindings to establish, similar to
LET*. Each item in BINDINGS is a list of the form

.. code-block::

(NAME VALUE-FORM)

where NAME is the symbol identifying the cell and VALUE-FORM is the value form of the cell. The cell can then be referenced within the forms in BODY by the symbol NAME.

The cells defined in BINDINGS lexcially shadow those in the environment defined with DEFCELL or by an enclosing CELL-LET
form. Like LET* and unlike LET, each cell definition may reference the cells defined earlier in the same CELL-LET.

The forms in BODY are evaluated in an implicit PROGN. The value returned by the last form is returned by the CELL-LET form.

Package

live-cells.

Source

macros.lisp.

Macro: defcell (name value-form)

Define a global cell identified by NAME.

This macro defines a cell identified by NAME with its value computed by VALUE-FORM. The value of the cell can be referenced by the symbol NAME following the DEFCELL form.

If VALUE-FORM is a constant, by CONSTANTP, a mutable cell is defined which can have its value set directly using SETF or SETQ on the symbol NAME.

If VALUE-FORM is not a constant a computed cell is created. A computed cell may reference one or more argument cells in VALUE-FORM or a function called during the evaluation of VALUE-FORM. When the values of any of the argument cells change, the value of the computed cell is recomputed by evaluating VALUE-FORM again. The referenced argument cells are determined automatically when the VALUE-FORM is evaluated.

This macro creates a cell definition that is visible globally to all forms unless it is lexically shadowed by a definition with the same NAME using CELL-LET. Note that despite being visible globally, the cell definition is still lexically scoped and not dynamically scoped like global variables defined with DEFVAR or DEFPARAMETER.

Package

live-cells.

Source

macros.lisp.

Macro: live (&body forms)

Define a live block consisting of FORMS.

The FORMS are evaluated once when the LIVE form is first evaluated, after which they are evaluated again whenever the values of the cells referenced by them change. Cells may be referenced either directly in FORMS or by a function called during the evaluation of FORMS.

Returns a function which when called, stops the live block. Once stopped the live block will no longer be called when the values of the referenced cells change.

Package

live-cells.

Source

macros.lisp.

Macro: with-live-scope (&body body)

Stop all live blocks defined in BODY on exiting the form.

All live blocks, defined using LIVE, are stopped when exiting the dynamic extent defined by this form.

Multiple WITH-LIVE-SCOPE forms can be nested, in which case each form stops the live blocks defined immediately within it.

Package

live-cells.

Source

macros.lisp.


6.1.3 Ordinary functions

Function: none (&optional default-value)

Stop the computation of a cell’s value.

When this function is called within the value form of cell, the computation of the cell’s value is stopped, the value form is exited and the cell’s current value is preserved.

If this function is called while computing the initial value of a cell, the value of the cell is set to DEFAULT-VALUE.

The symbol-macro NONE is a synonym for “(NONE)“.

This function works by signaling a STOP-COMPUTATION condition, which is then handled by the cell. It is important that this condition is not handled by the value form of the cell, otherwise this function will have no effect.

Package

live-cells.

Source

stop-compute.lisp.


6.1.4 Standalone methods

Method: equalp ((a argument) (b argument))
Package

generic-cl.comparison.

Source

observer.lisp.

Method: equalp ((a observer) (b observer))
Package

generic-cl.comparison.

Source

observer.lisp.

Method: hash ((a argument))
Package

generic-cl.map.

Source

observer.lisp.

Method: hash ((o observer))
Package

generic-cl.map.

Source

observer.lisp.


6.1.5 Conditions

Condition: stop-computation

Condition signaling to stop the computation of a cell’s value

Package

live-cells.

Source

stop-compute.lisp.

Direct superclasses

condition.

Direct methods

default-value.

Direct slots
Slot: default-value
Initform

(quote nil)

Initargs

:default-value

Readers

default-value.

Writers

This slot is read-only.


6.2 Internals


6.2.1 Constants

Constant: +cell-def-package+

The package in which symbols identifying generated cell definitions are interned.

Package

live-cells.

Source

base-cell.lisp.


6.2.2 Special variables

Special Variable: *batch-in-effect-p*

Is mutable cell batching in effect?

Package

live-cells.

Source

mutable-cell.lisp.

Special Variable: *batch-list*

List of ’notify update’ functions to call after current mutable cell batch.

Package

live-cells.

Source

mutable-cell.lisp.

Special Variable: *bind-init-form-p*

Should the variable holding the value of the cell be initialized to the cell’s initform?

Package

live-cells.

Source

base-cell.lisp.

Special Variable: *global-cell-definition*

True when a cell is being defined in the global (NIL) environment.

Package

live-cells.

Source

base-cell.lisp.

Special Variable: *track-cell-callback*

Callback function that is called when a cell is used as an argument.

This is a function of one argument that is called whenever a use cell function is called. The cell passed to the use cell function is passed to this callback.

Package

live-cells.

Source

tracker.lisp.


6.2.3 Macros

Macro: computed-cell-let% ((name expression) &body body)
Package

live-cells.

Source

macros.lisp.

Macro: define-computed-cell% (name expression)
Package

live-cells.

Source

macros.lisp.

Macro: define-mutable-cell% (name expression)
Package

live-cells.

Source

macros.lisp.

Macro: mutable-cell-let% ((name expression) &body body)
Package

live-cells.

Source

macros.lisp.

Macro: use-cell% (name value-form &optional setter)

Reference the value of a cell while also allowing it to be set with SETF.

When this macro appears as a form in an expression, it is equivalent to the form VALUE-FORM.

When this macro appears as a place in SETF, the SETF expansion SETTER is used to set the value of the cell. SETTER is expected to be a list of five elements defining the SETF expansion for the cell, as per DEFINE-SETF-EXPANSION. Note, the return store and access form is wrapped in a LET which binds the temporary and store variables to the actual variables which were used. This allows the same expansion to be used even when the same place appears multiple times, in a single SETF expression.

If SETTER is NIL or omitted, an error condition is signaled when this macro appears as a place in SETF.

Package

live-cells.

Source

base-cell.lisp.

Setf expander for this macro

(setf use-cell%).

Macro: with-tracker (((cell-arg) &body body) &body forms)

Evaluate FORMS with a cell argument tracker in effect.

The FORMS are evaluated in a context where *TRACK-CELL-CALLBACK* is bound to a lexical function defined by BODY. The forms in BODY are evaluated whenever a use cell function called (within FORMS) with CELL-ARG being the name of the symbol which is bound to the cell that was passed to the use cell function.

Package

live-cells.

Source

tracker.lisp.

Macro: without-tracker (&body forms)

Evaluate FORMS without an argument cell tracker in-effect.

As a result calling a use cell function, within FORMS, will not call *TRACK-CELL-CALLBACK*.

The value of the last form in FORMS is returned.

Package

live-cells.

Source

tracker.lisp.


6.2.4 Compiler macros

Compiler Macro: generate-add-observer (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-argument-record (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-cell-definition (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-cell-functions (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-cell-variables (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-compute (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-did-change? (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-extra (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-function-definition (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-init (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-notify-update (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-notify-will-update (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-observer-record (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-on-update (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-on-will-update (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-pause (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-post-update (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-pre-update (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-remove-observer (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-setf-expansion (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-update (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-use-cell (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-variable-definition (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-watch-function (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.

Compiler Macro: generate-will-update (whole &optional env)

A no-op on SBCL since static dispatching is handled by the compiler transforms, rather than compiler macros.

Package

live-cells.

Alias for

static-dispatch.


6.2.5 Setf expanders

Setf Expander: (setf use-cell%) (name value-form &optional setter)

Set the value of the cell according to the SETF expansion defined by SETTER.

Package

live-cells.

Source

base-cell.lisp.

Reader

use-cell% (macro).


6.2.6 Ordinary functions

Function: add-to-batch (notify-update)

Add a NOTIFY-UPDATE, of a mutable cell, to the current *BATCH-LIST*.

The NOTIFY-UPDATE function is called after the current batch ends.

Package

live-cells.

Source

mutable-cell.lisp.

Reader: argument-add-observer (instance)
Writer: (setf argument-add-observer) (instance)
Package

live-cells.

Source

observer.lisp.

Target Slot

add-observer.

Reader: argument-key (instance)
Writer: (setf argument-key) (instance)
Package

live-cells.

Source

observer.lisp.

Target Slot

key.

Function: argument-p (object)
Package

live-cells.

Source

observer.lisp.

Reader: argument-remove-observer (instance)
Writer: (setf argument-remove-observer) (instance)
Package

live-cells.

Source

observer.lisp.

Target Slot

remove-observer.

Function: call-add-observer (arg observer)

Add an OBSERVER to an ‘ARGUMENT’ cell ARG.

Package

live-cells.

Source

observer.lisp.

Function: call-remove-observer (arg observer)

Remove an OBSERVER from an ‘ARGUMENT’ cell ARG.

Package

live-cells.

Source

observer.lisp.

Function: call-update (observer arg did-change)

Call the ’update’ OBSERVER method.

ARG is the ‘ARGUMENT’ identifying the argument cell.

DID-CHANGE indicates whether the value of ARG has changed. If true then the value of ARG may have changed, but not necessarily has changed. If false then the value of ARG has definitely not changed.

Package

live-cells.

Source

observer.lisp.

Function: call-will-update (observer arg)

Call the ’will update’ OBSERVER method.

ARG is the ‘ARGUMENT’ identifying the argument cell.

Package

live-cells.

Source

observer.lisp.

Function: cell-symbol (name suffix)

Generate a new symbol for a cell definition.

The format of the generated symbol is NAME-SUFFIX followed by random identifier. The symbol is interned in +CELL-DEF-PACKAGE+ when *GLOBAL-CELL-DEFINITION* is true.

Package

live-cells.

Source

base-cell.lisp.

Function: copy-argument (instance)
Package

live-cells.

Source

observer.lisp.

Function: copy-function-spec (instance)
Package

live-cells.

Source

codegen.lisp.

Function: copy-observer (instance)
Package

live-cells.

Source

observer.lisp.

Function: copy-variable-spec (instance)
Package

live-cells.

Source

codegen.lisp.

Function: end-batch ()

End the current mutable cell batch and call all ’notify update’ functions in *BATCH-LIST*

Package

live-cells.

Source

mutable-cell.lisp.

Reader: function-spec-body (instance)
Writer: (setf function-spec-body) (instance)
Package

live-cells.

Source

codegen.lisp.

Target Slot

body.

Reader: function-spec-declare (instance)
Writer: (setf function-spec-declare) (instance)
Package

live-cells.

Source

codegen.lisp.

Target Slot

declare.

Reader: function-spec-lambda-list (instance)
Writer: (setf function-spec-lambda-list) (instance)
Package

live-cells.

Source

codegen.lisp.

Target Slot

lambda-list.

Reader: function-spec-name (instance)
Writer: (setf function-spec-name) (instance)
Package

live-cells.

Source

codegen.lisp.

Target Slot

name.

Function: function-spec-p (object)
Package

live-cells.

Source

codegen.lisp.

Reader: function-spec-type (instance)
Writer: (setf function-spec-type) (instance)
Package

live-cells.

Source

codegen.lisp.

Target Slot

type.

Function: make-argument (&key key add-observer remove-observer)
Package

live-cells.

Source

observer.lisp.

Function: make-function-spec (&key name lambda-list declare body type)
Package

live-cells.

Source

codegen.lisp.

Function: make-local-cell-definition% (spec body)
Package

live-cells.

Source

macros.lisp.

Function: make-observer (&key key will-update update)
Package

live-cells.

Source

observer.lisp.

Function: make-setf-expansion (spec)

Generate the SETF expansion for the cell defined by SPEC.

This function generates the SETF expansion by calling GENERATE-SETF-EXPANSION and wrapping the returned store and access forms in a LET which binds the temporary and value variables to the actual variables used with GENSYM’d identifiers.

Package

live-cells.

Source

base-cell.lisp.

Function: make-variable-spec (&key name initform type)
Package

live-cells.

Source

codegen.lisp.

Reader: observer-key (instance)
Writer: (setf observer-key) (instance)
Package

live-cells.

Source

observer.lisp.

Target Slot

key.

Function: observer-p (object)
Package

live-cells.

Source

observer.lisp.

Reader: observer-update (instance)
Writer: (setf observer-update) (instance)
Package

live-cells.

Source

observer.lisp.

Target Slot

update.

Reader: observer-will-update (instance)
Writer: (setf observer-will-update) (instance)
Package

live-cells.

Source

observer.lisp.

Target Slot

will-update.

Function: track-argument (arg)

Register the cell identified by the ‘ARGUMENT’ record ARG as an dependency.

This function calls the function bound to *TRACK-CELL-CALLBACK* on
ARG, if it is non-null.

Package

live-cells.

Source

tracker.lisp.

Reader: variable-spec-initform (instance)
Writer: (setf variable-spec-initform) (instance)
Package

live-cells.

Source

codegen.lisp.

Target Slot

initform.

Reader: variable-spec-name (instance)
Writer: (setf variable-spec-name) (instance)
Package

live-cells.

Source

codegen.lisp.

Target Slot

name.

Function: variable-spec-p (object)
Package

live-cells.

Source

codegen.lisp.

Reader: variable-spec-type (instance)
Writer: (setf variable-spec-type) (instance)
Package

live-cells.

Source

codegen.lisp.

Target Slot

type.


6.2.7 Generic functions

Generic Reader: add-observer (object)
Generic Writer: (setf add-observer) (object)
Package

live-cells.

Methods
Reader Method: add-observer ((cell-spec cell-spec))
Writer Method: (setf add-observer) ((cell-spec cell-spec))

Name of the function for adding an observer to this cell.

Source

base-cell.lisp.

Target Slot

add-observer.

Generic Reader: arguments (object)
Generic Writer: (setf arguments) (object)
Package

live-cells.

Methods
Reader Method: arguments ((compute-cell-spec compute-cell-spec))
Writer Method: (setf arguments) ((compute-cell-spec compute-cell-spec))

Name of the variable holding the cell’s argument set.

Source

computed-cell.lisp.

Target Slot

arguments.

Generic Reader: body-forms (object)
Generic Writer: (setf body-forms) (object)
Package

live-cells.

Methods
Reader Method: body-forms ((watch-function-spec watch-function-spec))
Writer Method: (setf body-forms) ((watch-function-spec watch-function-spec))

List of forms comprising the body of the watch function.

Source

watch-function.lisp.

Target Slot

body.

Generic Reader: changed-dependencies (object)
Generic Writer: (setf changed-dependencies) (object)
Package

live-cells.

Methods
Reader Method: changed-dependencies ((observer-cell-spec observer-cell-spec))
Writer Method: (setf changed-dependencies) ((observer-cell-spec observer-cell-spec))

Name of the variable holding the number of dependencies that were changed during the current update cycle.

Source

observer-cell.lisp.

Target Slot

changed-dependencies.

Generic Reader: compute (object)
Generic Writer: (setf compute) (object)
Package

live-cells.

Methods
Reader Method: compute ((compute-cell-spec compute-cell-spec))
Writer Method: (setf compute) ((compute-cell-spec compute-cell-spec))

Name of the compute value function for this cell.

Source

computed-cell.lisp.

Target Slot

compute.

Generic Reader: default-value (condition)
Package

live-cells.

Methods
Reader Method: default-value ((condition stop-computation))
Source

stop-compute.lisp.

Target Slot

default-value.

Generic Reader: did-change? (object)
Generic Writer: (setf did-change?) (object)
Package

live-cells.

Methods
Reader Method: did-change? ((observer-cell-spec observer-cell-spec))
Writer Method: (setf did-change?) ((observer-cell-spec observer-cell-spec))

Name of the variable holding the flag for whether the cell’s value may have changed during the current update cycle.

Source

observer-cell.lisp.

Target Slot

did-change?.

Generic Function: generate-add-observer (spec arg)

Generate the function for adding an observer to the cell defined by SPEC.

ARG is the name of the symbol to use for the function argument.

The return value should be a single form defining only the body of the function.

Package

live-cells.

Source

base-cell.lisp.

Methods
Method: generate-add-observer ((spec cell-spec) arg)
Generic Function: generate-argument-record (spec)

Generate the ‘ARGUMENT’ record for the cell defined by SPEC.

Package

live-cells.

Source

base-cell.lisp.

Methods
Method: generate-argument-record ((spec cell-spec))
Generic Function: generate-cell-definition (spec)

Generate the form implementing the cell defined by SPEC.

Package

live-cells.

Source

base-cell.lisp.

Methods
Method: generate-cell-definition ((spec cell-spec))
Generic Function: generate-cell-functions (spec)

Generate the list of functions for the cell defined by SPEC.

Returns a list of ‘FUNCTION-SPEC’s.

Package

live-cells.

Source

base-cell.lisp.

Methods
Method: generate-cell-functions ((spec compute-cell-spec))
Source

computed-cell.lisp.

Method: generate-cell-functions ((spec observer-cell-spec))
Source

observer-cell.lisp.

Method: generate-cell-functions ((spec cell-spec))
Generic Function: generate-cell-variables (spec)

Generate the list of variables for the cell defined by SPEC.

Returns a list of ‘VARIABLE-SPEC’s.

Package

live-cells.

Source

base-cell.lisp.

Methods
Method: generate-cell-variables ((spec compute-cell-spec))
Source

computed-cell.lisp.

Method: generate-cell-variables ((spec changes-only-cell-spec))
Source

changes-only-state.lisp.

Method: generate-cell-variables ((spec observer-cell-spec))
Source

observer-cell.lisp.

Method: generate-cell-variables ((spec cell-spec))
Generic Function: generate-compute (spec)

Generate the compute value function for the cell defined by SPEC.

The return value of this function should be a single form that computes the value of the cell.

Package

live-cells.

Source

computed-cell.lisp.

Methods
Method: generate-compute ((spec compute-cell-spec))
Generic Function: generate-did-change? (spec)

Generate an expression which checks whether the value of the cell defined by SPEC has changed during the last update cycle.

The expression should evaluate to true if the value of the cell may
have changed, even if it has not necessarily changed, and should
evaluate to NIL if it is known with certainty that the value of the
cell has not changed.

Package

live-cells.

Source

observer-cell.lisp.

Methods
Method: generate-did-change? ((spec changes-only-cell-spec))
Source

changes-only-state.lisp.

Method: generate-did-change? ((spec observer-cell-spec))
Generic Function: generate-extra (spec)

Generate any extra definitions required by the cell defined by SPEC.

The return value should be a single form which is inserted after the remaining definitions.

Package

live-cells.

Source

base-cell.lisp.

Methods
Method: generate-extra ((spec cell-spec))
Generic Function: generate-function-definition (spec)

Generate the CL code defining the function specified by the ‘FUNCTION-SPEC’ spec.

Package

live-cells.

Source

codegen.lisp.

Methods
Method: generate-function-definition ((spec function-spec))
Generic Function: generate-init (spec)

Generate the initialization function of the cell defined by SPEC.

The initialization function is called before adding the first observer on the cell.

The return value should be a single form defining only the body of the function. If NIL is returned, no init function is generated.

Package

live-cells.

Source

base-cell.lisp.

Methods
Method: generate-init ((spec compute-cell-spec))

Generate code which adds the cell as an observer of its arguments.

Source

computed-cell.lisp.

Method: generate-init ((spec cell-spec))
Generic Function: generate-notify-update (spec did-change)

Generate the function for notifying the observers of the cell defined by SPEC, that its value has changed.

DID-CHANGE is the symbol identifying the variable holding the value of
the did change argument.

The return value should be a single form defining only the body of the
function.

Package

live-cells.

Source

base-cell.lisp.

Methods
Method: generate-notify-update ((spec cell-spec) did-change)
Generic Function: generate-notify-will-update (spec)

Generate the function for notifying the observers of the cell defined by SPEC, that its value will change.

The return value should be a single form defining only the body of the
function.

Package

live-cells.

Source

base-cell.lisp.

Methods
Method: generate-notify-will-update ((spec cell-spec))
Generic Function: generate-observer-record (spec)

Generate the ‘OBSERVER’ record for the cell defined by SPEC.

Package

live-cells.

Source

computed-cell.lisp.

Methods
Method: generate-observer-record ((spec compute-cell-spec))
Generic Function: generate-on-update (spec did-change)

Generate the form which calls the ’update’ function of the observers of the cell defined by SPEC.

DID-CHANGE is the symbol identifying the variable holding the value of
the ’did change’ argument to the update call.

Package

live-cells.

Source

observer-cell.lisp.

Methods
Method: generate-on-update ((spec observer-cell-spec) did-change)
Generic Function: generate-on-will-update (spec)

Generate the form which calls the ’will-update’ function of the observers of the cell defined by SPEC.

Package

live-cells.

Source

observer-cell.lisp.

Methods
Method: generate-on-will-update ((spec observer-cell-spec))
Generic Function: generate-pause (spec)

Generate the cleanup function of the cell defined by SPEC.

The cleanup function is called after removing the last observer.

The return value should be a single form defining only the body of the function. If NIL is returned, no cleanup function is generated.

Package

live-cells.

Source

base-cell.lisp.

Methods
Method: generate-pause ((spec compute-cell-spec))

Generate code which stops observing the argument cells.

Source

computed-cell.lisp.

Method: generate-pause ((spec cell-spec))
Generic Function: generate-post-update (spec)

Generate a form which is run after the value of the cell defined by SPEC is changed.

The generated form is inserted in the ’update’ function of the cell,
after the value is updated.

Package

live-cells.

Source

observer-cell.lisp.

Methods
Method: generate-post-update ((spec changes-only-cell-spec))
Source

changes-only-state.lisp.

Method: generate-post-update ((spec observer-cell-spec))
Generic Function: generate-pre-update (spec)

Generate a form which is run before the update cycle for the cell defined by SPEC begins.

The generated form is evaluated when the ’will-update’ function is
called for the first time of an update cycle for the cell.

Package

live-cells.

Source

observer-cell.lisp.

Methods
Method: generate-pre-update ((spec changes-only-cell-spec))
Source

changes-only-state.lisp.

Method: generate-pre-update ((spec observer-cell-spec))
Generic Function: generate-remove-observer (spec arg)

Generate the function for removing an observer from the cell defined by SPEC.

ARG is the name of the symbol to use for the function argument.

The return value should be a single form defining only the body of the function.

Package

live-cells.

Source

base-cell.lisp.

Methods
Method: generate-remove-observer ((spec cell-spec) arg)
Generic Function: generate-setf-expansion (spec)

Generate the SETF expansion for the cell defined by SPEC.

This function should return six values where the first is true if the value of the cell can be set with SETF with the remaining values defining the SETF expansion (as per DEFINE-SETF-EXPANSION) for the cell.

Package

live-cells.

Source

base-cell.lisp.

Methods
Method: generate-setf-expansion ((spec mutable-cell-spec))
Source

mutable-cell.lisp.

Method: generate-setf-expansion ((spec cell-spec))
Generic Function: generate-update (spec arg did-change)

Generate the ’update’ function of the cell defined by SPEC.

The return value should be a single form implementing the function, with ARG being the symbol to use for the function argument.

DID-CHANGE is the symbol identifying the variable holding the value of the ’did change’ argument to the update call.

Package

live-cells.

Source

observer-cell.lisp.

Methods
Method: generate-update ((spec observer-cell-spec) arg changed)
Generic Function: generate-use-cell (spec)

Generate a form that references the value of the cell defined by SPEC, and track it as an argument.

Package

live-cells.

Source

base-cell.lisp.

Methods
Method: generate-use-cell ((spec compute-cell-spec))
Source

computed-cell.lisp.

Method: generate-use-cell ((spec cell-spec))
Generic Function: generate-variable-definition (spec)

Generate the CL code defining the variable specified by the ‘VARIABLE-SPEC’ spec.

Package

live-cells.

Source

codegen.lisp.

Methods
Method: generate-variable-definition ((spec variable-spec))
Generic Function: generate-watch-function (spec)

Generate the implementation of a watch function defined by SPEC.

Package

live-cells.

Source

watch-function.lisp.

Methods
Method: generate-watch-function ((spec watch-function-spec))
Generic Function: generate-will-update (spec arg)

Generate the ’will-update’ function of the cell defined by SPEC.

The return value should be a single form implementing the function, with ARG being the symbol to use for the function argument.

Package

live-cells.

Source

observer-cell.lisp.

Methods
Method: generate-will-update ((spec observer-cell-spec) arg)
Generic Reader: has-old-value? (object)
Generic Writer: (setf has-old-value?) (object)
Package

live-cells.

Methods
Reader Method: has-old-value? ((changes-only-cell-spec changes-only-cell-spec))
Writer Method: (setf has-old-value?) ((changes-only-cell-spec changes-only-cell-spec))

Name of the variable holding the flag for whether the previous value has been recorded?

Source

changes-only-state.lisp.

Target Slot

has-old-value?.

Generic Reader: has-value? (object)
Generic Writer: (setf has-value?) (object)
Package

live-cells.

Methods
Reader Method: has-value? ((observer-cell-spec observer-cell-spec))
Writer Method: (setf has-value?) ((observer-cell-spec observer-cell-spec))

Name of the variable holding the flag for whether at least one value has been computed for the cell.

Source

observer-cell.lisp.

Target Slot

has-value?.

Generic Reader: init-form (object)
Generic Writer: (setf init-form) (object)
Package

live-cells.

Methods
Reader Method: init-form ((cell-spec cell-spec))
Writer Method: (setf init-form) ((cell-spec cell-spec))

Form that computes the cell’s value

Source

base-cell.lisp.

Target Slot

init-form.

Generic Reader: name (object)
Generic Writer: (setf name) (object)
Package

live-cells.

Methods
Reader Method: name ((watch-function-spec watch-function-spec))
Writer Method: (setf name) ((watch-function-spec watch-function-spec))

Watch function identifier

Source

watch-function.lisp.

Target Slot

name.

Reader Method: name ((cell-spec cell-spec))
Writer Method: (setf name) ((cell-spec cell-spec))

Cell identifier

Source

base-cell.lisp.

Target Slot

name.

Generic Reader: notify-update (object)
Generic Writer: (setf notify-update) (object)
Package

live-cells.

Methods
Reader Method: notify-update ((cell-spec cell-spec))
Writer Method: (setf notify-update) ((cell-spec cell-spec))

Name of the function for notifying the observers of this cell that its value has changed.

Source

base-cell.lisp.

Target Slot

notify-update.

Generic Reader: notify-will-update (object)
Generic Writer: (setf notify-will-update) (object)
Package

live-cells.

Methods
Reader Method: notify-will-update ((cell-spec cell-spec))
Writer Method: (setf notify-will-update) ((cell-spec cell-spec))

Name of the function for notifying the observers of this cell that its value will change.

Source

base-cell.lisp.

Target Slot

notify-will-update.

Generic Reader: observers (object)
Generic Writer: (setf observers) (object)
Package

live-cells.

Methods
Reader Method: observers ((cell-spec cell-spec))
Writer Method: (setf observers) ((cell-spec cell-spec))

Name of the variable holding the cell’s observer set.

Source

base-cell.lisp.

Target Slot

observers.

Generic Reader: old-value (object)
Generic Writer: (setf old-value) (object)
Package

live-cells.

Methods
Reader Method: old-value ((changes-only-cell-spec changes-only-cell-spec))
Writer Method: (setf old-value) ((changes-only-cell-spec changes-only-cell-spec))

Name of the variable holding the previous value of the cell.

Source

changes-only-state.lisp.

Target Slot

old-value.

Generic Reader: remove-observer (object)
Generic Writer: (setf remove-observer) (object)
Package

live-cells.

Methods
Reader Method: remove-observer ((cell-spec cell-spec))
Writer Method: (setf remove-observer) ((cell-spec cell-spec))

Name of the function for removing a cell observer.

Source

base-cell.lisp.

Target Slot

remove-observer.

Generic Reader: stale? (object)
Generic Writer: (setf stale?) (object)
Package

live-cells.

Methods
Reader Method: stale? ((observer-cell-spec observer-cell-spec))
Writer Method: (setf stale?) ((observer-cell-spec observer-cell-spec))

Name of the variable holding the flag for whether the cell’s value should be recomputed.

Source

observer-cell.lisp.

Target Slot

stale?.

Generic Reader: update (object)
Generic Writer: (setf update) (object)
Package

live-cells.

Methods
Reader Method: update ((observer-cell-spec observer-cell-spec))
Writer Method: (setf update) ((observer-cell-spec observer-cell-spec))

Name of the variable holding the cells ’update’ function.

Source

observer-cell.lisp.

Target Slot

update.

Generic Reader: updating? (object)
Generic Writer: (setf updating?) (object)
Package

live-cells.

Methods
Reader Method: updating? ((observer-cell-spec observer-cell-spec))
Writer Method: (setf updating?) ((observer-cell-spec observer-cell-spec))

Name of the variable holding the flag for whether the cell’s value is being recomputed.

Source

observer-cell.lisp.

Target Slot

updating?.

Generic Reader: value (object)
Generic Writer: (setf value) (object)
Package

live-cells.

Methods
Reader Method: value ((cell-spec cell-spec))
Writer Method: (setf value) ((cell-spec cell-spec))

Name of the variable holding the cell’s value.

Source

base-cell.lisp.

Target Slot

value.

Generic Reader: will-update (object)
Generic Writer: (setf will-update) (object)
Package

live-cells.

Methods
Reader Method: will-update ((observer-cell-spec observer-cell-spec))
Writer Method: (setf will-update) ((observer-cell-spec observer-cell-spec))

Name of the variable holding the cells ’will-update’ function.

Source

observer-cell.lisp.

Target Slot

will-update.


6.2.8 Structures

Structure: argument

Identifies a cell argument.

KEY is the argument cell identifier.

ADD-OBSERVER and REMOVE-OBSERVER are the functions for adding and removing observers respectively.

Package

live-cells.

Source

observer.lisp.

Direct superclasses

structure-object.

Direct methods
Direct slots
Slot: key
Readers

argument-key.

Writers

(setf argument-key).

Slot: add-observer
Readers

argument-add-observer.

Writers

(setf argument-add-observer).

Slot: remove-observer
Readers

argument-remove-observer.

Writers

(setf argument-remove-observer).

Structure: function-spec

Specification of a function definition.

NAME is the symbol naming the function.

LAMBDA-LIST is the function’s lambda-list.

DECLARE is a list of declarations applying to the function’s environment.

BODY is the list of forms comprising the function body.

TYPE is one of the following keywords identifying the type of definition:

- :FUNCTION

A function defined with DEFUN

- :MACRO

A macro defined with DEFMACRO

Package

live-cells.

Source

codegen.lisp.

Direct superclasses

structure-object.

Direct methods

generate-function-definition.

Direct slots
Slot: name
Readers

function-spec-name.

Writers

(setf function-spec-name).

Slot: lambda-list
Readers

function-spec-lambda-list.

Writers

(setf function-spec-lambda-list).

Slot: declare
Package

common-lisp.

Readers

function-spec-declare.

Writers

(setf function-spec-declare).

Slot: body
Readers

function-spec-body.

Writers

(setf function-spec-body).

Slot: type
Package

common-lisp.

Readers

function-spec-type.

Writers

(setf function-spec-type).

Structure: observer

Identifies a cell observer.

KEY is the cell identifier.

WILL-UPDATE and UPDATE are the ’will update’ and ’update’ functions, respectively

Package

live-cells.

Source

observer.lisp.

Direct superclasses

structure-object.

Direct methods
Direct slots
Slot: key
Readers

observer-key.

Writers

(setf observer-key).

Slot: will-update
Readers

observer-will-update.

Writers

(setf observer-will-update).

Slot: update
Readers

observer-update.

Writers

(setf observer-update).

Structure: variable-spec

Specification of a variable definition.

NAME is the symbol identifying the variable.

INITFORM is the form computing the initial value of the variable.

TYPE is one of the following keywords identifying the type of definition:

- :VARIABLE

A variable defined with DEFVAR

- :PARAM

A variable defined with DEFPARAMETER

- :SYMBOL-MACRO

A symbol macro defined with DEFINE-SYMBOL-MACRO

Package

live-cells.

Source

codegen.lisp.

Direct superclasses

structure-object.

Direct methods

generate-variable-definition.

Direct slots
Slot: name
Readers

variable-spec-name.

Writers

(setf variable-spec-name).

Slot: initform
Readers

variable-spec-initform.

Writers

(setf variable-spec-initform).

Slot: type
Package

common-lisp.

Readers

variable-spec-type.

Writers

(setf variable-spec-type).


6.2.9 Classes

Class: cell-spec

Specification for a cell, that is used by code generators to generate the actual implementation.

Package

live-cells.

Source

base-cell.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: name

Cell identifier

Initargs

:name

Readers

name.

Writers

(setf name).

Slot: value

Name of the variable holding the cell’s value.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::cell-value))

Initargs

:value

Readers

value.

Writers

(setf value).

Slot: init-form

Form that computes the cell’s value

Initargs

:init

Readers

init-form.

Writers

(setf init-form).

Slot: observers

Name of the variable holding the cell’s observer set.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::cell-observers))

Initargs

:observers

Readers

observers.

Writers

(setf observers).

Slot: add-observer

Name of the function for adding an observer to this cell.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::add-observer))

Initargs

:add-observer

Readers

add-observer.

Writers

(setf add-observer).

Slot: remove-observer

Name of the function for removing a cell observer.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::remove-observer))

Initargs

:remove-observer

Readers

remove-observer.

Writers

(setf remove-observer).

Slot: notify-update

Name of the function for notifying the observers of this cell that its value has changed.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::notify-update))

Initargs

:notify-update

Readers

notify-update.

Writers

(setf notify-update).

Slot: notify-will-update

Name of the function for notifying the observers of this cell that its value will change.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::notify-will-update))

Initargs

:notify-will-update

Readers

notify-will-update.

Writers

(setf notify-will-update).

Class: changes-only-cell-spec

Specification for a cell that only notifies its observers when its new value is /= to its previous value.

This class can be used as mixin in existing cell classes. This means
that when this class is added as a super class of another cell class,
the behaviour of the cell it is added to is changed, such that it only
notifies its observers when its new value is not equal (by /=) to its
previous value.

NOTE: This also changes the behaviour of a cell from lazy evaluation,
when the value of the cell is referenced, to eager evaluation
whenever the values of its dependencies change.

Package

live-cells.

Source

changes-only-state.lisp.

Direct superclasses

observer-cell-spec.

Direct subclasses

compute-changes-only-cell-spec.

Direct methods
Direct slots
Slot: has-old-value?

Name of the variable holding the flag for whether the previous value has been recorded?

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::has-old-value?))

Initargs

:has-old-value?

Readers

has-old-value?.

Writers

(setf has-old-value?).

Slot: old-value

Name of the variable holding the previous value of the cell.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::old-value))

Initargs

:old-value

Readers

old-value.

Writers

(setf old-value).

Class: compute-cell-spec

Specification for a cell of which the value is a function of one or more argument cells.

Package

live-cells.

Source

computed-cell.lisp.

Direct superclasses

observer-cell-spec.

Direct subclasses

compute-changes-only-cell-spec.

Direct methods
Direct slots
Slot: arguments

Name of the variable holding the cell’s argument set.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::arguments))

Initargs

:arguments

Readers

arguments.

Writers

(setf arguments).

Slot: compute

Name of the compute value function for this cell.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::compute))

Initargs

:compute

Readers

compute.

Writers

(setf compute).

Class: compute-changes-only-cell-spec

Specification for a computed cell that only notifies its observers when its new value is /= to its previous value.

Package

live-cells.

Source

computed-cell.lisp.

Direct superclasses
Class: mutable-cell-spec

Specification for a cell that can have its value set directly.

Package

live-cells.

Source

mutable-cell.lisp.

Direct superclasses

cell-spec.

Direct methods

generate-setf-expansion.

Class: observer-cell-spec

Specification for a cell of which the value is recomputed when the values of its argument cells change.

Package

live-cells.

Source

observer-cell.lisp.

Direct superclasses

cell-spec.

Direct subclasses
Direct methods
Direct slots
Slot: stale?

Name of the variable holding the flag for whether the cell’s value should be recomputed.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::stale?))

Initargs

:stale?

Readers

stale?.

Writers

(setf stale?).

Slot: has-value?

Name of the variable holding the flag for whether at least one value has been computed for the cell.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::has-value?))

Initargs

:has-value?

Readers

has-value?.

Writers

(setf has-value?).

Slot: updating?

Name of the variable holding the flag for whether the cell’s value is being recomputed.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::updating?))

Initargs

:updating?

Readers

updating?.

Writers

(setf updating?).

Slot: changed-dependencies

Name of the variable holding the number of dependencies that were changed during the current update cycle.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::changed-dependencies))

Initargs

:changed-dependencies

Readers

changed-dependencies.

Writers

(setf changed-dependencies).

Slot: did-change?

Name of the variable holding the flag for whether the cell’s value may have changed during the current update cycle.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::did-change?))

Initargs

:did-change?

Readers

did-change?.

Writers

(setf did-change?).

Slot: will-update

Name of the variable holding the cells ’will-update’ function.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::will-update))

Initargs

:will-update

Readers

will-update.

Writers

(setf will-update).

Slot: update

Name of the variable holding the cells ’update’ function.

Initform

(live-cells::cell-symbol (quote live-cells::cell) (quote live-cells::update))

Initargs

:update

Readers

update.

Writers

(setf update).

Class: watch-function-spec

Defines the specification of a cell watch function.

Package

live-cells.

Source

watch-function.lisp.

Direct methods
Direct slots
Slot: name

Watch function identifier

Initform

(gensym)

Initargs

:name

Readers

name.

Writers

(setf name).

Slot: body

List of forms comprising the body of the watch function.

Initargs

:body

Readers

body-forms.

Writers

(setf body-forms).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
A   B   C   D   E   F   G   H   I   L   M   N   O   R   S   T   U   V   W  
Index Entry  Section

(
(setf add-observer): Private generic functions
(setf add-observer): Private generic functions
(setf argument-add-observer): Private ordinary functions
(setf argument-key): Private ordinary functions
(setf argument-remove-observer): Private ordinary functions
(setf arguments): Private generic functions
(setf arguments): Private generic functions
(setf body-forms): Private generic functions
(setf body-forms): Private generic functions
(setf changed-dependencies): Private generic functions
(setf changed-dependencies): Private generic functions
(setf compute): Private generic functions
(setf compute): Private generic functions
(setf did-change?): Private generic functions
(setf did-change?): Private generic functions
(setf function-spec-body): Private ordinary functions
(setf function-spec-declare): Private ordinary functions
(setf function-spec-lambda-list): Private ordinary functions
(setf function-spec-name): Private ordinary functions
(setf function-spec-type): Private ordinary functions
(setf has-old-value?): Private generic functions
(setf has-old-value?): Private generic functions
(setf has-value?): Private generic functions
(setf has-value?): Private generic functions
(setf init-form): Private generic functions
(setf init-form): Private generic functions
(setf name): Private generic functions
(setf name): Private generic functions
(setf name): Private generic functions
(setf notify-update): Private generic functions
(setf notify-update): Private generic functions
(setf notify-will-update): Private generic functions
(setf notify-will-update): Private generic functions
(setf observer-key): Private ordinary functions
(setf observer-update): Private ordinary functions
(setf observer-will-update): Private ordinary functions
(setf observers): Private generic functions
(setf observers): Private generic functions
(setf old-value): Private generic functions
(setf old-value): Private generic functions
(setf remove-observer): Private generic functions
(setf remove-observer): Private generic functions
(setf stale?): Private generic functions
(setf stale?): Private generic functions
(setf update): Private generic functions
(setf update): Private generic functions
(setf updating?): Private generic functions
(setf updating?): Private generic functions
(setf use-cell%): Private setf expanders
(setf value): Private generic functions
(setf value): Private generic functions
(setf variable-spec-initform): Private ordinary functions
(setf variable-spec-name): Private ordinary functions
(setf variable-spec-type): Private ordinary functions
(setf will-update): Private generic functions
(setf will-update): Private generic functions

A
add-observer: Private generic functions
add-observer: Private generic functions
add-to-batch: Private ordinary functions
argument-add-observer: Private ordinary functions
argument-key: Private ordinary functions
argument-p: Private ordinary functions
argument-remove-observer: Private ordinary functions
arguments: Private generic functions
arguments: Private generic functions

B
batch: Public macros
body-forms: Private generic functions
body-forms: Private generic functions

C
call-add-observer: Private ordinary functions
call-remove-observer: Private ordinary functions
call-update: Private ordinary functions
call-will-update: Private ordinary functions
cell-let: Public macros
cell-symbol: Private ordinary functions
changed-dependencies: Private generic functions
changed-dependencies: Private generic functions
Compiler Macro, generate-add-observer: Private compiler macros
Compiler Macro, generate-argument-record: Private compiler macros
Compiler Macro, generate-cell-definition: Private compiler macros
Compiler Macro, generate-cell-functions: Private compiler macros
Compiler Macro, generate-cell-variables: Private compiler macros
Compiler Macro, generate-compute: Private compiler macros
Compiler Macro, generate-did-change?: Private compiler macros
Compiler Macro, generate-extra: Private compiler macros
Compiler Macro, generate-function-definition: Private compiler macros
Compiler Macro, generate-init: Private compiler macros
Compiler Macro, generate-notify-update: Private compiler macros
Compiler Macro, generate-notify-will-update: Private compiler macros
Compiler Macro, generate-observer-record: Private compiler macros
Compiler Macro, generate-on-update: Private compiler macros
Compiler Macro, generate-on-will-update: Private compiler macros
Compiler Macro, generate-pause: Private compiler macros
Compiler Macro, generate-post-update: Private compiler macros
Compiler Macro, generate-pre-update: Private compiler macros
Compiler Macro, generate-remove-observer: Private compiler macros
Compiler Macro, generate-setf-expansion: Private compiler macros
Compiler Macro, generate-update: Private compiler macros
Compiler Macro, generate-use-cell: Private compiler macros
Compiler Macro, generate-variable-definition: Private compiler macros
Compiler Macro, generate-watch-function: Private compiler macros
Compiler Macro, generate-will-update: Private compiler macros
compute: Private generic functions
compute: Private generic functions
computed-cell-let%: Private macros
copy-argument: Private ordinary functions
copy-function-spec: Private ordinary functions
copy-observer: Private ordinary functions
copy-variable-spec: Private ordinary functions

D
default-value: Private generic functions
default-value: Private generic functions
defcell: Public macros
define-computed-cell%: Private macros
define-mutable-cell%: Private macros
did-change?: Private generic functions
did-change?: Private generic functions

E
end-batch: Private ordinary functions
equalp: Public standalone methods
equalp: Public standalone methods

F
Function, (setf argument-add-observer): Private ordinary functions
Function, (setf argument-key): Private ordinary functions
Function, (setf argument-remove-observer): Private ordinary functions
Function, (setf function-spec-body): Private ordinary functions
Function, (setf function-spec-declare): Private ordinary functions
Function, (setf function-spec-lambda-list): Private ordinary functions
Function, (setf function-spec-name): Private ordinary functions
Function, (setf function-spec-type): Private ordinary functions
Function, (setf observer-key): Private ordinary functions
Function, (setf observer-update): Private ordinary functions
Function, (setf observer-will-update): Private ordinary functions
Function, (setf variable-spec-initform): Private ordinary functions
Function, (setf variable-spec-name): Private ordinary functions
Function, (setf variable-spec-type): Private ordinary functions
Function, add-to-batch: Private ordinary functions
Function, argument-add-observer: Private ordinary functions
Function, argument-key: Private ordinary functions
Function, argument-p: Private ordinary functions
Function, argument-remove-observer: Private ordinary functions
Function, call-add-observer: Private ordinary functions
Function, call-remove-observer: Private ordinary functions
Function, call-update: Private ordinary functions
Function, call-will-update: Private ordinary functions
Function, cell-symbol: Private ordinary functions
Function, copy-argument: Private ordinary functions
Function, copy-function-spec: Private ordinary functions
Function, copy-observer: Private ordinary functions
Function, copy-variable-spec: Private ordinary functions
Function, end-batch: Private ordinary functions
Function, function-spec-body: Private ordinary functions
Function, function-spec-declare: Private ordinary functions
Function, function-spec-lambda-list: Private ordinary functions
Function, function-spec-name: Private ordinary functions
Function, function-spec-p: Private ordinary functions
Function, function-spec-type: Private ordinary functions
Function, make-argument: Private ordinary functions
Function, make-function-spec: Private ordinary functions
Function, make-local-cell-definition%: Private ordinary functions
Function, make-observer: Private ordinary functions
Function, make-setf-expansion: Private ordinary functions
Function, make-variable-spec: Private ordinary functions
Function, none: Public ordinary functions
Function, observer-key: Private ordinary functions
Function, observer-p: Private ordinary functions
Function, observer-update: Private ordinary functions
Function, observer-will-update: Private ordinary functions
Function, track-argument: Private ordinary functions
Function, variable-spec-initform: Private ordinary functions
Function, variable-spec-name: Private ordinary functions
Function, variable-spec-p: Private ordinary functions
Function, variable-spec-type: Private ordinary functions
function-spec-body: Private ordinary functions
function-spec-declare: Private ordinary functions
function-spec-lambda-list: Private ordinary functions
function-spec-name: Private ordinary functions
function-spec-p: Private ordinary functions
function-spec-type: Private ordinary functions

G
generate-add-observer: Private compiler macros
generate-add-observer: Private generic functions
generate-add-observer: Private generic functions
generate-argument-record: Private compiler macros
generate-argument-record: Private generic functions
generate-argument-record: Private generic functions
generate-cell-definition: Private compiler macros
generate-cell-definition: Private generic functions
generate-cell-definition: Private generic functions
generate-cell-functions: Private compiler macros
generate-cell-functions: Private generic functions
generate-cell-functions: Private generic functions
generate-cell-functions: Private generic functions
generate-cell-functions: Private generic functions
generate-cell-variables: Private compiler macros
generate-cell-variables: Private generic functions
generate-cell-variables: Private generic functions
generate-cell-variables: Private generic functions
generate-cell-variables: Private generic functions
generate-cell-variables: Private generic functions
generate-compute: Private compiler macros
generate-compute: Private generic functions
generate-compute: Private generic functions
generate-did-change?: Private compiler macros
generate-did-change?: Private generic functions
generate-did-change?: Private generic functions
generate-did-change?: Private generic functions
generate-extra: Private compiler macros
generate-extra: Private generic functions
generate-extra: Private generic functions
generate-function-definition: Private compiler macros
generate-function-definition: Private generic functions
generate-function-definition: Private generic functions
generate-init: Private compiler macros
generate-init: Private generic functions
generate-init: Private generic functions
generate-init: Private generic functions
generate-notify-update: Private compiler macros
generate-notify-update: Private generic functions
generate-notify-update: Private generic functions
generate-notify-will-update: Private compiler macros
generate-notify-will-update: Private generic functions
generate-notify-will-update: Private generic functions
generate-observer-record: Private compiler macros
generate-observer-record: Private generic functions
generate-observer-record: Private generic functions
generate-on-update: Private compiler macros
generate-on-update: Private generic functions
generate-on-update: Private generic functions
generate-on-will-update: Private compiler macros
generate-on-will-update: Private generic functions
generate-on-will-update: Private generic functions
generate-pause: Private compiler macros
generate-pause: Private generic functions
generate-pause: Private generic functions
generate-pause: Private generic functions
generate-post-update: Private compiler macros
generate-post-update: Private generic functions
generate-post-update: Private generic functions
generate-post-update: Private generic functions
generate-pre-update: Private compiler macros
generate-pre-update: Private generic functions
generate-pre-update: Private generic functions
generate-pre-update: Private generic functions
generate-remove-observer: Private compiler macros
generate-remove-observer: Private generic functions
generate-remove-observer: Private generic functions
generate-setf-expansion: Private compiler macros
generate-setf-expansion: Private generic functions
generate-setf-expansion: Private generic functions
generate-setf-expansion: Private generic functions
generate-update: Private compiler macros
generate-update: Private generic functions
generate-update: Private generic functions
generate-use-cell: Private compiler macros
generate-use-cell: Private generic functions
generate-use-cell: Private generic functions
generate-use-cell: Private generic functions
generate-variable-definition: Private compiler macros
generate-variable-definition: Private generic functions
generate-variable-definition: Private generic functions
generate-watch-function: Private compiler macros
generate-watch-function: Private generic functions
generate-watch-function: Private generic functions
generate-will-update: Private compiler macros
generate-will-update: Private generic functions
generate-will-update: Private generic functions
Generic Function, (setf add-observer): Private generic functions
Generic Function, (setf arguments): Private generic functions
Generic Function, (setf body-forms): Private generic functions
Generic Function, (setf changed-dependencies): Private generic functions
Generic Function, (setf compute): Private generic functions
Generic Function, (setf did-change?): Private generic functions
Generic Function, (setf has-old-value?): Private generic functions
Generic Function, (setf has-value?): Private generic functions
Generic Function, (setf init-form): Private generic functions
Generic Function, (setf name): Private generic functions
Generic Function, (setf notify-update): Private generic functions
Generic Function, (setf notify-will-update): Private generic functions
Generic Function, (setf observers): Private generic functions
Generic Function, (setf old-value): Private generic functions
Generic Function, (setf remove-observer): Private generic functions
Generic Function, (setf stale?): Private generic functions
Generic Function, (setf update): Private generic functions
Generic Function, (setf updating?): Private generic functions
Generic Function, (setf value): Private generic functions
Generic Function, (setf will-update): Private generic functions
Generic Function, add-observer: Private generic functions
Generic Function, arguments: Private generic functions
Generic Function, body-forms: Private generic functions
Generic Function, changed-dependencies: Private generic functions
Generic Function, compute: Private generic functions
Generic Function, default-value: Private generic functions
Generic Function, did-change?: Private generic functions
Generic Function, generate-add-observer: Private generic functions
Generic Function, generate-argument-record: Private generic functions
Generic Function, generate-cell-definition: Private generic functions
Generic Function, generate-cell-functions: Private generic functions
Generic Function, generate-cell-variables: Private generic functions
Generic Function, generate-compute: Private generic functions
Generic Function, generate-did-change?: Private generic functions
Generic Function, generate-extra: Private generic functions
Generic Function, generate-function-definition: Private generic functions
Generic Function, generate-init: Private generic functions
Generic Function, generate-notify-update: Private generic functions
Generic Function, generate-notify-will-update: Private generic functions
Generic Function, generate-observer-record: Private generic functions
Generic Function, generate-on-update: Private generic functions
Generic Function, generate-on-will-update: Private generic functions
Generic Function, generate-pause: Private generic functions
Generic Function, generate-post-update: Private generic functions
Generic Function, generate-pre-update: Private generic functions
Generic Function, generate-remove-observer: Private generic functions
Generic Function, generate-setf-expansion: Private generic functions
Generic Function, generate-update: Private generic functions
Generic Function, generate-use-cell: Private generic functions
Generic Function, generate-variable-definition: Private generic functions
Generic Function, generate-watch-function: Private generic functions
Generic Function, generate-will-update: Private generic functions
Generic Function, has-old-value?: Private generic functions
Generic Function, has-value?: Private generic functions
Generic Function, init-form: Private generic functions
Generic Function, name: Private generic functions
Generic Function, notify-update: Private generic functions
Generic Function, notify-will-update: Private generic functions
Generic Function, observers: Private generic functions
Generic Function, old-value: Private generic functions
Generic Function, remove-observer: Private generic functions
Generic Function, stale?: Private generic functions
Generic Function, update: Private generic functions
Generic Function, updating?: Private generic functions
Generic Function, value: Private generic functions
Generic Function, will-update: Private generic functions

H
has-old-value?: Private generic functions
has-old-value?: Private generic functions
has-value?: Private generic functions
has-value?: Private generic functions
hash: Public standalone methods
hash: Public standalone methods

I
init-form: Private generic functions
init-form: Private generic functions

L
live: Public macros

M
Macro, batch: Public macros
Macro, cell-let: Public macros
Macro, computed-cell-let%: Private macros
Macro, defcell: Public macros
Macro, define-computed-cell%: Private macros
Macro, define-mutable-cell%: Private macros
Macro, live: Public macros
Macro, mutable-cell-let%: Private macros
Macro, use-cell%: Private macros
Macro, with-live-scope: Public macros
Macro, with-tracker: Private macros
Macro, without-tracker: Private macros
make-argument: Private ordinary functions
make-function-spec: Private ordinary functions
make-local-cell-definition%: Private ordinary functions
make-observer: Private ordinary functions
make-setf-expansion: Private ordinary functions
make-variable-spec: Private ordinary functions
Method, (setf add-observer): Private generic functions
Method, (setf arguments): Private generic functions
Method, (setf body-forms): Private generic functions
Method, (setf changed-dependencies): Private generic functions
Method, (setf compute): Private generic functions
Method, (setf did-change?): Private generic functions
Method, (setf has-old-value?): Private generic functions
Method, (setf has-value?): Private generic functions
Method, (setf init-form): Private generic functions
Method, (setf name): Private generic functions
Method, (setf name): Private generic functions
Method, (setf notify-update): Private generic functions
Method, (setf notify-will-update): Private generic functions
Method, (setf observers): Private generic functions
Method, (setf old-value): Private generic functions
Method, (setf remove-observer): Private generic functions
Method, (setf stale?): Private generic functions
Method, (setf update): Private generic functions
Method, (setf updating?): Private generic functions
Method, (setf value): Private generic functions
Method, (setf will-update): Private generic functions
Method, add-observer: Private generic functions
Method, arguments: Private generic functions
Method, body-forms: Private generic functions
Method, changed-dependencies: Private generic functions
Method, compute: Private generic functions
Method, default-value: Private generic functions
Method, did-change?: Private generic functions
Method, equalp: Public standalone methods
Method, equalp: Public standalone methods
Method, generate-add-observer: Private generic functions
Method, generate-argument-record: Private generic functions
Method, generate-cell-definition: Private generic functions
Method, generate-cell-functions: Private generic functions
Method, generate-cell-functions: Private generic functions
Method, generate-cell-functions: Private generic functions
Method, generate-cell-variables: Private generic functions
Method, generate-cell-variables: Private generic functions
Method, generate-cell-variables: Private generic functions
Method, generate-cell-variables: Private generic functions
Method, generate-compute: Private generic functions
Method, generate-did-change?: Private generic functions
Method, generate-did-change?: Private generic functions
Method, generate-extra: Private generic functions
Method, generate-function-definition: Private generic functions
Method, generate-init: Private generic functions
Method, generate-init: Private generic functions
Method, generate-notify-update: Private generic functions
Method, generate-notify-will-update: Private generic functions
Method, generate-observer-record: Private generic functions
Method, generate-on-update: Private generic functions
Method, generate-on-will-update: Private generic functions
Method, generate-pause: Private generic functions
Method, generate-pause: Private generic functions
Method, generate-post-update: Private generic functions
Method, generate-post-update: Private generic functions
Method, generate-pre-update: Private generic functions
Method, generate-pre-update: Private generic functions
Method, generate-remove-observer: Private generic functions
Method, generate-setf-expansion: Private generic functions
Method, generate-setf-expansion: Private generic functions
Method, generate-update: Private generic functions
Method, generate-use-cell: Private generic functions
Method, generate-use-cell: Private generic functions
Method, generate-variable-definition: Private generic functions
Method, generate-watch-function: Private generic functions
Method, generate-will-update: Private generic functions
Method, has-old-value?: Private generic functions
Method, has-value?: Private generic functions
Method, hash: Public standalone methods
Method, hash: Public standalone methods
Method, init-form: Private generic functions
Method, name: Private generic functions
Method, name: Private generic functions
Method, notify-update: Private generic functions
Method, notify-will-update: Private generic functions
Method, observers: Private generic functions
Method, old-value: Private generic functions
Method, remove-observer: Private generic functions
Method, stale?: Private generic functions
Method, update: Private generic functions
Method, updating?: Private generic functions
Method, value: Private generic functions
Method, will-update: Private generic functions
mutable-cell-let%: Private macros

N
name: Private generic functions
name: Private generic functions
name: Private generic functions
none: Public ordinary functions
notify-update: Private generic functions
notify-update: Private generic functions
notify-will-update: Private generic functions
notify-will-update: Private generic functions

O
observer-key: Private ordinary functions
observer-p: Private ordinary functions
observer-update: Private ordinary functions
observer-will-update: Private ordinary functions
observers: Private generic functions
observers: Private generic functions
old-value: Private generic functions
old-value: Private generic functions

R
remove-observer: Private generic functions
remove-observer: Private generic functions

S
Setf Expander, (setf use-cell%): Private setf expanders
stale?: Private generic functions
stale?: Private generic functions

T
track-argument: Private ordinary functions

U
update: Private generic functions
update: Private generic functions
updating?: Private generic functions
updating?: Private generic functions
use-cell%: Private macros

V
value: Private generic functions
value: Private generic functions
variable-spec-initform: Private ordinary functions
variable-spec-name: Private ordinary functions
variable-spec-p: Private ordinary functions
variable-spec-type: Private ordinary functions

W
will-update: Private generic functions
will-update: Private generic functions
with-live-scope: Public macros
with-tracker: Private macros
without-tracker: Private macros


A.3 Variables

Jump to:   *   +  
A   B   C   D   H   I   K   L   N   O   R   S   T   U   V   W  
Index Entry  Section

*
*batch-in-effect-p*: Private special variables
*batch-list*: Private special variables
*bind-init-form-p*: Private special variables
*global-cell-definition*: Private special variables
*track-cell-callback*: Private special variables

+
+cell-def-package+: Private constants

A
add-observer: Private structures
add-observer: Private classes
arguments: Private classes

B
body: Private structures
body: Private classes

C
changed-dependencies: Private classes
compute: Private classes
Constant, +cell-def-package+: Private constants

D
declare: Private structures
default-value: Public conditions
did-change?: Private classes

H
has-old-value?: Private classes
has-value?: Private classes

I
init-form: Private classes
initform: Private structures

K
key: Private structures
key: Private structures

L
lambda-list: Private structures

N
name: Private structures
name: Private structures
name: Private classes
name: Private classes
none: Public symbol macros
notify-update: Private classes
notify-will-update: Private classes

O
observers: Private classes
old-value: Private classes

R
remove-observer: Private structures
remove-observer: Private classes

S
Slot, add-observer: Private structures
Slot, add-observer: Private classes
Slot, arguments: Private classes
Slot, body: Private structures
Slot, body: Private classes
Slot, changed-dependencies: Private classes
Slot, compute: Private classes
Slot, declare: Private structures
Slot, default-value: Public conditions
Slot, did-change?: Private classes
Slot, has-old-value?: Private classes
Slot, has-value?: Private classes
Slot, init-form: Private classes
Slot, initform: Private structures
Slot, key: Private structures
Slot, key: Private structures
Slot, lambda-list: Private structures
Slot, name: Private structures
Slot, name: Private structures
Slot, name: Private classes
Slot, name: Private classes
Slot, notify-update: Private classes
Slot, notify-will-update: Private classes
Slot, observers: Private classes
Slot, old-value: Private classes
Slot, remove-observer: Private structures
Slot, remove-observer: Private classes
Slot, stale?: Private classes
Slot, type: Private structures
Slot, type: Private structures
Slot, update: Private structures
Slot, update: Private classes
Slot, updating?: Private classes
Slot, value: Private classes
Slot, will-update: Private structures
Slot, will-update: Private classes
Special Variable, *batch-in-effect-p*: Private special variables
Special Variable, *batch-list*: Private special variables
Special Variable, *bind-init-form-p*: Private special variables
Special Variable, *global-cell-definition*: Private special variables
Special Variable, *track-cell-callback*: Private special variables
stale?: Private classes
Symbol Macro, none: Public symbol macros

T
type: Private structures
type: Private structures

U
update: Private structures
update: Private classes
updating?: Private classes

V
value: Private classes

W
will-update: Private structures
will-update: Private classes


A.4 Data types

Jump to:   A   B   C   F   L   M   O   P   S   T   V   W  
Index Entry  Section

A
argument: Private structures

B
base-cell.lisp: The live-cells/src/base-cell․lisp file

C
cell-spec: Private classes
changes-only-cell-spec: Private classes
changes-only-state.lisp: The live-cells/src/changes-only-state․lisp file
Class, cell-spec: Private classes
Class, changes-only-cell-spec: Private classes
Class, compute-cell-spec: Private classes
Class, compute-changes-only-cell-spec: Private classes
Class, mutable-cell-spec: Private classes
Class, observer-cell-spec: Private classes
Class, watch-function-spec: Private classes
codegen.lisp: The live-cells/src/codegen․lisp file
compute-cell-spec: Private classes
compute-changes-only-cell-spec: Private classes
computed-cell.lisp: The live-cells/src/computed-cell․lisp file
Condition, stop-computation: Public conditions

F
File, base-cell.lisp: The live-cells/src/base-cell․lisp file
File, changes-only-state.lisp: The live-cells/src/changes-only-state․lisp file
File, codegen.lisp: The live-cells/src/codegen․lisp file
File, computed-cell.lisp: The live-cells/src/computed-cell․lisp file
File, live-cells.asd: The live-cells/live-cells․asd file
File, macros.lisp: The live-cells/src/macros․lisp file
File, mutable-cell.lisp: The live-cells/src/mutable-cell․lisp file
File, observer-cell.lisp: The live-cells/src/observer-cell․lisp file
File, observer.lisp: The live-cells/src/observer․lisp file
File, package.lisp: The live-cells/src/package․lisp file
File, stop-compute.lisp: The live-cells/src/stop-compute․lisp file
File, tracker.lisp: The live-cells/src/tracker․lisp file
File, watch-function.lisp: The live-cells/src/watch-function․lisp file
function-spec: Private structures

L
live-cells: The live-cells system
live-cells: The live-cells package
live-cells-cell: The live-cells-cell package
live-cells.asd: The live-cells/live-cells․asd file

M
macros.lisp: The live-cells/src/macros․lisp file
Module, src: The live-cells/src module
mutable-cell-spec: Private classes
mutable-cell.lisp: The live-cells/src/mutable-cell․lisp file

O
observer: Private structures
observer-cell-spec: Private classes
observer-cell.lisp: The live-cells/src/observer-cell․lisp file
observer.lisp: The live-cells/src/observer․lisp file

P
Package, live-cells: The live-cells package
Package, live-cells-cell: The live-cells-cell package
package.lisp: The live-cells/src/package․lisp file

S
src: The live-cells/src module
stop-computation: Public conditions
stop-compute.lisp: The live-cells/src/stop-compute․lisp file
Structure, argument: Private structures
Structure, function-spec: Private structures
Structure, observer: Private structures
Structure, variable-spec: Private structures
System, live-cells: The live-cells system

T
tracker.lisp: The live-cells/src/tracker․lisp file

V
variable-spec: Private structures

W
watch-function-spec: Private classes
watch-function.lisp: The live-cells/src/watch-function․lisp file