The cl-stm Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The cl-stm Reference Manual

This is the cl-stm Reference Manual, version 0, generated automatically by Declt version 2.3 "Robert April" on Tue Feb 20 08:19:07 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Systems

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


Previous: , Up: Systems   [Contents][Index]

1.1 cl-stm

Maintainer

Hoan Ton-That <hoan@ton-that.org>

Author

Hoan Ton-That <hoan@ton-that.org>

License
Description

Software Transactional Memory

Long Description
Version

0

Dependencies
Source

cl-stm.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

2 Modules

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


Next: , Previous: , Up: Modules   [Contents][Index]

2.1 cl-stm/src

Parent

cl-stm (system)

Location

src/

Components

Previous: , Up: Modules   [Contents][Index]

2.2 cl-stm/examples

Dependency

src (module)

Parent

cl-stm (system)

Location

examples/

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

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


Next: , Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 cl-stm.asd

Location

cl-stm.asd

Systems

cl-stm (system)

Packages

cl-stm.system


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 cl-stm/src/packages.lisp

Parent

src (module)

Location

src/packages.lisp

Packages

cl-stm


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.3 cl-stm/src/loggers.lisp

Dependency

packages.lisp (file)

Parent

src (module)

Location

src/loggers.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.4 cl-stm/src/protocol.lisp

Dependency

packages.lisp (file)

Parent

src (module)

Location

src/protocol.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.5 cl-stm/src/standard-tlog.lisp

Dependencies
Parent

src (module)

Location

src/standard-tlog.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.6 cl-stm/src/standard-transaction.lisp

Dependency

standard-tlog.lisp (file)

Parent

src (module)

Location

src/standard-transaction.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.7 cl-stm/src/transactional-class.lisp

Dependency

standard-tlog.lisp (file)

Parent

src (module)

Location

src/transactional-class.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.8 cl-stm/src/walker.lisp

Dependency

protocol.lisp (file)

Parent

src (module)

Location

src/walker.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.9 cl-stm/src/interface.lisp

Dependencies
Parent

src (module)

Location

src/interface.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.10 cl-stm/examples/cell.lisp

Dependency

utils.lisp (file)

Parent

examples (module)

Location

examples/cell.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.11 cl-stm/examples/chan.lisp

Parent

examples (module)

Location

examples/chan.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.12 cl-stm/examples/counter.lisp

Parent

examples (module)

Location

examples/counter.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.13 cl-stm/examples/queue.lisp

Parent

examples (module)

Location

examples/queue.lisp

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

3.1.14 cl-stm/examples/utils.lisp

Parent

examples (module)

Location

examples/utils.lisp

Exported Definitions

Previous: , Up: Files   [Contents][Index]

3.2 Other


Previous: , Up: Other files   [Contents][Index]

3.2.1 cl-stm/cl-stm.asd

Parent

cl-stm (system)

Location

cl-stm.asd


Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

4.1 cl-stm.system

Source

cl-stm.asd

Use List

Previous: , Up: Packages   [Contents][Index]

4.2 cl-stm

Source

packages.lisp (file)

Nickname

stm

Use List
Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

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


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Macros

Macro: deftclass CLASS (&rest SUPERCLASSES) (&rest SLOTS) &rest CLASS-OPTIONS

Define a new transactional class caleed CLASS.

DEFTCLASS is just like DEFCLASS except the default metaclass is transactional class, slots are transactional, and it inherits from TRANSACTIONAL-OBJECT by default.

Package

cl-stm

Source

transactional-class.lisp (file)

Macro: deftransaction NAME (&rest ARGS) &body BODY

Define a new transaction called NAME.

DEFTRANSACTION is just like DEFMETHOD but the body is walked into an STM action.

Package

cl-stm

Source

interface.lisp (file)

Macro: trans BODY

Create a new anonymous transaction.

Package

cl-stm

Source

interface.lisp (file)

Macro: try &body BODY

Return a transaction that executes each transaction in BODY atomically from left to right until one succeeds.

The return value of the transaction is the value of the transaction that succeeds.

Package

cl-stm

Source

interface.lisp (file)

Macro: with-new-tlog VAR &body BODY

Execute BODY with the default transaction log being a newly allocated transaction log bound to VAR.

Package

cl-stm

Source

protocol.lisp (file)

Macro: with-recording &body BODY

Turn recording of reads and writes on. Recording is normally on inside transactions.

Package

cl-stm

Source

protocol.lisp (file)

Macro: with-stm FORM

Execute FORM as if it were run in the STM.

Package

cl-stm

Source

walker.lisp (file)

Macro: with-tlog LOG &body BODY

Execute BODY with the default transasction log being LOG.

Package

cl-stm

Source

protocol.lisp (file)

Macro: without-recording &body BODY

Turn recording of reads and writes off. Recording is normally off outside transactions (ie at the REPL) and when initializing transactional objects.

Package

cl-stm

Source

protocol.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Functions

Function: current-tlog ()
Package

cl-stm

Source

protocol.lisp (file)

Function: recording? ()
Package

cl-stm

Source

protocol.lisp (file)

Function: retry ()

Return a transaction that when executed, aborts the current transaction and re-executes it from scratch.

The transaction will wait on all variables that have been read so far during the transaction.

Package

cl-stm

Source

interface.lisp (file)

Function: stms FORMS
Package

cl-stm

Source

walker.lisp (file)

Function: unstms FORMS
Package

cl-stm

Source

walker.lisp (file)

Function: untrans TRANSACTION
Package

cl-stm

Source

interface.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.3 Generic functions

Generic Function: check? LOG

Check that LOG is consistent.

It returns a boolean specifying whether or not LOG is valid with respect to the current Common Lisp world. CHECK can be used to see if a transaction isn’t consistent before committing it.

Package

cl-stm

Source

protocol.lisp (file)

Methods
Method: check? (LOG standard-tlog)
Source

standard-tlog.lisp (file)

Generic Function: commit LOG

Commit a LOG to memory.

It returns a boolean specifying whether or not the transaction log was committed. If the transaction log couldn’t be committed it probably means that another transaction log that writes the same variables is being committed.

Package

cl-stm

Source

protocol.lisp (file)

Methods
Method: commit (LOG standard-tlog)
Source

standard-tlog.lisp (file)

Generic Function: count-of OBJECT
Generic Function: (setf count-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: count-of (COUNTER counter)

automatically generated reader method

Source

counter.lisp (file)

Method: (setf count-of) NEW-VALUE (COUNTER counter)

automatically generated writer method

Source

counter.lisp (file)

Generic Function: decrement C &optional D
Package

cl-stm

Methods
Method: decrement (C counter) &optional D
Source

counter.lisp (file)

Generic Function: deq Q &key REMOVE? BLOCK?
Package

cl-stm

Methods
Method: deq (Q tqueue) &key REMOVE? BLOCK?
Source

queue.lisp (file)

Generic Function: empty! CELL
Package

cl-stm

Methods
Method: empty! (CELL cell)
Source

cell.lisp (file)

Generic Function: empty? CELL
Package

cl-stm

Methods
Method: empty? (Q tqueue)
Source

queue.lisp (file)

Method: empty? (CELL cell)
Source

cell.lisp (file)

Generic Function: enq Q VAL
Package

cl-stm

Methods
Method: enq (Q tqueue) VAL
Source

queue.lisp (file)

Generic Function: execute TRANSACTION

Execute TRANSACTION and return 3 values.

1. A boolean specifying whether or not the transaction retried.

2. A transaction log of all the changes that occured.

3. A list of values that TRANSACTION returns.

Package

cl-stm

Source

protocol.lisp (file)

Methods
Method: execute (TX standard-transaction)
Source

standard-transaction.lisp (file)

Generic Function: full? Q
Package

cl-stm

Methods
Method: full? (Q tqueue)
Source

queue.lisp (file)

Generic Function: increment C &optional D
Package

cl-stm

Methods
Method: increment (C counter) &optional D
Source

counter.lisp (file)

Generic Function: merge-logs LOG1 LOG2

Merge LOG1 and LOG2.

Any reads and writes in LOG2 shadow the reads and writes in LOG1.

Package

cl-stm

Source

protocol.lisp (file)

Methods
Method: merge-logs (LOG1 standard-tlog) (LOG2 standard-tlog)
Source

standard-tlog.lisp (file)

Generic Function: nob TX
Package

cl-stm

Methods
Method: nob (TX transaction)
Source

utils.lisp (file)

Generic Function: orelse TX1 TX2

Compose two transactions alternatively.
ORELSE returns a new transaction.

We perform TX1 and if it succeeds then we’re done. If it fails then we perform TX2.

If performing TX2 succeeds then we’re done. If it fails we try to perform TX1 again, and so on.

The transaction’s return value (not ORELSE’s) is nondeterministic because we can’t tell in advance which transaction succeeds.

ORELSE is just the plumbing behind the TRY macro, which is just a variable arity version of ORELSE.

Package

cl-stm

Source

protocol.lisp (file)

Methods
Method: orelse (TX1 standard-transaction) (TX2 standard-transaction)
Source

standard-transaction.lisp (file)

Generic Function: perform TRANSACTION &key WAIT?

Run TRANSACTION atomically with respect to
all other threads in a new thread.

If the transaction retries, then the thread loops again re-executing the transaction and commiting it to memory.

When WAIT? is true, then PERFORM returns the result of executing TRANSACTION. Otherwise PERFORM returns a thread created by BORDEAUX-THREADS as its value.

Package

cl-stm

Source

protocol.lisp (file)

Methods
Method: perform (TX standard-transaction) &key WAIT?
Source

standard-transaction.lisp (file)

Generic Function: put CELL VAL
Package

cl-stm

Methods
Method: put (CELL cell) VAL
Source

cell.lisp (file)

Generic Function: qlength Q
Package

cl-stm

Methods
Method: qlength (Q tqueue)
Source

queue.lisp (file)

Generic Function: read-port P
Package

cl-stm

Methods
Method: read-port (P port)
Source

chan.lisp (file)

Generic Function: read-tvar VAR LOG

Record the reading of VAR to LOG.

READ-TVAR is only called when transactions are being recorded, and LOG is normally the special variable *LOG*.

READ-TVAR is just the plumbing behind taking the SLOT-VALUE of a transactional slot. Just use readers and accessors as you normally would on transactional objects.

Package

cl-stm

Source

protocol.lisp (file)

Methods
Method: read-tvar (VAR standard-tvar) (LOG standard-tlog)
Source

standard-tlog.lisp (file)

Generic Function: repeat TX N
Package

cl-stm

Methods
Method: repeat (TX transaction) N
Source

utils.lisp (file)

Generic Function: reset C
Package

cl-stm

Methods
Method: reset (C counter)
Source

counter.lisp (file)

Generic Function: sleep-after TX SECS
Package

cl-stm

Methods
Method: sleep-after (TX transaction) SECS
Source

utils.lisp (file)

Generic Function: stm FORM

Translate FORM into an STM action.

Define methods on this generic function with DEFSTM-WALKER.

Package

cl-stm

Source

walker.lisp (file)

Methods
Method: stm (FORM-0 eval-when-form)
Method: stm (FORM-0 the-form)
Method: stm (FORM-0 unwind-protect-form)
Method: stm (FORM-0 go-form)
Method: stm (FORM-0 go-tag-form)
Method: stm (FORM-0 tagbody-form)
Method: stm (FORM-0 throw-form)
Method: stm (FORM-0 catch-form)
Method: stm (FORM-0 return-from-form)
Method: stm (FORM-0 block-form)
Method: stm (FORM-0 multiple-value-prog1-form)
Method: stm (FORM-0 multiple-value-call-form)
Method: stm (FORM-0 lambda-application-form)
Method: stm (FORM-0 function-object-form)
Method: stm (FORM-0 application-form)
Method: stm (FORM-0 locally-form)
Method: stm (FORM-0 macrolet-form)
Method: stm (FORM-0 symbol-macrolet-form)
Method: stm (FORM-0 setq-form)
Method: stm (FORM-0 lambda-function-form)
Method: stm (FORM-0 flet-form)
Method: stm (FORM-0 labels-form)
Method: stm (FORM-0 variable-binding-form)
Method: stm (FORM-0 progv-form)
Method: stm (FORM-0 progn-form)
Method: stm (FORM-0 if-form)
Method: stm (FORM-0 variable-reference)
Method: stm (FORM-0 constant-form)
Method: stm (FORM-0 untrans-form)
Method: stm FORM

If FORM isn’t a FORM object, we’ll convert it to one, apply the transformation and convert it back.

Generic Function: swap C1 C2
Package

cl-stm

Methods
Method: swap (C1 counter) (C2 counter)
Source

counter.lisp (file)

Generic Function: take CELL
Package

cl-stm

Methods
Method: take (CELL cell)
Source

cell.lisp (file)

Generic Function: try-put CELL VAL
Package

cl-stm

Methods
Method: try-put (CELL cell) VAL
Source

cell.lisp (file)

Generic Function: unstm FORM

Translate FORM from a STM action to a Lisp
form.

Define methods on this generic function with DEFUNSTM-WALKER.

Package

cl-stm

Source

walker.lisp (file)

Methods
Method: unstm (FORM-0 lambda-application-form)
Method: unstm (FORM-0 application-form)
Method: unstm (FORM-0 variable-reference)
Method: unstm (FORM-0 trans-form)
Method: unstm (FORM-0 form)
Generic Function: unwait VAR

UNWAIT causes all threads waiting for VAR to change to wake up.

Package

cl-stm

Source

protocol.lisp (file)

Methods
Method: unwait (VAR standard-tvar)
Source

standard-tlog.lisp (file)

Method: unwait (LOG standard-tlog)
Source

standard-tlog.lisp (file)

Generic Function: wait LOG

WAIT causes the current thread to wait for a change in any of LOG’s reads and writes.

Package

cl-stm

Source

protocol.lisp (file)

Methods
Method: wait (LOG standard-tlog)
Source

standard-tlog.lisp (file)

Generic Function: write-chan C ITEM
Package

cl-stm

Methods
Method: write-chan (C chan) ITEM
Source

chan.lisp (file)

Generic Function: write-tvar VAR LOG VAL

Record the writing of VAL to VAR to LOG.

WRITE-TVAR is only called when transactions are being recorded, and LOG is normally the special variable *LOG*.

WRITE-TVAR is just the plumbing behind SETF’ing a transactional slot. Just use SETF as you normally would on transactional objects.

Package

cl-stm

Source

protocol.lisp (file)

Methods
Method: write-tvar (VAR standard-tvar) (LOG standard-tlog) VAL
Source

standard-tlog.lisp (file)


Previous: , Up: Exported definitions   [Contents][Index]

5.1.4 Classes

Class: cell ()
Package

cl-stm

Source

cell.lisp (file)

Direct superclasses

transactional-object (class)

Direct methods
Direct slots
Slot: value
Initargs

:value

Initform

cl-stm::*empty-cell*

Readers

value-of (generic function)

Writers

(setf value-of) (generic function)

Class: chan ()
Package

cl-stm

Source

chan.lisp (file)

Direct superclasses

transactional-object (class)

Direct methods
Direct slots
Slot: buffer
Initargs

:buffer

Initform

(quote nil)

Readers

buffer-of (generic function)

Writers

(setf buffer-of) (generic function)

Slot: size
Initargs

:size

Initform

0

Readers

size-of (generic function)

Writers

(setf size-of) (generic function)

Class: counter ()
Package

cl-stm

Source

counter.lisp (file)

Direct superclasses

transactional-object (class)

Direct methods
Direct slots
Slot: count
Initargs

:count

Initform

0

Readers

count-of (generic function)

Writers

(setf count-of) (generic function)

Class: port ()
Package

cl-stm

Source

chan.lisp (file)

Direct superclasses

transactional-object (class)

Direct methods
Direct slots
Slot: chan
Initargs

:chan

Readers

chan-of (generic function)

Writers

(setf chan-of) (generic function)

Slot: index
Initargs

:index

Initform

0

Readers

index-of (generic function)

Writers

(setf index-of) (generic function)

Class: standard-tlog ()
Package

cl-stm

Source

standard-tlog.lisp (file)

Direct superclasses

tlog (class)

Direct methods
Direct slots
Slot: reads

Mapping reads done to versions

Type

hash-table

Initargs

:reads

Initform

(make-hash-table :test (function eq) :size 16)

Readers

reads-of (generic function)

Writers

(setf reads-of) (generic function)

Slot: writes

Mapping variables written to new values

Type

hash-table

Initargs

:writes

Initform

(make-hash-table :test (function eq) :size 16)

Readers

writes-of (generic function)

Writers

(setf writes-of) (generic function)

Slot: semaphore
Initargs

:semaphore

Initform

(bordeaux-threads:make-condition-variable)

Readers

semaphore-of (generic function)

Writers

(setf semaphore-of) (generic function)

Class: standard-transaction ()
Package

cl-stm

Source

standard-transaction.lisp (file)

Direct superclasses

transaction (class)

Direct methods
Direct slots
Slot: thunk
Initargs

:thunk

Readers

thunk-of (generic function)

Writers

(setf thunk-of) (generic function)

Slot: id
Initargs

:id

Initform

(cl-stm::next-transaction-id)

Readers

id-of (generic function)

Writers

(setf id-of) (generic function)

Class: standard-tvar ()
Package

cl-stm

Source

standard-tlog.lisp (file)

Direct superclasses

tvar (class)

Direct methods
Direct slots
Slot: lock
Initargs

:lock

Initform

(bordeaux-threads:make-lock "tvar")

Readers

lock-of (generic function)

Writers

(setf lock-of) (generic function)

Slot: value
Initargs

:value

Readers

value-of (generic function)

Writers

(setf value-of) (generic function)

Slot: version
Type

integer

Initargs

:version

Initform

0

Readers

version-of (generic function)

Writers

(setf version-of) (generic function)

Slot: waiting
Type

it.bese.arnesi:queue

Initargs

:waiting

Initform

(it.bese.arnesi:new (quote it.bese.arnesi:queue) :element-type (quote cl-stm:standard-tlog))

Readers

waiting-for (generic function)

Writers

(setf waiting-for) (generic function)

Slot: waiting-lock
Initargs

:waiting-lock

Initform

(bordeaux-threads:make-lock "waiting-lock")

Readers

waiting-lock-of (generic function)

Writers

(setf waiting-lock-of) (generic function)

Class: tlog ()

A transaction log (TLOG) is a record of what
reads and writes have been done.

Transaction logs are written during the execution of a transaction (using READ-TVAR and WRITE-TVAR). Transactions logs are committed to memory by COMMIT later on.

Package

cl-stm

Source

protocol.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses

standard-tlog (class)

Class: tqueue ()
Package

cl-stm

Source

queue.lisp (file)

Direct superclasses

transactional-object (class)

Direct methods
Direct slots
Slot: head
Initargs

:head

Initform

0

Readers

head-of (generic function)

Writers

(setf head-of) (generic function)

Slot: tail
Initargs

:tail

Initform

0

Readers

tail-of (generic function)

Writers

(setf tail-of) (generic function)

Slot: buffer
Readers

buffer-of (generic function)

Writers

(setf buffer-of) (generic function)

Class: transaction ()
Package

cl-stm

Source

protocol.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses

standard-transaction (class)

Direct methods
Class: transactional-class ()

The metaclass for transactional classes.

Classes defined with this metaclass have extra slot options, see the class TRANSACTIONAL-DIRECT-SLOT for details.

Package

cl-stm

Source

transactional-class.lisp (file)

Direct superclasses

standard-class (class)

Direct methods
  • slot-makunbound-using-class (method)
  • slot-boundp-using-class (method)
  • slot-value-using-class (method)
  • slot-value-using-class (method)
  • compute-effective-slot-definition (method)
  • effective-slot-definition-class (method)
  • direct-slot-definition-class (method)
  • validate-superclass (method)
Class: transactional-direct-slot ()

The class for direct slots of transactional
classes.

Other than the initargs for standard slots the following options can be passed to component slots:

:transactional [ T | NIL ] - Specify that this slot is a transactional slot and that all reads and writes should be committed to log.

Package

cl-stm

Source

transactional-class.lisp (file)

Direct superclasses

standard-direct-slot-definition (class)

Direct methods
Direct slots
Slot: transactional
Initargs

:transactional

Initform

t

Readers

slot-transactional (generic function)

Writers

(setf slot-transactional) (generic function)

Class: transactional-effective-slot ()

The class for effective slots of transactional classes.

Exactly like TRANSACTIONAL-EFFECTIVE-SLOT.

Package

cl-stm

Source

transactional-class.lisp (file)

Direct superclasses

standard-effective-slot-definition (class)

Direct methods
  • slot-makunbound-using-class (method)
  • slot-boundp-using-class (method)
  • slot-value-using-class (method)
  • slot-value-using-class (method)
  • slot-transactional (method)
  • slot-transactional (method)
Direct slots
Slot: transactional
Initargs

:transactional

Readers

slot-transactional (generic function)

Writers

(setf slot-transactional) (generic function)

Class: transactional-object ()

Superclass of all transactional objects.

Package

cl-stm

Source

transactional-class.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses
Direct methods

shared-initialize (method)

Class: tvar ()

A transactional variable (TVAR) holds a value.

See READ-TVAR and WRITE-TVAR for reading and writing them.

Package

cl-stm

Source

protocol.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses

standard-tvar (class)


Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Special variables

Special Variable: *empty-cell*
Package

cl-stm

Source

cell.lisp (file)

Special Variable: *form*

This contains the current form that is being walked.

Package

cl-stm

Source

walker.lisp (file)

Special Variable: *record-transactions*

A boolean specifying whether or not transactions are recorded to log.

Package

cl-stm

Source

protocol.lisp (file)

Special Variable: *return-contents*

A boolean specifying whether or not slot accessors should return the contents of the transactional variable instead of the variable itself.

Package

cl-stm

Source

protocol.lisp (file)

Special Variable: *tlog*

The current transaction log.

Package

cl-stm

Source

protocol.lisp (file)

Special Variable: *trans-funs*

When walking code, this variable contains a list of
functions (represented by symbols) which return transactions when applied.

Package

cl-stm

Source

walker.lisp (file)

Special Variable: *trans-vars*

When walking code, this variable contains a list of variables (represented by symbols) which are transactions.

Package

cl-stm

Source

walker.lisp (file)

Special Variable: *transaction-counter*

A counter used for the ID of transactions.

Package

cl-stm

Source

standard-transaction.lisp (file)

Special Variable: *transaction-counter-lock*

A lock around *TRANSACTION-COUNTER*.

Package

cl-stm

Source

standard-transaction.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.2 Macros

Macro: defstm-walker CLASS (&rest SLOTS) &body BODY

Define a STM walker.

It takes the class of a CL form object, and its slots as arguments. It binds the form object to the variable *FORM*.

Package

cl-stm

Source

walker.lisp (file)

Macro: defunstm-walker CLASS (&rest SLOTS) &body BODY

Define a UNSTM walker.

It takes the class of a CL form object, and its slots as arguments. It binds the form object to the variable *FORM*.

Package

cl-stm

Source

walker.lisp (file)

Macro: incf-mod PLACE DIVISOR
Package

cl-stm

Source

queue.lisp (file)

Macro: stm-logger.debug MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm-logger.dribble MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm-logger.error MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm-logger.fatal MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm-logger.info MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm-logger.warn MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.check.debug MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.check.dribble MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.check.error MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.check.fatal MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.check.info MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.check.warn MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.commit.debug MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.commit.dribble MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.commit.error MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.commit.fatal MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.commit.info MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.commit.warn MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.execute.debug MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.execute.dribble MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.execute.error MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.execute.fatal MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.execute.info MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.execute.warn MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.orelse.debug MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.orelse.dribble MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.orelse.error MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.orelse.fatal MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.orelse.info MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.orelse.warn MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.perform.debug MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.perform.dribble MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.perform.error MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.perform.fatal MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.perform.info MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: stm.perform.warn MESSAGE-CONTROL &rest MESSAGE-ARGS
Package

cl-stm

Source

loggers.lisp (file)

Macro: with-declarations DECLS &body BODY
Package

cl-stm

Source

walker.lisp (file)

Macro: with-returning &body BODY
Package

cl-stm

Source

protocol.lisp (file)

Macro: with-trans-funs FUNS &body BODY
Package

cl-stm

Source

walker.lisp (file)

Macro: with-trans-vars VARS &body BODY
Package

cl-stm

Source

walker.lisp (file)

Macro: without-returning &body BODY
Package

cl-stm

Source

protocol.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.3 Functions

Function: extract-ftype-declarations DECLS
Package

cl-stm

Source

walker.lisp (file)

Function: extract-type-declarations DECLS
Package

cl-stm

Source

walker.lisp (file)

Function: next-transaction-id ()

Return the next transaction id.

Package

cl-stm

Source

standard-transaction.lisp (file)

Function: returning? ()
Package

cl-stm

Source

protocol.lisp (file)

Function: stm-logger.level ()
Function: (setf stm-logger.level) LEVEL
Package

cl-stm

Source

loggers.lisp (file)

Function: stmb BINDS
Package

cl-stm

Source

walker.lisp (file)

Function: unstmb BINDS
Package

cl-stm

Source

walker.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.4 Generic functions

Generic Function: bind TX1 TX2

Compose two transactions sequentially.
BIND returns a new transaction.

If either TX1 or TX2 retries then the whole transaction retries.

The transaction’s return value (not BIND’s) is the return value of TX2.

Package

cl-stm

Source

protocol.lisp (file)

Methods
Method: bind (TX1 standard-transaction) (TX2 standard-transaction)
Source

standard-transaction.lisp (file)

Generic Function: buffer-of OBJECT
Generic Function: (setf buffer-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: buffer-of (TQUEUE tqueue)

automatically generated reader method

Source

queue.lisp (file)

Method: (setf buffer-of) NEW-VALUE (TQUEUE tqueue)

automatically generated writer method

Source

queue.lisp (file)

Method: buffer-of (CHAN chan)

automatically generated reader method

Source

chan.lisp (file)

Method: (setf buffer-of) NEW-VALUE (CHAN chan)

automatically generated writer method

Source

chan.lisp (file)

Generic Function: chan-of OBJECT
Generic Function: (setf chan-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: chan-of (PORT port)

automatically generated reader method

Source

chan.lisp (file)

Method: (setf chan-of) NEW-VALUE (PORT port)

automatically generated writer method

Source

chan.lisp (file)

Generic Function: head-of OBJECT
Generic Function: (setf head-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: head-of (TQUEUE tqueue)

automatically generated reader method

Source

queue.lisp (file)

Method: (setf head-of) NEW-VALUE (TQUEUE tqueue)

automatically generated writer method

Source

queue.lisp (file)

Generic Function: id-of OBJECT
Generic Function: (setf id-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: id-of (STANDARD-TRANSACTION standard-transaction)

automatically generated reader method

Source

standard-transaction.lisp (file)

Method: (setf id-of) NEW-VALUE (STANDARD-TRANSACTION standard-transaction)

automatically generated writer method

Source

standard-transaction.lisp (file)

Generic Function: index-of OBJECT
Generic Function: (setf index-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: index-of (PORT port)

automatically generated reader method

Source

chan.lisp (file)

Method: (setf index-of) NEW-VALUE (PORT port)

automatically generated writer method

Source

chan.lisp (file)

Generic Function: lock-of OBJECT
Generic Function: (setf lock-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: lock-of (STANDARD-TVAR standard-tvar)

automatically generated reader method

Source

standard-tlog.lisp (file)

Method: (setf lock-of) NEW-VALUE (STANDARD-TVAR standard-tvar)

automatically generated writer method

Source

standard-tlog.lisp (file)

Generic Function: move-head Q
Package

cl-stm

Methods
Method: move-head (Q tqueue)
Source

queue.lisp (file)

Generic Function: move-tail Q
Package

cl-stm

Methods
Method: move-tail (Q tqueue)
Source

queue.lisp (file)

Generic Function: reads-of OBJECT
Generic Function: (setf reads-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: reads-of (STANDARD-TLOG standard-tlog)
Method: (setf reads-of) NEW-VALUE (STANDARD-TLOG standard-tlog)

Mapping reads done to versions

Source

standard-tlog.lisp (file)

Generic Function: semaphore-of OBJECT
Generic Function: (setf semaphore-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: semaphore-of (STANDARD-TLOG standard-tlog)

automatically generated reader method

Source

standard-tlog.lisp (file)

Method: (setf semaphore-of) NEW-VALUE (STANDARD-TLOG standard-tlog)

automatically generated writer method

Source

standard-tlog.lisp (file)

Generic Function: size-of OBJECT
Generic Function: (setf size-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: size-of (CHAN chan)

automatically generated reader method

Source

chan.lisp (file)

Method: (setf size-of) NEW-VALUE (CHAN chan)

automatically generated writer method

Source

chan.lisp (file)

Generic Function: slot-transactional OBJECT
Generic Function: (setf slot-transactional) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: slot-transactional (TRANSACTIONAL-EFFECTIVE-SLOT transactional-effective-slot)

automatically generated reader method

Source

transactional-class.lisp (file)

Method: (setf slot-transactional) NEW-VALUE (TRANSACTIONAL-EFFECTIVE-SLOT transactional-effective-slot)

automatically generated writer method

Source

transactional-class.lisp (file)

Method: slot-transactional (TRANSACTIONAL-DIRECT-SLOT transactional-direct-slot)

automatically generated reader method

Source

transactional-class.lisp (file)

Method: (setf slot-transactional) NEW-VALUE (TRANSACTIONAL-DIRECT-SLOT transactional-direct-slot)

automatically generated writer method

Source

transactional-class.lisp (file)

Generic Function: tail-of OBJECT
Generic Function: (setf tail-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: tail-of (TQUEUE tqueue)

automatically generated reader method

Source

queue.lisp (file)

Method: (setf tail-of) NEW-VALUE (TQUEUE tqueue)

automatically generated writer method

Source

queue.lisp (file)

Generic Function: thunk-of OBJECT
Generic Function: (setf thunk-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: thunk-of (STANDARD-TRANSACTION standard-transaction)

automatically generated reader method

Source

standard-transaction.lisp (file)

Method: (setf thunk-of) NEW-VALUE (STANDARD-TRANSACTION standard-transaction)

automatically generated writer method

Source

standard-transaction.lisp (file)

Generic Function: trans-form FORM
Package

cl-stm

Source

walker.lisp (file)

Methods
Method: trans-form (FORM form)
Method: trans-form (FORM untrans-form)
Generic Function: transaction-arguments FORM
Package

cl-stm

Source

walker.lisp (file)

Methods
Method: transaction-arguments (FORM constant-form)
Method: transaction-arguments (FORM function-object-form)
Method: transaction-arguments (FORM symbol)
Method: transaction-arguments (FORM form)
Generic Function: transaction-function? FORM
Package

cl-stm

Source

walker.lisp (file)

Methods
Method: transaction-function? (FORM constant-form)
Method: transaction-function? (FORM function-object-form)
Method: transaction-function? (FORM symbol)
Method: transaction-function? (FORM form)
Generic Function: try-take CELL
Package

cl-stm

Methods
Method: try-take (CELL cell)
Source

cell.lisp (file)

Generic Function: untrans-form FORM
Package

cl-stm

Source

walker.lisp (file)

Methods
Method: untrans-form (FORM form)
Method: untrans-form (FORM trans-form)
Generic Function: value-of OBJECT
Generic Function: (setf value-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: value-of (CELL cell)

automatically generated reader method

Source

cell.lisp (file)

Method: (setf value-of) NEW-VALUE (CELL cell)

automatically generated writer method

Source

cell.lisp (file)

Method: value-of (STANDARD-TVAR standard-tvar)

automatically generated reader method

Source

standard-tlog.lisp (file)

Method: (setf value-of) NEW-VALUE (STANDARD-TVAR standard-tvar)

automatically generated writer method

Source

standard-tlog.lisp (file)

Generic Function: version-of OBJECT
Generic Function: (setf version-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: version-of (STANDARD-TVAR standard-tvar)

automatically generated reader method

Source

standard-tlog.lisp (file)

Method: (setf version-of) NEW-VALUE (STANDARD-TVAR standard-tvar)

automatically generated writer method

Source

standard-tlog.lisp (file)

Generic Function: waiting-for OBJECT
Generic Function: (setf waiting-for) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: waiting-for (STANDARD-TVAR standard-tvar)

automatically generated reader method

Source

standard-tlog.lisp (file)

Method: (setf waiting-for) NEW-VALUE (STANDARD-TVAR standard-tvar)

automatically generated writer method

Source

standard-tlog.lisp (file)

Generic Function: waiting-lock-of OBJECT
Generic Function: (setf waiting-lock-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: waiting-lock-of (STANDARD-TVAR standard-tvar)

automatically generated reader method

Source

standard-tlog.lisp (file)

Method: (setf waiting-lock-of) NEW-VALUE (STANDARD-TVAR standard-tvar)

automatically generated writer method

Source

standard-tlog.lisp (file)

Generic Function: writes-of OBJECT
Generic Function: (setf writes-of) NEW-VALUE OBJECT
Package

cl-stm

Methods
Method: writes-of (STANDARD-TLOG standard-tlog)
Method: (setf writes-of) NEW-VALUE (STANDARD-TLOG standard-tlog)

Mapping variables written to new values

Source

standard-tlog.lisp (file)


Previous: , Up: Internal definitions   [Contents][Index]

5.2.5 Classes

Class: trans-form ()
Package

cl-stm

Source

walker.lisp (file)

Direct superclasses

form (class)

Direct methods
  • unstm (method)
  • untrans-form (method)
  • unwalk-form (method)
  • form (method)
  • form (method)
Direct slots
Slot: form
Initargs

:form

Readers

form (generic function)

Writers

(setf form) (generic function)

Class: untrans-form ()
Package

cl-stm

Source

walker.lisp (file)

Direct superclasses

form (class)

Direct methods
  • stm (method)
  • trans-form (method)
  • unwalk-form (method)
  • form (method)
  • form (method)
Direct slots
Slot: form
Initargs

:form

Readers

form (generic function)

Writers

(setf form) (generic function)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   C   F   L   M   O  
Index Entry  Section

C
cl-stm.asd: The cl-stm<dot>asd file
cl-stm/cl-stm.asd: The cl-stm/cl-stm<dot>asd file
cl-stm/examples: The cl-stm/examples module
cl-stm/examples/cell.lisp: The cl-stm/examples/cell<dot>lisp file
cl-stm/examples/chan.lisp: The cl-stm/examples/chan<dot>lisp file
cl-stm/examples/counter.lisp: The cl-stm/examples/counter<dot>lisp file
cl-stm/examples/queue.lisp: The cl-stm/examples/queue<dot>lisp file
cl-stm/examples/utils.lisp: The cl-stm/examples/utils<dot>lisp file
cl-stm/src: The cl-stm/src module
cl-stm/src/interface.lisp: The cl-stm/src/interface<dot>lisp file
cl-stm/src/loggers.lisp: The cl-stm/src/loggers<dot>lisp file
cl-stm/src/packages.lisp: The cl-stm/src/packages<dot>lisp file
cl-stm/src/protocol.lisp: The cl-stm/src/protocol<dot>lisp file
cl-stm/src/standard-tlog.lisp: The cl-stm/src/standard-tlog<dot>lisp file
cl-stm/src/standard-transaction.lisp: The cl-stm/src/standard-transaction<dot>lisp file
cl-stm/src/transactional-class.lisp: The cl-stm/src/transactional-class<dot>lisp file
cl-stm/src/walker.lisp: The cl-stm/src/walker<dot>lisp file

F
File, Lisp, cl-stm.asd: The cl-stm<dot>asd file
File, Lisp, cl-stm/examples/cell.lisp: The cl-stm/examples/cell<dot>lisp file
File, Lisp, cl-stm/examples/chan.lisp: The cl-stm/examples/chan<dot>lisp file
File, Lisp, cl-stm/examples/counter.lisp: The cl-stm/examples/counter<dot>lisp file
File, Lisp, cl-stm/examples/queue.lisp: The cl-stm/examples/queue<dot>lisp file
File, Lisp, cl-stm/examples/utils.lisp: The cl-stm/examples/utils<dot>lisp file
File, Lisp, cl-stm/src/interface.lisp: The cl-stm/src/interface<dot>lisp file
File, Lisp, cl-stm/src/loggers.lisp: The cl-stm/src/loggers<dot>lisp file
File, Lisp, cl-stm/src/packages.lisp: The cl-stm/src/packages<dot>lisp file
File, Lisp, cl-stm/src/protocol.lisp: The cl-stm/src/protocol<dot>lisp file
File, Lisp, cl-stm/src/standard-tlog.lisp: The cl-stm/src/standard-tlog<dot>lisp file
File, Lisp, cl-stm/src/standard-transaction.lisp: The cl-stm/src/standard-transaction<dot>lisp file
File, Lisp, cl-stm/src/transactional-class.lisp: The cl-stm/src/transactional-class<dot>lisp file
File, Lisp, cl-stm/src/walker.lisp: The cl-stm/src/walker<dot>lisp file
File, other, cl-stm/cl-stm.asd: The cl-stm/cl-stm<dot>asd file

L
Lisp File, cl-stm.asd: The cl-stm<dot>asd file
Lisp File, cl-stm/examples/cell.lisp: The cl-stm/examples/cell<dot>lisp file
Lisp File, cl-stm/examples/chan.lisp: The cl-stm/examples/chan<dot>lisp file
Lisp File, cl-stm/examples/counter.lisp: The cl-stm/examples/counter<dot>lisp file
Lisp File, cl-stm/examples/queue.lisp: The cl-stm/examples/queue<dot>lisp file
Lisp File, cl-stm/examples/utils.lisp: The cl-stm/examples/utils<dot>lisp file
Lisp File, cl-stm/src/interface.lisp: The cl-stm/src/interface<dot>lisp file
Lisp File, cl-stm/src/loggers.lisp: The cl-stm/src/loggers<dot>lisp file
Lisp File, cl-stm/src/packages.lisp: The cl-stm/src/packages<dot>lisp file
Lisp File, cl-stm/src/protocol.lisp: The cl-stm/src/protocol<dot>lisp file
Lisp File, cl-stm/src/standard-tlog.lisp: The cl-stm/src/standard-tlog<dot>lisp file
Lisp File, cl-stm/src/standard-transaction.lisp: The cl-stm/src/standard-transaction<dot>lisp file
Lisp File, cl-stm/src/transactional-class.lisp: The cl-stm/src/transactional-class<dot>lisp file
Lisp File, cl-stm/src/walker.lisp: The cl-stm/src/walker<dot>lisp file

M
Module, cl-stm/examples: The cl-stm/examples module
Module, cl-stm/src: The cl-stm/src module

O
Other File, cl-stm/cl-stm.asd: The cl-stm/cl-stm<dot>asd file

Jump to:   C   F   L   M   O  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

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

(
(setf buffer-of): Internal generic functions
(setf buffer-of): Internal generic functions
(setf buffer-of): Internal generic functions
(setf chan-of): Internal generic functions
(setf chan-of): Internal generic functions
(setf count-of): Exported generic functions
(setf count-of): Exported generic functions
(setf head-of): Internal generic functions
(setf head-of): Internal generic functions
(setf id-of): Internal generic functions
(setf id-of): Internal generic functions
(setf index-of): Internal generic functions
(setf index-of): Internal generic functions
(setf lock-of): Internal generic functions
(setf lock-of): Internal generic functions
(setf reads-of): Internal generic functions
(setf reads-of): Internal generic functions
(setf semaphore-of): Internal generic functions
(setf semaphore-of): Internal generic functions
(setf size-of): Internal generic functions
(setf size-of): Internal generic functions
(setf slot-transactional): Internal generic functions
(setf slot-transactional): Internal generic functions
(setf slot-transactional): Internal generic functions
(setf stm-logger.level): Internal functions
(setf tail-of): Internal generic functions
(setf tail-of): Internal generic functions
(setf thunk-of): Internal generic functions
(setf thunk-of): Internal generic functions
(setf value-of): Internal generic functions
(setf value-of): Internal generic functions
(setf value-of): Internal generic functions
(setf version-of): Internal generic functions
(setf version-of): Internal generic functions
(setf waiting-for): Internal generic functions
(setf waiting-for): Internal generic functions
(setf waiting-lock-of): Internal generic functions
(setf waiting-lock-of): Internal generic functions
(setf writes-of): Internal generic functions
(setf writes-of): Internal generic functions

B
bind: Internal generic functions
bind: Internal generic functions
buffer-of: Internal generic functions
buffer-of: Internal generic functions
buffer-of: Internal generic functions

C
chan-of: Internal generic functions
chan-of: Internal generic functions
check?: Exported generic functions
check?: Exported generic functions
commit: Exported generic functions
commit: Exported generic functions
count-of: Exported generic functions
count-of: Exported generic functions
current-tlog: Exported functions

D
decrement: Exported generic functions
decrement: Exported generic functions
defstm-walker: Internal macros
deftclass: Exported macros
deftransaction: Exported macros
defunstm-walker: Internal macros
deq: Exported generic functions
deq: Exported generic functions

E
empty!: Exported generic functions
empty!: Exported generic functions
empty?: Exported generic functions
empty?: Exported generic functions
empty?: Exported generic functions
enq: Exported generic functions
enq: Exported generic functions
execute: Exported generic functions
execute: Exported generic functions
extract-ftype-declarations: Internal functions
extract-type-declarations: Internal functions

F
full?: Exported generic functions
full?: Exported generic functions
Function, (setf stm-logger.level): Internal functions
Function, current-tlog: Exported functions
Function, extract-ftype-declarations: Internal functions
Function, extract-type-declarations: Internal functions
Function, next-transaction-id: Internal functions
Function, recording?: Exported functions
Function, retry: Exported functions
Function, returning?: Internal functions
Function, stm-logger.level: Internal functions
Function, stmb: Internal functions
Function, stms: Exported functions
Function, unstmb: Internal functions
Function, unstms: Exported functions
Function, untrans: Exported functions

G
Generic Function, (setf buffer-of): Internal generic functions
Generic Function, (setf chan-of): Internal generic functions
Generic Function, (setf count-of): Exported generic functions
Generic Function, (setf head-of): Internal generic functions
Generic Function, (setf id-of): Internal generic functions
Generic Function, (setf index-of): Internal generic functions
Generic Function, (setf lock-of): Internal generic functions
Generic Function, (setf reads-of): Internal generic functions
Generic Function, (setf semaphore-of): Internal generic functions
Generic Function, (setf size-of): Internal generic functions
Generic Function, (setf slot-transactional): Internal generic functions
Generic Function, (setf tail-of): Internal generic functions
Generic Function, (setf thunk-of): Internal generic functions
Generic Function, (setf value-of): Internal generic functions
Generic Function, (setf version-of): Internal generic functions
Generic Function, (setf waiting-for): Internal generic functions
Generic Function, (setf waiting-lock-of): Internal generic functions
Generic Function, (setf writes-of): Internal generic functions
Generic Function, bind: Internal generic functions
Generic Function, buffer-of: Internal generic functions
Generic Function, chan-of: Internal generic functions
Generic Function, check?: Exported generic functions
Generic Function, commit: Exported generic functions
Generic Function, count-of: Exported generic functions
Generic Function, decrement: Exported generic functions
Generic Function, deq: Exported generic functions
Generic Function, empty!: Exported generic functions
Generic Function, empty?: Exported generic functions
Generic Function, enq: Exported generic functions
Generic Function, execute: Exported generic functions
Generic Function, full?: Exported generic functions
Generic Function, head-of: Internal generic functions
Generic Function, id-of: Internal generic functions
Generic Function, increment: Exported generic functions
Generic Function, index-of: Internal generic functions
Generic Function, lock-of: Internal generic functions
Generic Function, merge-logs: Exported generic functions
Generic Function, move-head: Internal generic functions
Generic Function, move-tail: Internal generic functions
Generic Function, nob: Exported generic functions
Generic Function, orelse: Exported generic functions
Generic Function, perform: Exported generic functions
Generic Function, put: Exported generic functions
Generic Function, qlength: Exported generic functions
Generic Function, read-port: Exported generic functions
Generic Function, read-tvar: Exported generic functions
Generic Function, reads-of: Internal generic functions
Generic Function, repeat: Exported generic functions
Generic Function, reset: Exported generic functions
Generic Function, semaphore-of: Internal generic functions
Generic Function, size-of: Internal generic functions
Generic Function, sleep-after: Exported generic functions
Generic Function, slot-transactional: Internal generic functions
Generic Function, stm: Exported generic functions
Generic Function, swap: Exported generic functions
Generic Function, tail-of: Internal generic functions
Generic Function, take: Exported generic functions
Generic Function, thunk-of: Internal generic functions
Generic Function, trans-form: Internal generic functions
Generic Function, transaction-arguments: Internal generic functions
Generic Function, transaction-function?: Internal generic functions
Generic Function, try-put: Exported generic functions
Generic Function, try-take: Internal generic functions
Generic Function, unstm: Exported generic functions
Generic Function, untrans-form: Internal generic functions
Generic Function, unwait: Exported generic functions
Generic Function, value-of: Internal generic functions
Generic Function, version-of: Internal generic functions
Generic Function, wait: Exported generic functions
Generic Function, waiting-for: Internal generic functions
Generic Function, waiting-lock-of: Internal generic functions
Generic Function, write-chan: Exported generic functions
Generic Function, write-tvar: Exported generic functions
Generic Function, writes-of: Internal generic functions

H
head-of: Internal generic functions
head-of: Internal generic functions

I
id-of: Internal generic functions
id-of: Internal generic functions
incf-mod: Internal macros
increment: Exported generic functions
increment: Exported generic functions
index-of: Internal generic functions
index-of: Internal generic functions

L
lock-of: Internal generic functions
lock-of: Internal generic functions

M
Macro, defstm-walker: Internal macros
Macro, deftclass: Exported macros
Macro, deftransaction: Exported macros
Macro, defunstm-walker: Internal macros
Macro, incf-mod: Internal macros
Macro, stm-logger.debug: Internal macros
Macro, stm-logger.dribble: Internal macros
Macro, stm-logger.error: Internal macros
Macro, stm-logger.fatal: Internal macros
Macro, stm-logger.info: Internal macros
Macro, stm-logger.warn: Internal macros
Macro, stm.check.debug: Internal macros
Macro, stm.check.dribble: Internal macros
Macro, stm.check.error: Internal macros
Macro, stm.check.fatal: Internal macros
Macro, stm.check.info: Internal macros
Macro, stm.check.warn: Internal macros
Macro, stm.commit.debug: Internal macros
Macro, stm.commit.dribble: Internal macros
Macro, stm.commit.error: Internal macros
Macro, stm.commit.fatal: Internal macros
Macro, stm.commit.info: Internal macros
Macro, stm.commit.warn: Internal macros
Macro, stm.execute.debug: Internal macros
Macro, stm.execute.dribble: Internal macros
Macro, stm.execute.error: Internal macros
Macro, stm.execute.fatal: Internal macros
Macro, stm.execute.info: Internal macros
Macro, stm.execute.warn: Internal macros
Macro, stm.orelse.debug: Internal macros
Macro, stm.orelse.dribble: Internal macros
Macro, stm.orelse.error: Internal macros
Macro, stm.orelse.fatal: Internal macros
Macro, stm.orelse.info: Internal macros
Macro, stm.orelse.warn: Internal macros
Macro, stm.perform.debug: Internal macros
Macro, stm.perform.dribble: Internal macros
Macro, stm.perform.error: Internal macros
Macro, stm.perform.fatal: Internal macros
Macro, stm.perform.info: Internal macros
Macro, stm.perform.warn: Internal macros
Macro, trans: Exported macros
Macro, try: Exported macros
Macro, with-declarations: Internal macros
Macro, with-new-tlog: Exported macros
Macro, with-recording: Exported macros
Macro, with-returning: Internal macros
Macro, with-stm: Exported macros
Macro, with-tlog: Exported macros
Macro, with-trans-funs: Internal macros
Macro, with-trans-vars: Internal macros
Macro, without-recording: Exported macros
Macro, without-returning: Internal macros
merge-logs: Exported generic functions
merge-logs: Exported generic functions
Method, (setf buffer-of): Internal generic functions
Method, (setf buffer-of): Internal generic functions
Method, (setf chan-of): Internal generic functions
Method, (setf count-of): Exported generic functions
Method, (setf head-of): Internal generic functions
Method, (setf id-of): Internal generic functions
Method, (setf index-of): Internal generic functions
Method, (setf lock-of): Internal generic functions
Method, (setf reads-of): Internal generic functions
Method, (setf semaphore-of): Internal generic functions
Method, (setf size-of): Internal generic functions
Method, (setf slot-transactional): Internal generic functions
Method, (setf slot-transactional): Internal generic functions
Method, (setf tail-of): Internal generic functions
Method, (setf thunk-of): Internal generic functions
Method, (setf value-of): Internal generic functions
Method, (setf value-of): Internal generic functions
Method, (setf version-of): Internal generic functions
Method, (setf waiting-for): Internal generic functions
Method, (setf waiting-lock-of): Internal generic functions
Method, (setf writes-of): Internal generic functions
Method, bind: Internal generic functions
Method, buffer-of: Internal generic functions
Method, buffer-of: Internal generic functions
Method, chan-of: Internal generic functions
Method, check?: Exported generic functions
Method, commit: Exported generic functions
Method, count-of: Exported generic functions
Method, decrement: Exported generic functions
Method, deq: Exported generic functions
Method, empty!: Exported generic functions
Method, empty?: Exported generic functions
Method, empty?: Exported generic functions
Method, enq: Exported generic functions
Method, execute: Exported generic functions
Method, full?: Exported generic functions
Method, head-of: Internal generic functions
Method, id-of: Internal generic functions
Method, increment: Exported generic functions
Method, index-of: Internal generic functions
Method, lock-of: Internal generic functions
Method, merge-logs: Exported generic functions
Method, move-head: Internal generic functions
Method, move-tail: Internal generic functions
Method, nob: Exported generic functions
Method, orelse: Exported generic functions
Method, perform: Exported generic functions
Method, put: Exported generic functions
Method, qlength: Exported generic functions
Method, read-port: Exported generic functions
Method, read-tvar: Exported generic functions
Method, reads-of: Internal generic functions
Method, repeat: Exported generic functions
Method, reset: Exported generic functions
Method, semaphore-of: Internal generic functions
Method, size-of: Internal generic functions
Method, sleep-after: Exported generic functions
Method, slot-transactional: Internal generic functions
Method, slot-transactional: Internal generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, stm: Exported generic functions
Method, swap: Exported generic functions
Method, tail-of: Internal generic functions
Method, take: Exported generic functions
Method, thunk-of: Internal generic functions
Method, trans-form: Internal generic functions
Method, trans-form: Internal generic functions
Method, transaction-arguments: Internal generic functions
Method, transaction-arguments: Internal generic functions
Method, transaction-arguments: Internal generic functions
Method, transaction-arguments: Internal generic functions
Method, transaction-function?: Internal generic functions
Method, transaction-function?: Internal generic functions
Method, transaction-function?: Internal generic functions
Method, transaction-function?: Internal generic functions
Method, try-put: Exported generic functions
Method, try-take: Internal generic functions
Method, unstm: Exported generic functions
Method, unstm: Exported generic functions
Method, unstm: Exported generic functions
Method, unstm: Exported generic functions
Method, unstm: Exported generic functions
Method, untrans-form: Internal generic functions
Method, untrans-form: Internal generic functions
Method, unwait: Exported generic functions
Method, unwait: Exported generic functions
Method, value-of: Internal generic functions
Method, value-of: Internal generic functions
Method, version-of: Internal generic functions
Method, wait: Exported generic functions
Method, waiting-for: Internal generic functions
Method, waiting-lock-of: Internal generic functions
Method, write-chan: Exported generic functions
Method, write-tvar: Exported generic functions
Method, writes-of: Internal generic functions
move-head: Internal generic functions
move-head: Internal generic functions
move-tail: Internal generic functions
move-tail: Internal generic functions

N
next-transaction-id: Internal functions
nob: Exported generic functions
nob: Exported generic functions

O
orelse: Exported generic functions
orelse: Exported generic functions

P
perform: Exported generic functions
perform: Exported generic functions
put: Exported generic functions
put: Exported generic functions

Q
qlength: Exported generic functions
qlength: Exported generic functions

R
read-port: Exported generic functions
read-port: Exported generic functions
read-tvar: Exported generic functions
read-tvar: Exported generic functions
reads-of: Internal generic functions
reads-of: Internal generic functions
recording?: Exported functions
repeat: Exported generic functions
repeat: Exported generic functions
reset: Exported generic functions
reset: Exported generic functions
retry: Exported functions
returning?: Internal functions

S
semaphore-of: Internal generic functions
semaphore-of: Internal generic functions
size-of: Internal generic functions
size-of: Internal generic functions
sleep-after: Exported generic functions
sleep-after: Exported generic functions
slot-transactional: Internal generic functions
slot-transactional: Internal generic functions
slot-transactional: Internal generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm: Exported generic functions
stm-logger.debug: Internal macros
stm-logger.dribble: Internal macros
stm-logger.error: Internal macros
stm-logger.fatal: Internal macros
stm-logger.info: Internal macros
stm-logger.level: Internal functions
stm-logger.warn: Internal macros
stm.check.debug: Internal macros
stm.check.dribble: Internal macros
stm.check.error: Internal macros
stm.check.fatal: Internal macros
stm.check.info: Internal macros
stm.check.warn: Internal macros
stm.commit.debug: Internal macros
stm.commit.dribble: Internal macros
stm.commit.error: Internal macros
stm.commit.fatal: Internal macros
stm.commit.info: Internal macros
stm.commit.warn: Internal macros
stm.execute.debug: Internal macros
stm.execute.dribble: Internal macros
stm.execute.error: Internal macros
stm.execute.fatal: Internal macros
stm.execute.info: Internal macros
stm.execute.warn: Internal macros
stm.orelse.debug: Internal macros
stm.orelse.dribble: Internal macros
stm.orelse.error: Internal macros
stm.orelse.fatal: Internal macros
stm.orelse.info: Internal macros
stm.orelse.warn: Internal macros
stm.perform.debug: Internal macros
stm.perform.dribble: Internal macros
stm.perform.error: Internal macros
stm.perform.fatal: Internal macros
stm.perform.info: Internal macros
stm.perform.warn: Internal macros
stmb: Internal functions
stms: Exported functions
swap: Exported generic functions
swap: Exported generic functions

T
tail-of: Internal generic functions
tail-of: Internal generic functions
take: Exported generic functions
take: Exported generic functions
thunk-of: Internal generic functions
thunk-of: Internal generic functions
trans: Exported macros
trans-form: Internal generic functions
trans-form: Internal generic functions
trans-form: Internal generic functions
transaction-arguments: Internal generic functions
transaction-arguments: Internal generic functions
transaction-arguments: Internal generic functions
transaction-arguments: Internal generic functions
transaction-arguments: Internal generic functions
transaction-function?: Internal generic functions
transaction-function?: Internal generic functions
transaction-function?: Internal generic functions
transaction-function?: Internal generic functions
transaction-function?: Internal generic functions
try: Exported macros
try-put: Exported generic functions
try-put: Exported generic functions
try-take: Internal generic functions
try-take: Internal generic functions

U
unstm: Exported generic functions
unstm: Exported generic functions
unstm: Exported generic functions
unstm: Exported generic functions
unstm: Exported generic functions
unstm: Exported generic functions
unstmb: Internal functions
unstms: Exported functions
untrans: Exported functions
untrans-form: Internal generic functions
untrans-form: Internal generic functions
untrans-form: Internal generic functions
unwait: Exported generic functions
unwait: Exported generic functions
unwait: Exported generic functions

V
value-of: Internal generic functions
value-of: Internal generic functions
value-of: Internal generic functions
version-of: Internal generic functions
version-of: Internal generic functions

W
wait: Exported generic functions
wait: Exported generic functions
waiting-for: Internal generic functions
waiting-for: Internal generic functions
waiting-lock-of: Internal generic functions
waiting-lock-of: Internal generic functions
with-declarations: Internal macros
with-new-tlog: Exported macros
with-recording: Exported macros
with-returning: Internal macros
with-stm: Exported macros
with-tlog: Exported macros
with-trans-funs: Internal macros
with-trans-vars: Internal macros
without-recording: Exported macros
without-returning: Internal macros
write-chan: Exported generic functions
write-chan: Exported generic functions
write-tvar: Exported generic functions
write-tvar: Exported generic functions
writes-of: Internal generic functions
writes-of: Internal generic functions

Jump to:   (  
B   C   D   E   F   G   H   I   L   M   N   O   P   Q   R   S   T   U   V   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *  
B   C   F   H   I   L   R   S   T   V   W  
Index Entry  Section

*
*empty-cell*: Internal special variables
*form*: Internal special variables
*record-transactions*: Internal special variables
*return-contents*: Internal special variables
*tlog*: Internal special variables
*trans-funs*: Internal special variables
*trans-vars*: Internal special variables
*transaction-counter*: Internal special variables
*transaction-counter-lock*: Internal special variables

B
buffer: Exported classes
buffer: Exported classes

C
chan: Exported classes
count: Exported classes

F
form: Internal classes
form: Internal classes

H
head: Exported classes

I
id: Exported classes
index: Exported classes

L
lock: Exported classes

R
reads: Exported classes

S
semaphore: Exported classes
size: Exported classes
Slot, buffer: Exported classes
Slot, buffer: Exported classes
Slot, chan: Exported classes
Slot, count: Exported classes
Slot, form: Internal classes
Slot, form: Internal classes
Slot, head: Exported classes
Slot, id: Exported classes
Slot, index: Exported classes
Slot, lock: Exported classes
Slot, reads: Exported classes
Slot, semaphore: Exported classes
Slot, size: Exported classes
Slot, tail: Exported classes
Slot, thunk: Exported classes
Slot, transactional: Exported classes
Slot, transactional: Exported classes
Slot, value: Exported classes
Slot, value: Exported classes
Slot, version: Exported classes
Slot, waiting: Exported classes
Slot, waiting-lock: Exported classes
Slot, writes: Exported classes
Special Variable, *empty-cell*: Internal special variables
Special Variable, *form*: Internal special variables
Special Variable, *record-transactions*: Internal special variables
Special Variable, *return-contents*: Internal special variables
Special Variable, *tlog*: Internal special variables
Special Variable, *trans-funs*: Internal special variables
Special Variable, *trans-vars*: Internal special variables
Special Variable, *transaction-counter*: Internal special variables
Special Variable, *transaction-counter-lock*: Internal special variables

T
tail: Exported classes
thunk: Exported classes
transactional: Exported classes
transactional: Exported classes

V
value: Exported classes
value: Exported classes
version: Exported classes

W
waiting: Exported classes
waiting-lock: Exported classes
writes: Exported classes

Jump to:   *  
B   C   F   H   I   L   R   S   T   V   W  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   P   S   T   U  
Index Entry  Section

C
cell: Exported classes
chan: Exported classes
cl-stm: The cl-stm system
cl-stm: The cl-stm package
cl-stm.system: The cl-stm<dot>system package
Class, cell: Exported classes
Class, chan: Exported classes
Class, counter: Exported classes
Class, port: Exported classes
Class, standard-tlog: Exported classes
Class, standard-transaction: Exported classes
Class, standard-tvar: Exported classes
Class, tlog: Exported classes
Class, tqueue: Exported classes
Class, trans-form: Internal classes
Class, transaction: Exported classes
Class, transactional-class: Exported classes
Class, transactional-direct-slot: Exported classes
Class, transactional-effective-slot: Exported classes
Class, transactional-object: Exported classes
Class, tvar: Exported classes
Class, untrans-form: Internal classes
counter: Exported classes

P
Package, cl-stm: The cl-stm package
Package, cl-stm.system: The cl-stm<dot>system package
port: Exported classes

S
standard-tlog: Exported classes
standard-transaction: Exported classes
standard-tvar: Exported classes
System, cl-stm: The cl-stm system

T
tlog: Exported classes
tqueue: Exported classes
trans-form: Internal classes
transaction: Exported classes
transactional-class: Exported classes
transactional-direct-slot: Exported classes
transactional-effective-slot: Exported classes
transactional-object: Exported classes
tvar: Exported classes

U
untrans-form: Internal classes

Jump to:   C   P   S   T   U