The rucksack Reference Manual

This is the rucksack Reference Manual, version 0.1.21, generated automatically by Declt version 4.0 beta 2 "William Riker" on Wed May 15 06:48:53 2024 GMT+0.

Table of Contents


1 Systems

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


1.1 rucksack

Version

0.1.21

Source

rucksack.asd.

Child Components

2 Files

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


2.1 Lisp


2.1.1 rucksack/rucksack.asd

Source

rucksack.asd.

Parent Component

rucksack (system).

ASDF Systems

rucksack.


2.1.2 rucksack/queue.lisp

Source

rucksack.asd.

Parent Component

rucksack (system).

Packages

queue.

Public Interface

2.1.3 rucksack/package.lisp

Dependency

queue.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Packages

rucksack.


2.1.4 rucksack/errors.lisp

Dependency

package.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Public Interface
Internals

2.1.5 rucksack/mop.lisp

Dependency

errors.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Public Interface
Internals

2.1.6 rucksack/serialize.lisp

Dependency

mop.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Internals

2.1.7 rucksack/heap.lisp

Dependency

serialize.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Public Interface
Internals

2.1.8 rucksack/object-table.lisp

Dependency

heap.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Internals

2.1.9 rucksack/schema-table.lisp

Dependency

object-table.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Public Interface

print-object (method).

Internals

2.1.10 rucksack/garbage-collector.lisp

Dependency

schema-table.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Public Interface
Internals

2.1.11 rucksack/cache.lisp

Dependency

garbage-collector.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Public Interface
Internals

2.1.12 rucksack/objects.lisp

Dependency

cache.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Public Interface
Internals

2.1.13 rucksack/p-btrees.lisp

Dependency

objects.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Public Interface
Internals

2.1.14 rucksack/index.lisp

Dependency

p-btrees.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Public Interface
Internals

2.1.15 rucksack/rucksack.lisp

Dependency

index.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Public Interface
Internals

2.1.16 rucksack/transactions.lisp

Dependency

rucksack.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Public Interface
Internals

2.1.17 rucksack/import-export.lisp

Dependency

transactions.lisp (file).

Source

rucksack.asd.

Parent Component

rucksack (system).

Internals

3 Packages

Packages are listed by definition order.


3.1 rucksack

Source

package.lisp.

Nickname

rs

Use List
  • common-lisp.
  • queue.
  • sb-mop.
Public Interface
Internals

3.2 queue

Source

queue.lisp.

Use List

common-lisp.

Used By List

rucksack.

Public Interface

4 Definitions

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


4.1 Public Interface


4.1.1 Special variables

Special Variable: *rucksack*

The current rucksack (NIL if there is no open rucksack).

Package

rucksack.

Source

objects.lisp.

Special Variable: *transaction*

The currently active transaction.

Package

rucksack.

Source

rucksack.lisp.


4.1.2 Macros

Macro: p-pop (place)

Pop an item from the persistent list specified by PLACE.

Package

rucksack.

Source

objects.lisp.

Macro: p-push (item place)

Push ITEM onto the persistent list specified by PLACE. Return the modified persistent list. ITEM is evaluated before place.

Package

rucksack.

Source

objects.lisp.

Macro: rucksack-do-class ((instance-var class &key rucksack id-only include-subclasses) &body body)

Evaluate BODY for each instance of CLASS, with INSTANCE-VAR successively bound to each instance. See the documentation of RUCKSACK-MAP-CLASS for more details.

Package

rucksack.

Source

rucksack.lisp.

Macro: rucksack-do-slot ((instance-var class slot &rest args &key rucksack equal min max include-min include-max order include-subclasses) &body body)

Evaluate BODY for each instance of CLASS where SLOT has the specified value. INSTANCE-VAR will be bound successively to each instance. See the documentation of RUCKSACK-MAP-SLOT for more details.

Package

rucksack.

Source

rucksack.lisp.

Macro: with-cache ((cache directory &rest options) &body body)
Package

rucksack.

Source

cache.lisp.

Macro: with-rucksack ((rucksack directory &rest args) &body body)
Package

rucksack.

Source

rucksack.lisp.

Macro: with-transaction ((&rest args &key rucksack inhibit-gc &allow-other-keys) &body body)
Package

rucksack.

Source

rucksack.lisp.


4.1.3 Ordinary functions

Function: add-class-index (class-designator &key errorp)
Package

rucksack.

Source

rucksack.lisp.

Function: add-slot-index (class-designator slot index-spec &key errorp)
Package

rucksack.

Source

rucksack.lisp.

Function: cache (object)
Package

rucksack.

Source

objects.lisp.

Function: close-rucksack (rucksack &key commit)
Package

rucksack.

Source

rucksack.lisp.

Function: commit (&key rucksack)
Package

rucksack.

Source

rucksack.lisp.

Function: current-rucksack ()
Package

rucksack.

Source

objects.lisp.

Function: current-transaction ()
Package

rucksack.

Source

transactions.lisp.

Function: define-index-spec (name spec &key if-exists)

NAME must be a keyword. SPEC must be an index spec. IF-EXISTS must be either :OVERWRITE (default) or :ERROR.

Package

rucksack.

Source

index.lisp.

Function: find-index-spec (name &key errorp)
Package

rucksack.

Source

index.lisp.

Function: internal-rucksack-error (format-string &rest format-args)
Package

rucksack.

Source

errors.lisp.

Function: make-index (index-spec unique-keys-p &key class)
Package

rucksack.

Source

index.lisp.

Function: map-class-indexes (function)
Package

rucksack.

Source

rucksack.lisp.

Function: map-slot-indexes (function &key class include-subclasses)
Package

rucksack.

Source

rucksack.lisp.

Function: open-cache (directory &rest args &key class &allow-other-keys)
Package

rucksack.

Source

cache.lisp.

Function: open-heap (pathname &key class rucksack options if-exists if-does-not-exist)
Package

rucksack.

Source

heap.lisp.

Function: open-rucksack (directory-designator &rest args &key class if-exists if-does-not-exist cache-class cache-args &allow-other-keys)

Opens the rucksack in the directory designated by DIRECTORY-DESIGNATOR. :IF-DOES-NOT-EXIST can be either :CREATE (creates a new rucksack if the it does not exist; this is the default) or :ERROR (signals an error if the rucksack does not exist).
:IF-EXISTS can be either :OVERWRITE (loads the rucksack if it exists; this is the default), :SUPERSEDE (deletes the existing rucksack and creates a new empty rucksack) or :ERROR (signals an error if the rucksack exists).

Package

rucksack.

Source

rucksack.lisp.

Function: p-caar (object)

The persistent equivalent of CAAR.

Package

rucksack.

Source

objects.lisp.

Function: p-cadr (object)

The persistent equivalenet of CADR.

Package

rucksack.

Source

objects.lisp.

Function: p-cdar (object)

The persistent equivalent of CDAR.

Package

rucksack.

Source

objects.lisp.

Function: p-cddr (object)

The persistent equivalent of CDDR.

Package

rucksack.

Source

objects.lisp.

Function: p-cons (car cdr)
Package

rucksack.

Source

objects.lisp.

Function: p-last (list &optional n)

Returns the last persistent cons cell of a persistent list (or NIL if the list is empty).

Package

rucksack.

Source

objects.lisp.

Function: p-list (&rest objects)
Package

rucksack.

Source

objects.lisp.

Function: p-make-array (dimensions &rest options &key &allow-other-keys)
Package

rucksack.

Source

objects.lisp.

Function: p-mapc (function list)
Package

rucksack.

Source

objects.lisp.

Function: p-mapcar (function list)
Package

rucksack.

Source

objects.lisp.

Function: p-mapl (function list)
Package

rucksack.

Source

objects.lisp.

Function: p-maplist (function list)
Package

rucksack.

Source

objects.lisp.

Function: p-member-if (predicate list &key key)
Package

rucksack.

Source

objects.lisp.

Function: queue-add (queue object)

Adds an object to the end of the queue.

Package

queue.

Source

queue.lisp.

Function: queue-add-at-front (queue object)
Package

queue.

Source

queue.lisp.

Function: queue-clear (queue)

Removes all elements from the queue (and returns the empty queue).

Package

queue.

Source

queue.lisp.

Function: queue-empty-p (queue)

Returns true if the queue is empty, otherwise nil.

Package

queue.

Source

queue.lisp.

Function: queue-peek (queue &optional type)

Returns the first object in the queue that has the given type (and removes all objects from the queue before it). Returns NIL (and clears the entire queue) if there is no such object.

Package

queue.

Source

queue.lisp.

Function: queue-remove (queue &key errorp)

Returns the first (i.e. least recently added) element of the queue. If the queue is empty, it returns nil (when :ERRORP is nil) or signals an empty-queue-error (when :ERRORP is true).

Package

queue.

Source

queue.lisp.

Function: remove-class-index (class-designator &key errorp)
Package

rucksack.

Source

rucksack.lisp.

Function: remove-slot-index (class-designator slot &key errorp)
Package

rucksack.

Source

rucksack.lisp.

Function: rollback (&key rucksack)
Package

rucksack.

Source

rucksack.lisp.

Function: rucksack-error (class &rest args)
Package

rucksack.

Source

errors.lisp.

Function: simple-rucksack-error (format-string &rest format-args)
Package

rucksack.

Source

errors.lisp.

Function: transaction-commit (transaction &key rucksack)

Call transaction-commit-1 to do the real work.

Package

rucksack.

Source

transactions.lisp.

Function: transaction-rollback (transaction &key rucksack)
Package

rucksack.

Source

transactions.lisp.

Function: transaction-start (&rest args &key rucksack &allow-other-keys)
Package

rucksack.

Source

transactions.lisp.

Function: unwrap-persistent-list (list)

Converts a persistent list to a ’normal’ Lisp list.

Package

rucksack.

Source

objects.lisp.


4.1.4 Generic functions

Generic Function: add-rucksack-root (object rucksack)

Adds an object to the root set of a rucksack.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: add-rucksack-root (object (rucksack standard-rucksack))
Generic Function: btree-delete (btree key value &key if-does-not-exist)

Removes an association from KEY to VALUE from a btree. IF-DOES-NOT-EXIST can be either :IGNORE (default) or :ERROR. If there is no association from KEY to VALUE and IF-DOES-NOT-EXIST is :ERROR, a BTREE-DELETION-ERROR is signaled.

Package

rucksack.

Source

p-btrees.lisp.

Methods
Method: btree-delete ((btree btree) key value &key if-does-not-exist)
Generic Function: btree-delete-key (btree key &key if-does-not-exist)

Removes KEY and all associated values from a btree. IF-DOES-NOT-EXIST can be either :IGNORE (default) or :ERROR.

For a btree with unique-keys that contains a value for KEY, this operation is identical to

(btree-delete btree key (btree-search btree key))

For a btree with non-unique keys, it’s identical to

(dolist (value (unwrap-persistent-list (btree-search btree key))) (btree-delete btree key value))

Package

rucksack.

Source

p-btrees.lisp.

Methods
Method: btree-delete-key ((btree btree) key &key if-does-not-exist)
Generic Reader: btree-error-btree (condition)
Package

rucksack.

Methods
Reader Method: btree-error-btree ((condition btree-error))
Source

p-btrees.lisp.

Target Slot

btree.

Generic Reader: btree-error-key (condition)
Package

rucksack.

Methods
Reader Method: btree-error-key ((condition btree-deletion-error))
Source

p-btrees.lisp.

Target Slot

key.

Reader Method: btree-error-key ((condition btree-insertion-error))
Source

p-btrees.lisp.

Target Slot

key.

Reader Method: btree-error-key ((condition btree-search-error))
Source

p-btrees.lisp.

Target Slot

key.

Generic Reader: btree-error-value (condition)
Package

rucksack.

Methods
Reader Method: btree-error-value ((condition btree-deletion-error))
Source

p-btrees.lisp.

Target Slot

value.

Reader Method: btree-error-value ((condition btree-insertion-error))
Source

p-btrees.lisp.

Target Slot

value.

Generic Function: btree-insert (btree key value &key if-exists)

Adds an association from KEY to VALUE to a btree.

IF-EXISTS can be either :OVERWRITE (default) or :ERROR.

If the btree has unique keys (see BTREE-UNIQUE-KEYS-P) and KEY is already associated with another (according to BTREE-VALUE=) value, the result depends on the IF-EXISTS option: if IF-EXISTS is :OVERWRITE, the old value is overwriten; if IF-EXISTS is :ERROR, a BTREE-KEY-ALREADY-PRESENT-ERROR is signaled.

For btrees with non-unique keys, the IF-EXISTS option is ignored and VALUE is just added to the list of values associated with KEY (unless VALUE is already associated with KEY; in that case nothing happens).

Package

rucksack.

Source

p-btrees.lisp.

Methods
Method: btree-insert ((btree btree) key value &key if-exists)
Generic Reader: btree-key-type (object)
Package

rucksack.

Methods
Reader Method: btree-key-type ((btree btree))

The type of all keys.

Source

p-btrees.lisp.

Target Slot

key-type.

Generic Function: btree-key< (btree)
Package

rucksack.

Methods
Method: btree-key< ((btree btree))
Source

p-btrees.lisp.

Generic Function: btree-key<= (btree)
Package

rucksack.

Methods
Method: btree-key<= ((btree btree))
Source

p-btrees.lisp.

Generic Function: btree-key= (btree)
Package

rucksack.

Methods
Method: btree-key= ((btree btree))
Source

p-btrees.lisp.

Generic Function: btree-key> (btree)
Package

rucksack.

Methods
Method: btree-key> ((btree btree))
Source

p-btrees.lisp.

Generic Function: btree-key>= (btree)
Package

rucksack.

Methods
Method: btree-key>= ((btree btree))
Source

p-btrees.lisp.

Generic Reader: btree-max-node-size (object)
Package

rucksack.

Methods
Reader Method: btree-max-node-size ((btree btree))

An integer specifying the preferred maximum number of keys per btree node.

Source

p-btrees.lisp.

Target Slot

max-node-size.

Generic Reader: btree-node-class (object)
Package

rucksack.

Methods
Reader Method: btree-node-class ((btree btree))

automatically generated reader method

Source

p-btrees.lisp.

Target Slot

node-class.

Generic Function: btree-nr-keys (btree)

Returns the number of keys in a btree.

Package

rucksack.

Source

p-btrees.lisp.

Methods
Method: btree-nr-keys ((btree btree))
Generic Function: btree-nr-values (btree)

Returns the number of values in a btree.

Package

rucksack.

Source

p-btrees.lisp.

Methods
Method: btree-nr-values ((btree btree))
Generic Function: btree-search (btree key &key errorp default-value)

Returns the value (or persistent list of values, for btrees that don’t have unique keys) associated with KEY. If the btree has non-unique keys and no value is found, the empty list is returned. If the btree has unique keys and no value is found, the result depends on the ERRORP option: if ERRORP is true, a btree-search-error is signalled; otherwise, DEFAULT-VALUE is returned.

Package

rucksack.

Source

p-btrees.lisp.

Methods
Method: btree-search (btree key &key errorp default-value)
Generic Reader: btree-unique-keys-p (object)
Package

rucksack.

Methods
Reader Method: btree-unique-keys-p ((btree btree))

If false, one key can correspond to more than one value.
In that case, the values are assumed to be objects for which the function OBJECT-ID is defined (and returns a unique integer).

Source

p-btrees.lisp.

Target Slot

unique-keys-p.

Generic Reader: btree-value-type (object)
Package

rucksack.

Methods
Reader Method: btree-value-type ((btree btree))

The type of all values.

Source

p-btrees.lisp.

Target Slot

value-type.

Generic Function: btree-value= (btree)
Package

rucksack.

Methods
Method: btree-value= ((btree btree))
Source

p-btrees.lisp.

Generic Function: cache-commit (cache)

Makes sure that all changes to the cache are written to disk.

Package

rucksack.

Source

cache.lisp.

Methods
Method: cache-commit ((cache standard-cache))
Generic Function: cache-count (cache)

Returns the number of objects (both dirty and non-dirty) in the cache.

Package

rucksack.

Source

cache.lisp.

Methods
Method: cache-count ((cache standard-cache))
Generic Function: cache-create-object (object cache)

Adds a new object to the cache and returns an
object id that can be used to retrieve the object from the cache. Don’t use this function twice for the same object.

Package

rucksack.

Source

cache.lisp.

Methods
Method: cache-create-object (object (cache standard-cache))
Generic Function: cache-get-object (object-id cache)

Retrieves the object with the given id from the cache and returns that object.

Package

rucksack.

Source

cache.lisp.

Methods
Method: cache-get-object (object-id (cache standard-cache))
Generic Function: cache-recover (cache)

Undoes partially committed transactions to ensure that the cache is in a consistent state.

Package

rucksack.

Source

cache.lisp.

Methods
Method: cache-recover ((cache standard-cache))
Generic Function: cache-rollback (cache)

Undoes all cache changes that were made since the last cache-commit.

Package

rucksack.

Source

cache.lisp.

Methods
Method: cache-rollback ((cache standard-cache))
Generic Reader: cache-size (cache)

Returns the number of non-dirty objects that the cache may keep in memory.

Package

rucksack.

Source

cache.lisp.

Methods
Reader Method: cache-size ((standard-cache standard-cache))

The maximum number of non-dirty objects that will be kept in the cache memory.

Target Slot

size.

Generic Writer: (setf cache-size) (object)
Package

rucksack.

Methods
Writer Method: (setf cache-size) ((standard-cache standard-cache))

The maximum number of non-dirty objects that will be kept in the cache memory.

Source

cache.lisp.

Target Slot

size.

Generic Function: cache-touch-object (object cache)
Package

rucksack.

Methods
Method: cache-touch-object (object (cache standard-cache))

Checks for transaction conflicts and signals a transaction conflict if necessary. Change the object’s status to dirty. If the object is already dirty, nothing happens.

Source

cache.lisp.

Generic Function: close-cache (cache &key commit)

Closes the cache. If COMMIT is true (which is the
default), the objects in the cache will be written to disk before closing the cache.

Package

rucksack.

Source

cache.lisp.

Methods
Method: close-cache ((cache standard-cache) &key commit)
Generic Function: close-heap (heap)
Package

rucksack.

Methods
Method: close-heap :after ((heap mark-and-sweep-heap))
Source

garbage-collector.lisp.

Method: close-heap ((heap heap))
Source

heap.lisp.

Generic Function: close-transaction (cache transaction)

Removes a transaction from the set of open transactions.

Package

rucksack.

Source

cache.lisp.

Methods
Method: close-transaction ((cache standard-cache) transaction)
Generic Reader: heap (object)
Package

rucksack.

Methods
Reader Method: heap ((standard-cache standard-cache))

automatically generated reader method

Source

cache.lisp.

Target Slot

heap.

Generic Reader: heap-end (heap)

Returns the end of the heap.

Package

rucksack.

Source

heap.lisp.

Methods
Reader Method: heap-end ((heap heap))

The end of the heap. For free-list heaps, this number
is stored in the first heap cell. For appending heaps, it’s stored in the end of the file.

Target Slot

end.

Generic Function: (setf heap-end) (heap)

Modifies the end of the heap.

Package

rucksack.

Source

heap.lisp.

Methods
Method: (setf heap-end) :after ((heap appending-heap))
Method: (setf heap-end) :after ((heap free-list-heap))
Writer Method: (setf heap-end) ((heap heap))

The end of the heap. For free-list heaps, this number
is stored in the first heap cell. For appending heaps, it’s stored in the end of the file.

Target Slot

end.

Generic Reader: heap-stream (heap)

Returns the heap’s stream.

Package

rucksack.

Source

heap.lisp.

Methods
Reader Method: heap-stream ((heap heap))

automatically generated reader method

Target Slot

stream.

Generic Writer: (setf heap-stream) (object)
Package

rucksack.

Methods
Writer Method: (setf heap-stream) ((heap heap))

automatically generated writer method

Source

heap.lisp.

Target Slot

stream.

Generic Function: index-delete (index key value &key if-does-not-exist)

Remove a key/value pair from an index. IF-DOES-NOT-EXIST can be either :IGNORE (default) or :ERROR.

Package

rucksack.

Source

index.lisp.

Methods
Method: index-delete ((index index) key value &key if-does-not-exist)
Generic Function: index-insert (index key value &key if-exists)

Insert a key/value pair into an index. IF-EXISTS can be either :OVERWRITE (default) or :ERROR.

Package

rucksack.

Source

index.lisp.

Methods
Method: index-insert ((index index) key value &key if-exists)
Generic Function: map-btree (btree function &key min max include-min include-max order)

Calls FUNCTION for all key/value associations in the btree where key is in the specified interval (this means that FUNCTION can be called with the same key more than once for btrees with non-unique keys). FUNCTION must be a binary function; the first argument is the btree key, the second argument is an associated value.

MIN, MAX, INCLUDE-MIN and INCLUDE-MAX specify the interval. The interval is left-open if MIN is nil, right-open if MAX is nil. The interval is inclusive on the left if INCLUDE-MIN is true (and exclusive on the left otherwise). The interval is inclusive on the right if INCLUDE-MAX is true (and exclusive on the right otherwise).

ORDER is either :ASCENDING (default) or :DESCENDING.

Package

rucksack.

Source

p-btrees.lisp.

Methods
Method: map-btree ((btree btree) function &key min max include-min include-max order)
Generic Function: map-btree-keys (btree function &key min max include-min include-max order)

Calls FUNCTION for all keys in the btree where key is in the specified interval. FUNCTION must be a binary function; the first argument is the btree key, the second argument is the btree value (or persistent list of values, for btrees with non-unique keys). FUNCTION will be called exactly once for each key in the btree.

MIN, MAX, INCLUDE-MIN and INCLUDE-MAX specify the interval. The interval is left-open if MIN is nil, right-open if MAX is nil. The interval is inclusive on the left if INCLUDE-MIN is true (and exclusive on the left otherwise). The interval is inclusive on the right if INCLUDE-MAX is true (and exclusive on the right otherwise).

ORDER is either :ASCENDING (default) or :DESCENDING.

Package

rucksack.

Source

p-btrees.lisp.

Methods
Method: map-btree-keys ((btree btree) function &key min max include-min include-max order)
Generic Function: map-index (index function &key equal min max include-min include-max order)

Calls FUNCTION for all key/value pairs in the btree
where key is in the specified interval. FUNCTION must be a binary function; the first argument is the index key, the second argument is the index value (or list of values, for indexes with non-unique keys).

If EQUAL is specified, the other arguments are ignored; the function will be called once (if there is a key with the same value as EQUAL) or not at all (if there is no such key).

MIN, MAX, INCLUDE-MIN and INCLUDE-MAX specify the interval. The interval is left-open if MIN is nil, right-open if MAX is nil. The interval is inclusive on the left if INCLUDE-MIN is true (and exclusive on the left otherwise). The interval is inclusive on the right if INCLUDE-MAX is true (and exclusive on the right otherwise).

ORDER is either :ASCENDING (default) or :DESCENDING.

Package

rucksack.

Source

index.lisp.

Methods
Method: map-index ((index index) function &rest args &key min max include-min include-max equal order)
Generic Function: map-rucksack-roots (function rucksack)

Applies a function to all objects in the root set of a rucksack.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: map-rucksack-roots (function (rucksack standard-rucksack))
Generic Function: map-transactions (cache function)

Applies a function to each open transaction in a cache.

Package

rucksack.

Source

cache.lisp.

Methods
Method: map-transactions ((cache standard-cache) function)
Generic Reader: object-id (object)

Returns the object id of a persistent-object or persistent-data.

Package

rucksack.

Source

objects.lisp.

Methods
Reader Method: object-id ((persistent-object persistent-object))

automatically generated reader method

Target Slot

object-id.

Reader Method: object-id ((persistent-data persistent-data))

automatically generated reader method

Target Slot

object-id.

Reader Method: object-id ((proxy proxy))

automatically generated reader method

Target Slot

object-id.

Reader Method: object-id ((condition transaction-conflict))
Source

errors.lisp.

Target Slot

object-id.

Generic Function: open-transaction (cache transaction)

Adds a transaction to the set of open transactions.

Package

rucksack.

Source

cache.lisp.

Methods
Method: open-transaction ((cache standard-cache) transaction)
Generic Function: p-aref (array &rest indices)
Package

rucksack.

Methods
Method: p-aref ((array persistent-array) &rest indices)
Source

objects.lisp.

Generic Function: (setf p-aref) (array &rest indices)
Package

rucksack.

Methods
Method: (setf p-aref) ((array persistent-array) &rest indices)
Source

objects.lisp.

Generic Function: p-array-dimensions (array)
Package

rucksack.

Methods
Method: p-array-dimensions ((array persistent-array))
Source

objects.lisp.

Generic Function: p-car (cons)
Package

rucksack.

Methods
Method: p-car ((x (eql nil)))
Source

objects.lisp.

Method: p-car ((cons persistent-cons))
Source

objects.lisp.

Generic Function: (setf p-car) (cons)
Package

rucksack.

Methods
Method: (setf p-car) ((cons persistent-cons))
Source

objects.lisp.

Generic Function: p-cdr (cons)
Package

rucksack.

Methods
Method: p-cdr ((x (eql nil)))
Source

objects.lisp.

Method: p-cdr ((cons persistent-cons))
Source

objects.lisp.

Generic Function: (setf p-cdr) (cons)
Package

rucksack.

Methods
Method: (setf p-cdr) ((cons persistent-cons))
Source

objects.lisp.

Generic Function: p-consp (object)
Package

rucksack.

Methods
Method: p-consp (object)
Source

objects.lisp.

Method: p-consp ((object persistent-cons))
Source

objects.lisp.

Generic Function: p-delete-if (test list &key from-end start end count key)
Package

rucksack.

Methods
Method: p-delete-if (test (list persistent-cons) &key from-end start end count key)
Source

objects.lisp.

Generic Function: p-endp (object)
Package

rucksack.

Methods
Method: p-endp (object)
Source

objects.lisp.

Method: p-endp ((object persistent-cons))
Source

objects.lisp.

Method: p-endp ((object (eql nil)))
Source

objects.lisp.

Generic Function: p-eql (x y)

The persistent equivalent of EQL.

Package

rucksack.

Source

objects.lisp.

Methods
Method: p-eql ((a persistent-object) (b persistent-data))
Method: p-eql ((a persistent-data) (b persistent-object))
Method: p-eql ((a persistent-object) (b persistent-object))
Method: p-eql ((a persistent-data) (b persistent-data))
Method: p-eql (a b)
Generic Function: p-find (value vector &key key test start end &allow-other-keys)
Package

rucksack.

Methods
Method: p-find (value (list (eql nil)) &key &allow-other-keys)
Source

objects.lisp.

Method: p-find (value (list persistent-cons) &key key test start end)
Source

objects.lisp.

Method: p-find (value (vector persistent-array) &key key test start end)
Source

objects.lisp.

Generic Function: p-length (vector)
Package

rucksack.

Methods
Method: p-length ((list persistent-cons))
Source

objects.lisp.

Method: p-length ((vector persistent-array))
Source

objects.lisp.

Generic Function: p-position (value vector &key key test start end)
Package

rucksack.

Methods
Method: p-position (value (list persistent-cons) &key key test start end)
Source

objects.lisp.

Method: p-position (value (vector persistent-array) &key key test start end)
Source

objects.lisp.

Generic Function: p-replace (vector-1 vector-2 &key start1 end1 start2 end2)
Package

rucksack.

Methods
Method: p-replace ((vector-1 persistent-array) (vector-2 persistent-array) &key start1 end1 start2 end2)
Source

objects.lisp.

Generic Reader: queue (object)
Package

queue.

Methods
Reader Method: queue ((standard-cache standard-cache))

A queue of the ids of all non-dirty objects
that are currently in the cache memory. Whenever an object is retrieved (i.e. read), it’s added to the queue. If an object-id is in this queue, it is not necessarily in the OBJECTS hash-table.

Source

cache.lisp.

Target Slot

queue.

Generic Reader: queue-size (object)
Package

queue.

Methods
Reader Method: queue-size ((queue queue))

automatically generated reader method

Source

queue.lisp.

Target Slot

size.

Generic Reader: rucksack (condition)
Package

rucksack.

Methods
Reader Method: rucksack ((persistent-object persistent-object))

automatically generated reader method

Source

objects.lisp.

Target Slot

rucksack.

Reader Method: rucksack ((persistent-data persistent-data))

automatically generated reader method

Source

objects.lisp.

Target Slot

rucksack.

Reader Method: rucksack ((proxy proxy))

automatically generated reader method

Source

objects.lisp.

Target Slot

rucksack.

Reader Method: rucksack ((standard-cache standard-cache))

Back pointer to the rucksack.

Source

cache.lisp.

Target Slot

rucksack.

Reader Method: rucksack ((garbage-collector garbage-collector))

automatically generated reader method

Source

garbage-collector.lisp.

Target Slot

rucksack.

Reader Method: rucksack ((condition rucksack-error))
Source

errors.lisp.

Target Slot

rucksack.

Generic Function: rucksack-add-class-index (rucksack class-designator &key errorp)
Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-add-class-index ((rucksack standard-rucksack) class &key errorp)
Generic Function: rucksack-add-slot-index (rucksack class-designator slot index-spec unique-p &key errorp)

Creates a new slot index for the slot designated by CLASS-DESIGNATOR and SLOT. The type of index is specified by INDEX-SPEC. Returns the new index. Signals an error if ERRORP is T and there already is an index for the designated slot.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-add-slot-index ((rucksack standard-rucksack) class slot index-spec unique-p &key errorp)
Generic Reader: rucksack-cache (rucksack)

Returns the cache for a rucksack.

Package

rucksack.

Source

rucksack.lisp.

Methods
Reader Method: rucksack-cache ((standard-rucksack standard-rucksack))

automatically generated reader method

Target Slot

cache.

Generic Function: rucksack-class-index (rucksack class-designator &key errorp)

Returns the class index for a class designator.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-class-index ((rucksack standard-rucksack) class &key errorp)
Generic Function: rucksack-commit (rucksack)

Ensures that all in-memory data is saved to disk.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-commit ((rucksack standard-rucksack))
Generic Function: rucksack-delete-object (rucksack object)

Removes OBJECT from RUCKSACK, i.e. removes object from the rucksack roots (if it is a root) and from all class and slot indexes in which it appears.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-delete-object ((rucksack standard-rucksack) object)
Generic Reader: rucksack-directory (rucksack)

Returns a pathname for the directory that contains all files of a rucksack.

Package

rucksack.

Source

rucksack.lisp.

Methods
Reader Method: rucksack-directory ((standard-rucksack standard-rucksack))

automatically generated reader method

Target Slot

directory.

Generic Function: rucksack-make-class-index (rucksack class &key index-spec)

Creates a new class index and returns that index. INDEX-SPEC specifies the kind of index that must be created (if not supplied, the rucksack’s default class index spec will be used.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-make-class-index ((rucksack standard-rucksack) class &key index-spec)
Generic Function: rucksack-map-class (rucksack class function &key id-only include-subclasses)

FUNCTION is a unary function that gets called for all instances of the specified class. Unindexed classes (i.e. classes for which the :indexed class option is nil) will be skipped.
If ID-ONLY is T (default is NIL), the function will be called with object ids instead of ’real’ objects. This can be handy if you want to do more filtering before actually loading objects from disk. INCLUDE-SUBCLASSES defaults to T.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-map-class ((rucksack standard-rucksack) class function &key id-only include-subclasses)
Generic Function: rucksack-map-class-indexes (rucksack function)

FUNCTION must take two arguments: a class name and a class index. It is called for all class indexes in the specified rucksack.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-map-class-indexes (rucksack function)
Generic Function: rucksack-map-slot (rucksack class slot function &key equal min max include-min include-max order include-subclasses)

FUNCTION is a unary function that gets called for all instances of the specified class that have a slot value matching the EQUAL, MIN, MAX INCLUDE-MIN and INCLUDE-MAX arguments (see the documentation of MAP-INDEX for a description of these arguments).
ORDER can be either :ASCENDING (default) or :DESCENDING; currently, the specified order will be respected for instances of one class but not across subclasses.
If ID-ONLY is T (default is NIL), the function will be called with object ids instead of ’real’ objects. This can be handy if you want to do more filtering before actually loading objects from disk. INCLUDE-SUBCLASSES defaults to T.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-map-slot ((rucksack standard-rucksack) class slot function &key min max include-min include-max equal order include-subclasses)
Generic Function: rucksack-map-slot-indexes (rucksack function &key class include-subclasses)

FUNCTION must take three arguments: a class name, a slot name and a slot index. It is called for all slot indexes in the specified rucksack.
CLASS defaults to T, meaning all classes. INCLUDE-SUBCLASSES defaults to T.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-map-slot-indexes ((rucksack standard-rucksack) function &key class include-subclasses)
Generic Function: rucksack-maybe-index-changed-slot (rucksack class object slot old-value new-value old-boundp new-boundp)

This function is called after a slot has changed. OLD-VALUE is the slot’s value before the change, NEW-VALUE is the current value. OLD-BOUNDP is true iff the slot was bound before the change, NEW-BOUNDP is true iff the slot is currently bound.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-maybe-index-changed-slot ((rucksack standard-rucksack) class object slot old-value new-value old-boundp new-boundp)
Generic Function: rucksack-maybe-index-new-object (rucksack class-designator object)

Adds the object id of OBJECT to the class index for the class designated by CLASS-DESIGNATOR. If there is no such class index, it does nothing.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-maybe-index-new-object ((rucksack standard-rucksack) class object)
Generic Function: rucksack-remove-class-index (rucksack class-designator &key errorp)
Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-remove-class-index ((rucksack standard-rucksack) class &key errorp)
Generic Function: rucksack-remove-slot-index (rucksack class-designator slot &key errorp)
Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-remove-slot-index (rucksack class slot &key errorp)
Generic Function: rucksack-rollback (rucksack)

....

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-rollback ((rucksack standard-rucksack))
Generic Function: rucksack-roots (rucksack)

Returns a list with all objects in the root set of a rucksack. You shouldn’t modify this list.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-roots ((rucksack standard-rucksack))
Generic Function: rucksack-slot-index (rucksack class-designator slot &key errorp include-superclasses)

Returns the slot index for the slot specified by CLASS-DESIGNATOR and SLOT.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-slot-index ((rucksack standard-rucksack) class slot &key errorp include-superclasses)
Generic Reader: transaction (condition)
Package

rucksack.

Methods
Reader Method: transaction ((condition transaction-conflict))
Source

errors.lisp.

Target Slot

transaction.

Generic Function: transaction-commit-1 (transaction cache rucksack)

Save all modified objects to disk.

Package

rucksack.

Source

transactions.lisp.

Methods
Method: transaction-commit-1 ((transaction standard-transaction) (cache standard-cache) (rucksack standard-rucksack))
Method: transaction-commit-1 :after ((transaction standard-transaction) (cache standard-cache) (rucksack serial-transaction-rucksack))
Generic Reader: transaction-id (object)
Package

rucksack.

Methods
Reader Method: transaction-id ((standard-transaction standard-transaction))

automatically generated reader method

Source

transactions.lisp.

Target Slot

id.

Reader Method: transaction-id ((persistent-object persistent-object))

automatically generated reader method

Source

objects.lisp.

Target Slot

transaction-id.

Reader Method: transaction-id ((persistent-data persistent-data))

automatically generated reader method

Source

objects.lisp.

Target Slot

transaction-id.

Generic Function: transaction-start-1 (cache rucksack &key &allow-other-keys)

Creates and returns a new transaction.

Package

rucksack.

Source

transactions.lisp.

Methods
Method: transaction-start-1 :before ((cache standard-cache) (rucksack serial-transaction-rucksack) &key &allow-other-keys)
Method: transaction-start-1 ((cache standard-cache) (rucksack standard-rucksack) &key &allow-other-keys)
Generic Function: update-persistent-instance-for-redefined-class (instance added-slots discarded-slots property-list &key)
Package

rucksack.

Source

objects.lisp.

Methods
Method: update-persistent-instance-for-redefined-class ((instance persistent-object) added-slots discarded-slots plist &key)

4.1.5 Standalone methods

Method: compute-effective-slot-definition ((class persistent-class) slot-name direct-slot-definitions)
Package

sb-mop.

Source

mop.lisp.

Method: direct-slot-definition-class ((class persistent-class) &rest initargs)
Package

sb-mop.

Source

mop.lisp.

Method: effective-slot-definition-class ((class persistent-class) &rest initargs)
Package

sb-mop.

Source

mop.lisp.

Method: finalize-inheritance :after ((class persistent-class))
Package

sb-mop.

Source

mop.lisp.

Method: initialize-instance :around ((object persistent-object) &rest args &key rucksack dont-index &allow-other-keys)
Source

objects.lisp.

Method: initialize-instance :after ((heap mark-and-sweep-heap) &key size &allow-other-keys)
Source

garbage-collector.lisp.

Method: initialize-instance :around ((btree btree) &rest initargs &key key< key-key value= value-key &allow-other-keys)
Source

p-btrees.lisp.

Method: initialize-instance :after ((cache standard-cache) &key directory heap-class heap-options if-exists if-does-not-exist size &allow-other-keys)
Source

cache.lisp.

Method: initialize-instance :after ((rucksack standard-rucksack) &key cache-class cache-args &allow-other-keys)
Source

rucksack.lisp.

Method: initialize-instance :around ((class persistent-class) &rest args &key direct-superclasses &allow-other-keys)
Source

mop.lisp.

Method: initialize-instance :after ((heap free-list-heap) &key &allow-other-keys)
Source

heap.lisp.

Method: initialize-instance :after ((node bnode) &key btree &allow-other-keys)
Source

p-btrees.lisp.

Method: print-object :after ((error simple-rucksack-error) stream)
Source

errors.lisp.

Method: print-object ((object persistent-data) stream)
Source

objects.lisp.

Method: print-object ((object persistent-object) stream)
Source

objects.lisp.

Method: print-object :after ((error duplicate-slot-value) stream)
Source

errors.lisp.

Method: print-object :after ((error transaction-conflict) stream)
Source

errors.lisp.

Method: print-object ((rucksack rucksack) stream)
Source

rucksack.lisp.

Method: print-object ((cache standard-cache) stream)
Source

cache.lisp.

Method: print-object ((transaction transaction) stream)
Source

transactions.lisp.

Method: print-object ((error rucksack-error) stream)
Source

errors.lisp.

Method: print-object :after ((error internal-rucksack-error) stream)
Source

errors.lisp.

Method: print-object ((index index) stream)
Source

index.lisp.

Method: print-object ((schema schema) stream)
Source

schema-table.lisp.

Method: print-object ((node bnode) stream)
Source

p-btrees.lisp.

Method: print-object ((queue queue) stream)
Source

queue.lisp.

Method: reinitialize-instance :around ((class persistent-class) &rest args &key direct-superclasses &allow-other-keys)
Source

mop.lisp.

Method: slot-makunbound-using-class :around ((class persistent-class) object slot-name-or-def)
Package

sb-mop.

Source

objects.lisp.

Method: (setf slot-value-using-class) :around ((class persistent-class) object slot-name-or-def)
Package

sb-mop.

Source

objects.lisp.

Method: slot-value-using-class :around ((class persistent-class) object slot)
Package

sb-mop.

Source

objects.lisp.

Method: update-instance-for-redefined-class ((object persistent-object) added-slots discarded-slots plist &rest initargs &key)
Source

objects.lisp.

Method: validate-superclass ((class persistent-class) (superclass standard-class))
Package

sb-mop.

Source

mop.lisp.

Method: validate-superclass ((class standard-class) (superclass persistent-class))
Package

sb-mop.

Source

mop.lisp.


4.1.6 Conditions

Condition: btree-error
Package

rucksack.

Source

p-btrees.lisp.

Direct superclasses

error.

Direct subclasses
Direct methods

btree-error-btree.

Direct slots
Slot: btree
Initargs

:btree

Readers

btree-error-btree.

Writers

This slot is read-only.

Condition: btree-insertion-error
Package

rucksack.

Source

p-btrees.lisp.

Direct superclasses

btree-error.

Direct subclasses

btree-key-already-present-error.

Direct methods
Direct slots
Slot: key
Initargs

:key

Readers

btree-error-key.

Writers

This slot is read-only.

Slot: value
Initargs

:value

Readers

btree-error-value.

Writers

This slot is read-only.

Condition: btree-key-already-present-error
Package

rucksack.

Source

p-btrees.lisp.

Direct superclasses

btree-insertion-error.

Condition: btree-search-error
Package

rucksack.

Source

p-btrees.lisp.

Direct superclasses

btree-error.

Direct methods

btree-error-key.

Direct slots
Slot: key
Initargs

:key

Readers

btree-error-key.

Writers

This slot is read-only.

Condition: btree-type-error
Package

rucksack.

Source

p-btrees.lisp.

Direct superclasses
Condition: duplicate-slot-value
Package

rucksack.

Source

errors.lisp.

Direct superclasses

slot-error.

Direct methods
Direct slots
Slot: other-object
Initargs

:other-object

Readers

slot-error-other-object.

Writers

This slot is read-only.

Condition: empty-queue-error
Package

queue.

Source

queue.lisp.

Direct superclasses

error.

Direct slots
Slot: queue
Initargs

:queue

Condition: internal-rucksack-error
Package

rucksack.

Source

errors.lisp.

Direct superclasses
Direct methods

print-object.

Condition: rucksack-error
Package

rucksack.

Source

errors.lisp.

Direct superclasses

error.

Direct subclasses
Direct methods
Direct slots
Slot: rucksack
Initform

(quote (rucksack:current-rucksack))

Initargs

:rucksack

Readers

rucksack.

Writers

This slot is read-only.

Condition: simple-rucksack-error
Package

rucksack.

Source

errors.lisp.

Direct superclasses
Direct methods

print-object.

Condition: slot-error
Package

rucksack.

Source

errors.lisp.

Direct superclasses

rucksack-error.

Direct subclasses

duplicate-slot-value.

Direct methods
Direct slots
Slot: object
Initargs

:object

Readers

slot-error-object.

Writers

This slot is read-only.

Slot: slot-name
Initargs

:slot-name

Readers

slot-error-name.

Writers

This slot is read-only.

Slot: value
Initargs

:value

Readers

slot-error-value.

Writers

This slot is read-only.

Condition: transaction-conflict
Package

rucksack.

Source

errors.lisp.

Direct superclasses

rucksack-error.

Direct methods
Direct slots
Slot: transaction
Initform

(quote (rucksack:current-transaction))

Initargs

:transaction

Readers

transaction.

Writers

This slot is read-only.

Slot: old-transaction
Initform

(quote (error "old-transaction initarg required for transaction-conflict."))

Initargs

:old-transaction

Readers

old-transaction.

Writers

This slot is read-only.

Slot: object-id
Initform

(quote (error "object-id initarg required for transaction-conflict."))

Initargs

:object-id

Readers

object-id.

Writers

This slot is read-only.


4.1.7 Classes

Class: btree
Package

rucksack.

Source

p-btrees.lisp.

Direct superclasses

persistent-object.

Direct subclasses

set-btree.

Direct methods
Direct slots
Slot: key<
Initform

(quote <)

Initargs

:key<

Slot: value=

This is only used for btrees with non-unique keys.

Initform

(quote rucksack:p-eql)

Initargs

:value=

Slot: key-key

A unary function that is applied to a
btree key before comparing it to another key with a key comparison predicate like BTREE-KEY<.

Initform

(quote identity)

Initargs

:key-key

Readers

btree-key-key.

Writers

This slot is read-only.

Slot: value-key

A unary function that is applied to a
btree value before comparing it to another value with the BTREE-VALUE= predicate.

Initform

(quote identity)

Initargs

:value-key

Readers

btree-value-key.

Writers

This slot is read-only.

Slot: node-class
Initform

(quote rucksack::bnode)

Initargs

:node-class

Readers

btree-node-class.

Writers

This slot is read-only.

Slot: max-node-size

An integer specifying the preferred maximum number of keys per btree node.

Initform

64

Initargs

:max-node-size

Readers

btree-max-node-size.

Writers

This slot is read-only.

Slot: unique-keys-p

If false, one key can correspond to more than one value.
In that case, the values are assumed to be objects for which the function OBJECT-ID is defined (and returns a unique integer).

Initform

t

Initargs

:unique-keys-p

Readers

btree-unique-keys-p.

Writers

This slot is read-only.

Slot: key-type

The type of all keys.

Initform

t

Initargs

:key-type

Readers

btree-key-type.

Writers

This slot is read-only.

Slot: value-type

The type of all values.

Initform

t

Initargs

:value-type

Readers

btree-value-type.

Writers

This slot is read-only.

Slot: root
Readers

btree-root.

Writers

(setf btree-root).

Class: cache
Package

rucksack.

Source

cache.lisp.

Direct subclasses

standard-cache.

Direct methods
Class: free-list-heap

This heap uses a ’segregated free list’ system: the
first list contains 16-octet blocks (including the header), the second list contains 32-octet blocks, the third has 64-octet blocks, etc. When there are N free lists, the last is for blocks of 16*2^(N-1) octets.

Each block starts with an 8-octet header. If a block is in use, the header contains the block’s size. If a block is still free, the header contains a pointer to the next block on the same free list.

Package

rucksack.

Source

heap.lisp.

Direct superclasses

heap.

Direct subclasses
Direct methods
Direct slots
Slot: nr-free-lists
Initform

32

Initargs

:nr-free-lists

Readers

nr-free-lists.

Writers

This slot is read-only.

Slot: starts

An array with the starts of each free-list. This
is an in-memory version of the array that’s in the beginning of the heap.

Slot: min-block-size

The size of the smallest blocks. This must be a power of 2.

Initform

16

Initargs

:min-block-size

Readers

min-block-size.

Writers

This slot is read-only.

Slot: expansion-size

The minimum number of bytes that will be used to expand a free-list.

Initform

(* 32 1024)

Initargs

:expansion-size

Readers

expansion-size.

Writers

This slot is read-only.

Class: heap
Package

rucksack.

Source

heap.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: stream
Package

common-lisp.

Initargs

:stream

Readers

heap-stream.

Writers

(setf heap-stream).

Slot: cell-buffer
Initform

(make-array rucksack::+pointer-size+ :element-type (quote (unsigned-byte 8)))

Readers

cell-buffer.

Writers

This slot is read-only.

Slot: end

The end of the heap. For free-list heaps, this number
is stored in the first heap cell. For appending heaps, it’s stored in the end of the file.

Readers

heap-end.

Writers

(setf heap-end).

Slot: max-size

The maximum size (in octets) for the heap.
If nil, the heap is allowed to expand indefinitely.

Initargs

:max-size

Readers

max-heap-size.

Writers

(setf max-heap-size).

Slot: nr-allocated-octets

The number of octets that have been
allocated by ALLOCATE-BLOCK since the last time that RESET-ALLOCATION-COUNTER was called.

Initform

0

Readers

nr-allocated-octets.

Writers

(setf nr-allocated-octets).

Class: mark-and-sweep-heap
Package

rucksack.

Source

garbage-collector.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: nr-object-bytes-marked
Initform

0

Readers

nr-object-bytes-marked.

Writers

(setf nr-object-bytes-marked).

Slot: nr-heap-bytes-scanned
Initform

0

Readers

nr-heap-bytes-scanned.

Writers

(setf nr-heap-bytes-scanned).

Slot: nr-heap-bytes-sweeped
Initform

0

Readers

nr-heap-bytes-sweeped.

Writers

(setf nr-heap-bytes-sweeped).

Slot: nr-object-bytes-sweeped
Initform

0

Readers

nr-object-bytes-sweeped.

Writers

(setf nr-object-bytes-sweeped).

Slot: max-heap-end

The maximum acceptable value for heap-end during the current garbage collection.

Readers

max-heap-end.

Writers

(setf max-heap-end).

Slot: grow-size

Specifies a minimum amount to grow the heap when it needs to grow. If ’grow size’ is an integer, the expected growth rate is additive and the integer is the number of octets to add; if it is a float, the expected growth rate for the heap is multiplicative and the float is the ratio of the new size to the old size. (The actual size might be rounded up.)

Initargs

:grow-size

Readers

grow-size.

Writers

(setf grow-size).

Class: persistent-array
Package

rucksack.

Source

objects.lisp.

Direct superclasses

persistent-data.

Direct methods
Class: persistent-class
Package

rucksack.

Source

mop.lisp.

Direct superclasses

standard-class.

Direct methods
Direct slots
Slot: persistent-slots
Initform

(quote nil)

Readers

class-persistent-slots.

Writers

(setf class-persistent-slots).

Slot: index

Can be either NIL (for no class index) or T
(for the standard class index). Default value is NIL.

Initargs

:index

Slot: changed-p

True iff the class definition was changed
but the schemas haven’t been updated yet. This flag is necessary because some MOP implementations don’t call FINALIZE-INHERITANCE when a class was redefined and a new instance of the redefined class is created.

Readers

class-changed-p.

Writers

(setf class-changed-p).

Class: persistent-cons
Package

rucksack.

Source

objects.lisp.

Direct superclasses

persistent-data.

Direct methods
Class: persistent-data

PERSISTENT-DATA classes do not have PERSISTENT-CLASS as metaclass because we don’t want to specialize SLOT-VALUE-USING-CLASS & friends for persistent-data instances. Their contents are accessed by special functions like P-CAR instead.

Package

rucksack.

Source

objects.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: object-id
Initargs

:object-id

Readers

object-id.

Writers

This slot is read-only.

Slot: transaction-id
Readers

transaction-id.

Writers

This slot is read-only.

Slot: rucksack
Initform

(rucksack:current-rucksack)

Initargs

:rucksack

Readers

rucksack.

Writers

This slot is read-only.

Slot: contents
Initargs

:contents

Readers

contents.

Writers

(setf contents).

Class: persistent-object

Classes of metaclass PERSISTENT-CLASS automatically inherit from this class.

Package

rucksack.

Source

objects.lisp.

Direct subclasses
Direct methods
Direct Default Initargs
InitargValue
:rucksack*rucksack*
Direct slots
Slot: object-id
Initargs

:object-id

Readers

object-id.

Writers

This slot is read-only.

Slot: transaction-id
Readers

transaction-id.

Writers

This slot is read-only.

Slot: rucksack
Initargs

:rucksack

Readers

rucksack.

Writers

This slot is read-only.

Class: queue
Package

queue.

Source

queue.lisp.

Direct methods
Direct slots
Slot: end
Slot: contents
Initform

(quote nil)

Slot: size
Initform

0

Readers

queue-size.

Writers

This slot is read-only.

Class: rucksack
Package

rucksack.

Source

rucksack.lisp.

Direct subclasses

standard-rucksack.

Direct methods

print-object.

Class: simple-free-list-heap

All blocks in a simple free list heap have the same size.

Package

rucksack.

Source

heap.lisp.

Direct superclasses

free-list-heap.

Direct subclasses

object-table.

Direct methods

block-size.

Direct Default Initargs
InitargValue
:nr-free-lists1
:min-block-size16
Class: standard-cache
Package

rucksack.

Source

cache.lisp.

Direct superclasses

cache.

Direct subclasses

lazy-cache.

Direct methods
Direct slots
Slot: heap
Initargs

:heap

Readers

heap.

Writers

This slot is read-only.

Slot: schema-table
Initargs

:schema-table

Readers

schema-table.

Writers

This slot is read-only.

Slot: rucksack

Back pointer to the rucksack.

Initargs

:rucksack

Readers

rucksack.

Writers

This slot is read-only.

Slot: objects

A hash-table (from id to object)
containing the youngest committed version of all objects that are currently kept in memory but are not dirty. (’The youngest version’ means the version belonging to the youngest committed transaction.)

Initargs

:objects

Readers

objects.

Writers

This slot is read-only.

Slot: queue

A queue of the ids of all non-dirty objects
that are currently in the cache memory. Whenever an object is retrieved (i.e. read), it’s added to the queue. If an object-id is in this queue, it is not necessarily in the OBJECTS hash-table.

Package

queue.

Initform

(make-instance (quote queue:queue))

Readers

queue.

Writers

This slot is read-only.

Slot: last-timestamp
Initform

(get-universal-time)

Readers

last-timestamp.

Writers

(setf last-timestamp).

Slot: transaction-id-helper
Initform

-1

Readers

transaction-id-helper.

Writers

(setf transaction-id-helper).

Slot: transactions

A mapping from transaction ids to
transactions. Contains only open transactions, i.e. transactions that haven’t been rolled back or committed.

Initform

(make-hash-table)

Readers

transactions.

Writers

This slot is read-only.

Slot: size

The maximum number of non-dirty objects that will be kept in the cache memory.

Initargs

:size

Readers

cache-size.

Writers

(setf cache-size).

Slot: shrink-ratio

A number between 0 and 1. When the
cache is full, i.e. when there are at least SIZE (non-dirty) objects in the queue, it will be shrunk by removing (1 - SHRINK-RATIO) * SIZE objects.

Initform

0.7

Initargs

:shrink-ratio

Readers

cache-shrink-ratio.

Writers

(setf cache-shrink-ratio).

Class: standard-rucksack
Package

rucksack.

Source

rucksack.lisp.

Direct superclasses

rucksack.

Direct subclasses

serial-transaction-rucksack.

Direct methods
Direct slots
Slot: cache
Readers

rucksack-cache.

Writers

This slot is read-only.

Slot: directory
Package

common-lisp.

Initargs

:directory

Readers

rucksack-directory.

Writers

This slot is read-only.

Slot: roots

A list with the object ids of all root
objects, i.e. the objects from which the garbage collector can reach all live objects.

Initform

(quote nil)

Slot: roots-changed-p
Readers

roots-changed-p.

Writers

(setf roots-changed-p).

Slot: highest-transaction-id

The highest transaction ID
in the entire rucksack. This is saved together with the roots.

Type

integer

Initform

0

Readers

highest-transaction-id.

Writers

(setf highest-transaction-id).

Slot: class-index-table

The object id of a btree mapping class names to
class indexes. Each class index contains the ids of all instances from a class; it maps object ids to objects.

Slot: slot-index-tables

The object id of a btree mapping class names to
slot index tables, where each slot index table is a btree mapping slot names to slot indexes. Each slot index maps slot values to objects.

Class: standard-transaction
Package

rucksack.

Source

transactions.lisp.

Direct superclasses

transaction.

Direct methods
Direct slots
Slot: id
Initargs

:id

Readers

transaction-id.

Writers

This slot is read-only.

Slot: dirty-objects

A hash-table (from id to object)
containing all objects of which the slot changes have not been written to disk yet.

Initform

(make-hash-table)

Initargs

:dirty-objects

Readers

dirty-objects.

Writers

This slot is read-only.

Slot: dirty-queue

A queue with the ids of all objects
that have been created or modified since the last commit. The queue is in least-recently-dirtied-first order. During a commit, the objects are written to disk in the same order (this is necessary to guarantee that the garbage collector never sees an id of an object that doesn’t exist on disk yet.

Initform

(make-instance (quote queue:queue))

Initargs

:dirty-queue

Readers

dirty-queue.

Writers

This slot is read-only.

Class: transaction
Package

rucksack.

Source

transactions.lisp.

Direct subclasses

standard-transaction.

Direct methods

print-object.


4.2 Internals


4.2.1 Constants

Constant: +array+
Package

rucksack.

Source

serialize.lisp.

Constant: +base-char+
Package

rucksack.

Source

serialize.lisp.

Constant: +character+
Package

rucksack.

Source

serialize.lisp.

Constant: +character-16+
Package

rucksack.

Source

serialize.lisp.

Constant: +character-24+
Package

rucksack.

Source

serialize.lisp.

Constant: +character-32+
Package

rucksack.

Source

serialize.lisp.

Constant: +character-8+
Package

rucksack.

Source

serialize.lisp.

Constant: +complex+
Package

rucksack.

Source

serialize.lisp.

Constant: +cons+
Package

rucksack.

Source

serialize.lisp.

Constant: +dead-object+
Package

rucksack.

Source

serialize.lisp.

Constant: +dotted-list+
Package

rucksack.

Source

serialize.lisp.

Constant: +double-float+
Package

rucksack.

Source

serialize.lisp.

Constant: +extended-char+
Package

rucksack.

Source

serialize.lisp.

Constant: +extension-0+
Package

rucksack.

Source

serialize.lisp.

Constant: +float+
Package

rucksack.

Source

serialize.lisp.

Constant: +free-block+
Package

rucksack.

Source

serialize.lisp.

Constant: +hash-table+
Package

rucksack.

Source

serialize.lisp.

Constant: +ignore+

This marker is automatically skipped when read. Handy if you need fixed width fields.

Package

rucksack.

Source

serialize.lisp.

Constant: +illegal-marker+

This should never be read as a marker.

Package

rucksack.

Source

serialize.lisp.

Constant: +keyword+
Package

rucksack.

Source

serialize.lisp.

Constant: +live-object+
Package

rucksack.

Source

serialize.lisp.

Constant: +long-float+
Package

rucksack.

Source

serialize.lisp.

Constant: +minus-one+
Package

rucksack.

Source

serialize.lisp.

Constant: +negative-byte-16+
Package

rucksack.

Source

serialize.lisp.

Constant: +negative-byte-24+
Package

rucksack.

Source

serialize.lisp.

Constant: +negative-byte-32+
Package

rucksack.

Source

serialize.lisp.

Constant: +negative-byte-48+
Package

rucksack.

Source

serialize.lisp.

Constant: +negative-byte-64+
Package

rucksack.

Source

serialize.lisp.

Constant: +negative-byte-8+
Package

rucksack.

Source

serialize.lisp.

Constant: +negative-integer+
Package

rucksack.

Source

serialize.lisp.

Constant: +nil+
Package

rucksack.

Source

serialize.lisp.

Constant: +nr-object-info-octets+
Package

rucksack.

Source

object-table.lisp.

Constant: +nr-object-position-octets+
Package

rucksack.

Source

object-table.lisp.

Constant: +object+
Package

rucksack.

Source

serialize.lisp.

Constant: +one+
Package

rucksack.

Source

serialize.lisp.

Constant: +p-object+

The serialization marker for cached objects.

Package

rucksack.

Source

objects.lisp.

Constant: +package+
Package

rucksack.

Source

serialize.lisp.

Constant: +pathname+
Package

rucksack.

Source

serialize.lisp.

Constant: +pointer-size+

The number of octets for a heap pointer. A heap pointer is a number that must be able to span the entire heap. It is used for block sizes, pointers to other blocks, object ids and object heap positions.

Package

rucksack.

Source

heap.lisp.

Constant: +positive-byte-16+
Package

rucksack.

Source

serialize.lisp.

Constant: +positive-byte-24+
Package

rucksack.

Source

serialize.lisp.

Constant: +positive-byte-32+
Package

rucksack.

Source

serialize.lisp.

Constant: +positive-byte-48+
Package

rucksack.

Source

serialize.lisp.

Constant: +positive-byte-64+
Package

rucksack.

Source

serialize.lisp.

Constant: +positive-byte-8+
Package

rucksack.

Source

serialize.lisp.

Constant: +positive-integer+
Package

rucksack.

Source

serialize.lisp.

Constant: +proper-list+
Package

rucksack.

Source

serialize.lisp.

Constant: +rational+
Package

rucksack.

Source

serialize.lisp.

Constant: +reserved-object+

Used for entries in the object table that belong to objects that haven’t been committed to disk yet.

Package

rucksack.

Source

serialize.lisp.

Constant: +shared-object-definition+
Package

rucksack.

Source

serialize.lisp.

Constant: +shared-object-reference+
Package

rucksack.

Source

serialize.lisp.

Constant: +short-float+
Package

rucksack.

Source

serialize.lisp.

Constant: +simple-string+
Package

rucksack.

Source

serialize.lisp.

Constant: +simple-string-16+
Package

rucksack.

Source

serialize.lisp.

Constant: +simple-string-24+
Package

rucksack.

Source

serialize.lisp.

Constant: +simple-string-32+
Package

rucksack.

Source

serialize.lisp.

Constant: +simple-string-8+
Package

rucksack.

Source

serialize.lisp.

Constant: +single-float+
Package

rucksack.

Source

serialize.lisp.

Constant: +string+
Package

rucksack.

Source

serialize.lisp.

Constant: +string-16+
Package

rucksack.

Source

serialize.lisp.

Constant: +string-24+
Package

rucksack.

Source

serialize.lisp.

Constant: +string-32+
Package

rucksack.

Source

serialize.lisp.

Constant: +string-8+
Package

rucksack.

Source

serialize.lisp.

Constant: +struct+
Package

rucksack.

Source

serialize.lisp.

Constant: +struct-definition+
Package

rucksack.

Source

serialize.lisp.

Constant: +structure-object+
Package

rucksack.

Source

serialize.lisp.

Constant: +symbol+
Package

rucksack.

Source

serialize.lisp.

Constant: +symbol-reference+
Package

rucksack.

Source

serialize.lisp.

Constant: +t+
Package

rucksack.

Source

serialize.lisp.

Constant: +two+
Package

rucksack.

Source

serialize.lisp.

Constant: +unbound-slot+
Package

rucksack.

Source

serialize.lisp.

Constant: +uninterned-symbol+
Package

rucksack.

Source

serialize.lisp.

Constant: +zero+
Package

rucksack.

Source

serialize.lisp.


4.2.2 Special variables

Special Variable: *cache*
Package

rucksack.

Source

cache.lisp.

Special Variable: *collect-garbage-on-commit*

A flag to indicate whether or not transaction-commit collects garbage

Package

rucksack.

Source

garbage-collector.lisp.

Special Variable: *default-buffer-size*

The number of octets that are allocated initially for a buffer.

Package

rucksack.

Source

heap.lisp.

Special Variable: *dont-dereference-proxies*
Package

rucksack.

Source

objects.lisp.

Special Variable: *index-specs*
Package

rucksack.

Source

index.lisp.

Special Variable: *initial-heap-size*

The default initial heap size is 10 MB.

Package

rucksack.

Source

garbage-collector.lisp.

Special Variable: *initializing-instance*
Package

rucksack.

Source

objects.lisp.

Special Variable: *rucksack-opening-lock*
Package

rucksack.

Source

rucksack.lisp.


4.2.3 Macros

Macro: with-allocation-counter ((heap) &body body)
Package

rucksack.

Source

heap.lisp.

Macro: with-lock ((lock) &body body)
Package

rucksack.

Source

rucksack.lisp.

Macro: without-rucksack-gcing (&body body)
Package

rucksack.

Source

transactions.lisp.


4.2.4 Ordinary functions

Function: add-and-fill-slot-index (rucksack class slot index-spec unique-p)
Package

rucksack.

Source

rucksack.lisp.

Function: add-rucksack-root-id (object-id rucksack)
Package

rucksack.

Source

rucksack.lisp.

Function: analyze-list (x)

Returns two values. The first value is one of :PROPER-LIST, :DOTTED-LIST or :CIRCULAR-LIST. The second value is the length of the list. For dotted lists, the final item is included in the length; for circular lists, the length is NIL.

Package

rucksack.

Source

serialize.lisp.

Function: biggest-key (node)

Returns the biggest key in this node or any of its subnodes.

Package

rucksack.

Source

p-btrees.lisp.

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

rucksack.

Source

p-btrees.lisp.

Target Slot

key.

Function: binding-p (object)
Package

rucksack.

Source

p-btrees.lisp.

Reader: binding-value (instance)
Writer: (setf binding-value) (instance)
Package

rucksack.

Source

p-btrees.lisp.

Target Slot

value.

Function: block-to-object-id (block object-table)
Package

rucksack.

Source

object-table.lisp.

Function: btree-as-cons (btree)
Package

rucksack.

Source

p-btrees.lisp.

Function: check-bnode-keys (tree node)

Check a btree node (and its descendants) for consistency. This is only used for debugging.

Package

rucksack.

Source

p-btrees.lisp.

Function: check-btree (btree)
Package

rucksack.

Source

p-btrees.lisp.

Function: check-node (btree node)
Package

rucksack.

Source

p-btrees.lisp.

Function: check-p-vector (persistent-array function-name)
Package

rucksack.

Source

objects.lisp.

Function: close-object-table (object-table)
Package

rucksack.

Source

object-table.lisp.

Function: close-schema-table (table &key commit)
Package

rucksack.

Source

schema-table.lisp.

Function: close-serializer (serializer &key abort)
Package

rucksack.

Source

serialize.lisp.

Function: commit-filename (cache)
Package

rucksack.

Source

cache.lisp.

Function: compare-slots (old-slots slots)

Returns three values: a list of added slots, a list of discarded slots and a list of changed (according to SLOT-DEFINITION-EQUAL) slots.

Package

rucksack.

Source

mop.lisp.

Function: copy-binding (instance)
Package

rucksack.

Source

p-btrees.lisp.

Function: copy-slot-definition (slot-def)
Package

rucksack.

Source

mop.lisp.

Function: create-commit-file (transaction cache)

Write object ids of all dirty objects to the commit file, so recovery can do its job if this transaction never completes.

Package

rucksack.

Source

transactions.lisp.

Function: delete-commit-file (transaction cache)
Package

rucksack.

Source

transactions.lisp.

Function: delete-object-id (object-table object-id)

Returns object-id’s cell to the free-list.

Package

rucksack.

Source

object-table.lisp.

Function: deserialize (serializer &optional eof-error-p eof-value)

Reads the next object from the serializer stream. Signals an end-of-file error or returns EOF-VALUE when the end of the stream is reached.

Package

rucksack.

Source

serialize.lisp.

Function: deserialize-byte-16 (stream)
Package

rucksack.

Source

serialize.lisp.

Function: deserialize-byte-24 (stream)
Package

rucksack.

Source

serialize.lisp.

Function: deserialize-byte-32 (stream)
Package

rucksack.

Source

serialize.lisp.

Function: deserialize-byte-48 (stream)
Package

rucksack.

Source

serialize.lisp.

Function: deserialize-byte-64 (stream)
Package

rucksack.

Source

serialize.lisp.

Function: deserialize-dotted-list (stream)

Serializes a dotted list by first serializing its length and then all the elements of the list.

Package

rucksack.

Source

serialize.lisp.

Function: deserialize-list (stream)
Package

rucksack.

Source

serialize.lisp.

Function: deserialize-string (simple-p character-code-reader stream)
Package

rucksack.

Source

serialize.lisp.

Function: display-node (node)
Package

rucksack.

Source

p-btrees.lisp.

Function: distribute-elements (btree left-node right-node parent)

One of LEFT-NODE and RIGHT-NODE doesn’t have enough elements, but the union of both has enough elements for two nodes, so we redistribute the elements between the two nodes.

Package

rucksack.

Source

p-btrees.lisp.

Function: enlarge-node (btree node parent-stack)
Package

rucksack.

Source

p-btrees.lisp.

Function: find-committed-object-version (object-id current-transaction-id heap)

Returns the buffer, id, nr-slots and schema-id of the object containing the compatible version for the given transaction id. The buffer points to the first octet after the standard object fields. As a fifth value, it returns a boolean that’s true when the object version is the most recent committed object version (i.e. in the head of the object version list).

Package

rucksack.

Source

objects.lisp.

Function: find-key-in-node (btree node key)

Tries to find a binding with the given key in a bnode. If it succeeds, it returns the binding (and, as a second value, the position of that binding). Otherwise it returns NIL.

Package

rucksack.

Source

p-btrees.lisp.

Function: find-object-version (object-id current-transaction cache)

Returns the object version for OBJECT-ID that’s compatible with CURRENT-TRANSACTION, or NIL if there’s no such version in the cache memory.

Package

rucksack.

Source

cache.lisp.

Function: find-old-index-spec (slot-name old-slots)
Package

rucksack.

Source

rucksack.lisp.

Function: find-subnode (btree node key)

Returns the subnode that contains more information for the given key.

Package

rucksack.

Source

p-btrees.lisp.

Function: find-value-in-node (btree node value &key test)

Tries to find a binding with the given value in a bnode. If it succeeds, it returns the binding (and, as a second value, the position of that binding). Otherwise it returns NIL.

Package

rucksack.

Source

p-btrees.lisp.

Function: force-serializer-output (serializer)
Package

rucksack.

Source

serialize.lisp.

Function: free-list-pointer (size-class)

Returns a pointer to the cell containing the free list start.

Package

rucksack.

Source

heap.lisp.

Function: import-rucksack (pathname directory-designator &rest args &key if-exists &allow-other-keys)

Creates a new rucksack in the directory specified by DIRECTORY-DESIGNATOR, opens the new rucksack and imports all objects that were exported to the file specified by PATHNAME.

Package

rucksack.

Source

import-export.lisp.

Function: index-spec-equal (index-spec-1 index-spec-2)

Returns T iff two index specs are equal.

Package

rucksack.

Source

index.lisp.

Function: insert-new-binding (node position key value)
Package

rucksack.

Source

p-btrees.lisp.

Function: join-nodes (btree left-node right-node parent-stack)

Create one node which contains the elements of both LEFT-NODE and RIGHT-NODE.

Package

rucksack.

Source

p-btrees.lisp.

Function: key-position (btree node key)

Tries to find a binding with the given key in a bnode. If it succeeds, it returns the position of that binding. Otherwise, it returns NIL.

Package

rucksack.

Source

p-btrees.lisp.

Function: leaf-delete-key (btree leaf parent-stack key if-does-not-exist)
Package

rucksack.

Source

p-btrees.lisp.

Function: leaf-insert (btree leaf parent-stack key value if-exists)
Package

rucksack.

Source

p-btrees.lisp.

Function: load-commit-file (cache)

Returns two values: a transaction id and a list of object ids (of objects that may be partially committed).

Package

rucksack.

Source

transactions.lisp.

Function: load-object-fields (buffer object-id)

Returns id, nr-slots, schema-id, transaction-id and prev-version (as 5 values).

Package

rucksack.

Source

objects.lisp.

Function: load-objects (pathname)

Returns a list of objects from a file created by SAVE-OBJECTS.

Package

rucksack.

Source

serialize.lisp.

Function: load-roots (rucksack)
Package

rucksack.

Source

rucksack.lisp.

Function: make-binding (&key key value)
Package

rucksack.

Source

p-btrees.lisp.

Function: make-leaf-value (btree value)
Package

rucksack.

Source

p-btrees.lisp.

Function: make-lock (&key name)
Package

rucksack.

Source

rucksack.lisp.

Function: make-persistent-data (class contents &optional rucksack)
Package

rucksack.

Source

objects.lisp.

Function: make-root (btree left-key left-subnode right-key right-subnode)
Package

rucksack.

Source

p-btrees.lisp.

Function: max-character-code (string)

Returns the highest character code in string.

Package

rucksack.

Source

serialize.lisp.

Function: maybe-add-persistent-object-class (class direct-superclasses)
Package

rucksack.

Source

mop.lisp.

Function: maybe-update-slot-info (class)
Package

rucksack.

Source

mop.lisp.

Function: new-object-id (object-table)

Returns an OBJECT-ID that is not in use.

Package

rucksack.

Source

object-table.lisp.

Function: node-as-cons (node &optional unique-keys)
Package

rucksack.

Source

p-btrees.lisp.

Function: node-binding (node i)
Package

rucksack.

Source

p-btrees.lisp.

Function: (setf node-binding) (node i)
Package

rucksack.

Source

p-btrees.lisp.

Function: node-binding-key (node i)
Package

rucksack.

Source

p-btrees.lisp.

Function: (setf node-binding-key) (node i)
Package

rucksack.

Source

p-btrees.lisp.

Function: node-binding-value (node i)
Package

rucksack.

Source

p-btrees.lisp.

Function: (setf node-binding-value) (node i)
Package

rucksack.

Source

p-btrees.lisp.

Function: node-full-enough-p (btree node)
Package

rucksack.

Source

p-btrees.lisp.

Function: node-full-p (btree node)
Package

rucksack.

Source

p-btrees.lisp.

Function: node-has-min-size-p (btree node)
Package

rucksack.

Source

p-btrees.lisp.

Function: node-position (node parent btree)

Returns the position of NODE (as a binding value) in a parent node.

Package

rucksack.

Source

p-btrees.lisp.

Function: not-found (btree key errorp default-value)
Package

rucksack.

Source

p-btrees.lisp.

Function: not-implemented (operator)
Package

rucksack.

Source

errors.lisp.

Function: nr-octets (n)
Package

rucksack.

Source

serialize.lisp.

Function: object-alive-p (object-table object-id)
Package

rucksack.

Source

garbage-collector.lisp.

Function: (setf object-alive-p) (object-table object-id)
Package

rucksack.

Source

garbage-collector.lisp.

Function: object-heap-position (object-table id)
Package

rucksack.

Source

object-table.lisp.

Function: (setf object-heap-position) (object-table id)
Package

rucksack.

Source

object-table.lisp.

Function: object-id-to-block (id object-table)
Package

rucksack.

Source

object-table.lisp.

Function: object-info (object-table id)

Returns either :free-block, :dead-object, :live-object or :reserved.

Package

rucksack.

Source

object-table.lisp.

Function: (setf object-info) (object-table id)
Package

rucksack.

Source

object-table.lisp.

Function: object-table-size (object-table)

Returns the potential number of objects in an object-table. The first potential object-id is number 0.

Package

rucksack.

Source

object-table.lisp.

Function: (setf object-version-list) (young-block heap)

Let the (previous pointer of the) object in YOUNG-BLOCK point to OLD-BLOCK.

Package

rucksack.

Source

transactions.lisp.

Function: open-object-table (pathname &key if-exists if-does-not-exist)
Package

rucksack.

Source

object-table.lisp.

Function: open-schema-table (pathname &key if-exists if-does-not-exist)
Package

rucksack.

Source

schema-table.lisp.

Function: open-serializer (stream)

Creates and returns a serializer for a stream. The stream must have element-type (UNSIGNED-BYTE 8)).

Package

rucksack.

Source

serialize.lisp.

Function: pointer-value (pointer heap)
Package

rucksack.

Source

heap.lisp.

Function: (setf pointer-value) (pointer heap)
Package

rucksack.

Source

heap.lisp.

Function: position-of-binding-with-greater-key (btree node key)

Returns the position of the first binding in NODE with a key greater than KEY. Returns nil if there is no such binding.

Package

rucksack.

Source

p-btrees.lisp.

Function: process-lock (lock)
Package

rucksack.

Source

rucksack.lisp.

Function: process-unlock (lock)
Package

rucksack.

Source

rucksack.lisp.

Function: read-block-start (heap position)
Package

rucksack.

Source

garbage-collector.lisp.

Function: read-next-marker (serializer)

Returns the next marker (or NIL if we’re at the end of the serializer stream).

Package

rucksack.

Source

serialize.lisp.

Function: read-unsigned-bytes (buffer stream &optional nr-octets)
Package

rucksack.

Source

heap.lisp.

Function: remove-key (btree node key)
Package

rucksack.

Source

p-btrees.lisp.

Function: replace-bindings (vector-1 vector-2 &key start1 end1 start2 end2)

Like P-REPLACE, but for vectors with bindings instead of plain vectors (so all indexes must be multiplied by 2).

Package

rucksack.

Source

p-btrees.lisp.

Function: replace-slot-index (rucksack class slot index-spec unique-p)
Package

rucksack.

Source

rucksack.lisp.

Function: rucksack-delete-objects (rucksack objects)
Package

rucksack.

Source

rucksack.lisp.

Function: rucksack-files-in-directory (directory-pathname)

Returns a list with the pathnames of all Rucksack files in the specified directory.

Package

rucksack.

Source

rucksack.lisp.

Function: rucksack-indexed-slots-for-class (rucksack class)

Returns a list with the names of the indexed direct slots of CLASS.

Package

rucksack.

Source

rucksack.lisp.

Function: rucksack-list-class-indexes (rucksack)
Package

rucksack.

Source

rucksack.lisp.

Function: rucksack-list-slot-indexes (rucksack)
Package

rucksack.

Source

rucksack.lisp.

Function: sans (plist &rest keys)

Returns PLIST with keyword arguments from KEYS removed.

Package

rucksack.

Source

cache.lisp.

Function: save-objects (objects pathname)

Saves a list with objects to a file, creating the file if necessary. If the file exists, it will be superseded.

Package

rucksack.

Source

serialize.lisp.

Function: save-roots (rucksack)
Package

rucksack.

Source

rucksack.lisp.

Function: save-roots-if-necessary (rucksack)
Package

rucksack.

Source

rucksack.lisp.

Function: scan-byte-16 (stream &optional gc)
Package

rucksack.

Source

serialize.lisp.

Function: scan-byte-24 (stream &optional gc)
Package

rucksack.

Source

serialize.lisp.

Function: scan-byte-32 (stream &optional gc)
Package

rucksack.

Source

serialize.lisp.

Function: scan-byte-48 (stream &optional gc)
Package

rucksack.

Source

serialize.lisp.

Function: scan-byte-64 (stream &optional gc)
Package

rucksack.

Source

serialize.lisp.

Function: scan-list (stream gc)
Package

rucksack.

Source

serialize.lisp.

Function: scan-string (simple-p character-code-scanner stream gc)
Package

rucksack.

Source

serialize.lisp.

Function: serialize-byte-16 (integer stream)
Package

rucksack.

Source

serialize.lisp.

Function: serialize-byte-24 (integer stream)
Package

rucksack.

Source

serialize.lisp.

Function: serialize-byte-32 (integer stream)
Package

rucksack.

Source

serialize.lisp.

Function: serialize-byte-48 (integer stream)
Package

rucksack.

Source

serialize.lisp.

Function: serialize-byte-64 (integer stream)
Package

rucksack.

Source

serialize.lisp.

Function: serialize-dotted-list (list stream &optional length)

Serializes a dotted list by first serializing its length and then all the elements of the list.

Package

rucksack.

Source

serialize.lisp.

Function: serialize-float (number stream)
Package

rucksack.

Source

serialize.lisp.

Function: serialize-integer (positive-p unsigned nr-octets stream)
Package

rucksack.

Source

serialize.lisp.

Function: serialize-list (list stream &optional length)

Serializes a proper list by first serializing its length and then all the elements of the list.

Package

rucksack.

Source

serialize.lisp.

Function: serialize-marker (marker serializer)
Package

rucksack.

Source

serialize.lisp.

Function: serialize-previous-version-pointer (previous-pointer stream)
Package

rucksack.

Source

objects.lisp.

Function: serialize-standard-object (object serializer)
Package

rucksack.

Source

serialize.lisp.

Function: serialize-structure-object (object serializer)
Package

rucksack.

Source

serialize.lisp.

Function: shorten (node new-length)
Package

rucksack.

Source

p-btrees.lisp.

Function: slot-def-and-name (class slot-name-or-def)

Returns (1) slot definition and (2) slot name.

Package

rucksack.

Source

objects.lisp.

Function: slot-definition-equal (slot-1 slot-2)
Package

rucksack.

Source

mop.lisp.

Function: smallest-key (node)

Returns the smallest key in this node or any of its subnodes.

Package

rucksack.

Source

p-btrees.lisp.

Function: split-bnode (btree node parent-stack key)

The node is (almost) full. Create two new nodes and divide the current node-index over these two new nodes.

Package

rucksack.

Source

p-btrees.lisp.

Function: test-analyze-list ()
Package

rucksack.

Source

serialize.lisp.

Function: test-garbage-collector (rucksack)
Package

rucksack.

Source

rucksack.lisp.

Function: trim-whitespace (string)
Package

rucksack.

Source

index.lisp.

Function: update-indexes (class)
Package

rucksack.

Source

mop.lisp.

Function: update-node-binding (node i key value)
Package

rucksack.

Source

p-btrees.lisp.

Function: update-parents-for-deleted-key (btree parent-stack old-key new-key)
Package

rucksack.

Source

p-btrees.lisp.

Function: update-slot-info (class)
Package

rucksack.

Source

mop.lisp.

Function: version-list-position (current-transaction-id obj-id version-list heap)

Returns the correct position for a transaction-id in a version-list. To be more precise, it returns:
1. the block of the object version with the oldest transaction that’s younger than the given transaction-id (nil if there is no such version). 2. the block of the first object version in the version list that has a transaction id older than the given transaction-id (nil if there is no such version).
VERSION-LIST is either nil or the heap position of the first object version in the version list.

Package

rucksack.

Source

transactions.lisp.

Function: write-unsigned-bytes (integer buffer stream &optional nr-octets)
Package

rucksack.

Source

heap.lisp.


4.2.5 Generic functions

Generic Function: add-schema (table schema)
Package

rucksack.

Methods
Method: add-schema ((table schema-table) (schema schema))
Source

schema-table.lisp.

Generic Function: add-to-queue (object-id cache)
Package

rucksack.

Methods
Method: add-to-queue (object-id (cache lazy-cache))
Source

cache.lisp.

Method: add-to-queue (object-id (cache standard-cache))
Source

cache.lisp.

Generic Reader: added-slot-names (object)
Generic Writer: (setf added-slot-names) (object)
Package

rucksack.

Methods
Reader Method: added-slot-names ((schema schema))
Writer Method: (setf added-slot-names) ((schema schema))

A list with the names of all
persistent slots that were added by the most recent version (compared to this version).

Source

schema-table.lisp.

Target Slot

added-slot-names.

Generic Function: allocate-block (heap &key size expand &allow-other-keys)

Allocates a block of the requested size and returns
the heap position of that block. If the free list is full and EXPAND is true, the system will try to expand the free list; otherwise it returns nil.
As a second value, ALLOCATE-BLOCK returns the number of octets that were allocated.
Note: both the requested size and the returned heap position include the block’s header.

Package

rucksack.

Source

heap.lisp.

Methods
Method: allocate-block ((heap appending-heap) &key size &allow-other-keys)
Method: allocate-block ((heap free-list-heap) &key size expand)
Method: allocate-block :around ((heap heap) &key &allow-other-keys)
Generic Function: block-alive-p (object-table object-id block)
Package

rucksack.

Methods
Method: block-alive-p ((object-table object-table) object-id block)

Returns true iff the object in the block is alive.

Source

garbage-collector.lisp.

Generic Function: block-header (block heap)
Package

rucksack.

Methods
Method: block-header (block (heap free-list-heap))
Source

heap.lisp.

Generic Function: (setf block-header) (block heap)
Package

rucksack.

Methods
Method: (setf block-header) (block (heap free-list-heap))
Source

heap.lisp.

Generic Function: block-header-size (heap)
Package

rucksack.

Methods
Method: block-header-size ((heap free-list-heap))
Source

heap.lisp.

Generic Function: block-size (block heap)

Returns the size of the block starting at the
specified position. This includes the size of the block header.

Package

rucksack.

Source

heap.lisp.

Methods
Method: block-size (block (heap simple-free-list-heap))
Method: block-size (block (heap free-list-heap))
Generic Function: (setf block-size) (block heap)
Package

rucksack.

Methods
Method: (setf block-size) (block (heap free-list-heap))
Source

heap.lisp.

Generic Reader: bnode-bindings (object)
Generic Writer: (setf bnode-bindings) (object)
Package

rucksack.

Methods
Reader Method: bnode-bindings ((bnode bnode))
Writer Method: (setf bnode-bindings) ((bnode bnode))

A vector of with alternating keys and
values. The keys are sorted by KEY<. No two keys can be the same. For leaf nodes of btrees with non-unique-keys, the value part is actually a list of values. For intermediate nodes, the value is a child node. All keys in the child node will be KEY<= the child node’s key in the parent node.

Source

p-btrees.lisp.

Target Slot

bindings.

Generic Function: bnode-delete-key (btree node parent-stack key if-does-not-exist)
Package

rucksack.

Source

p-btrees.lisp.

Methods
Method: bnode-delete-key ((btree btree) (node bnode) parent-stack key if-does-not-exist)
Generic Function: bnode-insert (btree node parent-stack key value if-exists)
Package

rucksack.

Source

p-btrees.lisp.

Methods
Method: bnode-insert ((btree btree) (node bnode) parent-stack key value if-exists)
Generic Reader: bnode-leaf-p (object)
Package

rucksack.

Methods
Reader Method: bnode-leaf-p ((bnode bnode))

automatically generated reader method

Source

p-btrees.lisp.

Target Slot

leaf-p.

Generic Reader: bnode-nr-bindings (object)
Generic Writer: (setf bnode-nr-bindings) (object)
Package

rucksack.

Methods
Reader Method: bnode-nr-bindings ((bnode bnode))
Writer Method: (setf bnode-nr-bindings) ((bnode bnode))

The number of key/value bindings in the index vector.

Source

p-btrees.lisp.

Target Slot

nr-bindings.

Generic Function: bnode-nr-keys (node)
Package

rucksack.

Methods
Method: bnode-nr-keys ((node bnode))
Source

p-btrees.lisp.

Generic Function: btree-balanced-p (btree)
Package

rucksack.

Methods
Method: btree-balanced-p ((btree btree))
Source

p-btrees.lisp.

Generic Function: btree-depths (btree)
Package

rucksack.

Methods
Method: btree-depths ((btree btree))
Source

p-btrees.lisp.

Generic Reader: btree-key-key (object)
Package

rucksack.

Methods
Reader Method: btree-key-key ((btree btree))

A unary function that is applied to a
btree key before comparing it to another key with a key comparison predicate like BTREE-KEY<.

Source

p-btrees.lisp.

Target Slot

key-key.

Generic Reader: btree-root (object)
Package

rucksack.

Methods
Reader Method: btree-root ((btree btree))

automatically generated reader method

Source

p-btrees.lisp.

Target Slot

root.

Generic Writer: (setf btree-root) (object)
Package

rucksack.

Methods
Writer Method: (setf btree-root) ((btree btree))

automatically generated writer method

Source

p-btrees.lisp.

Target Slot

root.

Generic Reader: btree-value-key (object)
Package

rucksack.

Methods
Reader Method: btree-value-key ((btree btree))

A unary function that is applied to a
btree value before comparing it to another value with the BTREE-VALUE= predicate.

Source

p-btrees.lisp.

Target Slot

value-key.

Generic Function: buffer-count (buffer)
Package

rucksack.

Methods
Method: buffer-count ((buffer buffer))
Source

heap.lisp.

Generic Function: cache-delete-object (object-id cache)

Removes an object-id from the cache and from
the object table, so the object-id can be reused for another object later.

Package

rucksack.

Source

cache.lisp.

Methods
Method: cache-delete-object (object-id (cache standard-cache))
Generic Function: cache-full-p (cache)
Package

rucksack.

Methods
Method: cache-full-p ((cache cache))
Source

cache.lisp.

Generic Function: cache-room (cache)
Package

rucksack.

Methods
Method: cache-room ((cache cache))
Source

cache.lisp.

Generic Reader: cache-shrink-ratio (object)
Generic Writer: (setf cache-shrink-ratio) (object)
Package

rucksack.

Methods
Reader Method: cache-shrink-ratio ((standard-cache standard-cache))
Writer Method: (setf cache-shrink-ratio) ((standard-cache standard-cache))

A number between 0 and 1. When the
cache is full, i.e. when there are at least SIZE (non-dirty) objects in the queue, it will be shrunk by removing (1 - SHRINK-RATIO) * SIZE objects.

Source

cache.lisp.

Target Slot

shrink-ratio.

Generic Function: carve-up-block-for-free-list (size-class block size heap)
Package

rucksack.

Methods
Method: carve-up-block-for-free-list (size-class block size (heap free-list-heap))

Carves up a block of the given size to build a free list for the specified size-class. Returns the first block of the created free list.

Source

heap.lisp.

Generic Reader: cell-buffer (object)
Package

rucksack.

Methods
Reader Method: cell-buffer ((heap heap))

automatically generated reader method

Source

heap.lisp.

Target Slot

cell-buffer.

Generic Reader: class-changed-p (object)
Generic Writer: (setf class-changed-p) (object)
Package

rucksack.

Methods
Reader Method: class-changed-p ((persistent-class persistent-class))
Writer Method: (setf class-changed-p) ((persistent-class persistent-class))

True iff the class definition was changed
but the schemas haven’t been updated yet. This flag is necessary because some MOP implementations don’t call FINALIZE-INHERITANCE when a class was redefined and a new instance of the redefined class is created.

Source

mop.lisp.

Target Slot

changed-p.

Generic Function: class-index (class)
Package

rucksack.

Methods
Method: class-index ((class persistent-class))
Source

mop.lisp.

Generic Function: class-index-table (rucksack)
Package

rucksack.

Methods
Method: class-index-table ((rucksack standard-rucksack))
Source

rucksack.lisp.

Generic Reader: class-persistent-slots (object)
Package

rucksack.

Methods
Reader Method: class-persistent-slots ((persistent-class persistent-class))

automatically generated reader method

Source

mop.lisp.

Target Slot

persistent-slots.

Generic Writer: (setf class-persistent-slots) (object)
Package

rucksack.

Methods
Writer Method: (setf class-persistent-slots) ((persistent-class persistent-class))

automatically generated writer method

Source

mop.lisp.

Target Slot

persistent-slots.

Generic Function: collect-garbage (heap)
Package

rucksack.

Methods
Method: collect-garbage ((heap mark-and-sweep-heap))
Source

garbage-collector.lisp.

Generic Function: collect-some-garbage (heap amount)
Package

rucksack.

Methods
Method: collect-some-garbage ((heap mark-and-sweep-heap) amount)
Source

garbage-collector.lisp.

Generic Function: compute-persistent-slot-names (class object)
Package

rucksack.

Methods
Method: compute-persistent-slot-names ((class standard-class) (object persistent-data))
Source

objects.lisp.

Method: compute-persistent-slot-names ((class persistent-class) object)
Source

schema-table.lisp.

Generic Reader: contents (object)
Package

rucksack.

Methods
Reader Method: contents ((persistent-data persistent-data))

automatically generated reader method

Source

objects.lisp.

Target Slot

contents.

Reader Method: contents ((buffer buffer))

automatically generated reader method

Source

heap.lisp.

Target Slot

contents.

Generic Writer: (setf contents) (object)
Package

rucksack.

Methods
Writer Method: (setf contents) ((persistent-data persistent-data))

automatically generated writer method

Source

objects.lisp.

Target Slot

contents.

Writer Method: (setf contents) ((buffer buffer))

automatically generated writer method

Source

heap.lisp.

Target Slot

contents.

Generic Function: create-schema (table class version &optional persistent-slots)
Package

rucksack.

Methods
Method: create-schema ((table schema-table) class version &optional persistent-slots)
Source

schema-table.lisp.

Generic Function: deallocate-block (block heap)
Package

rucksack.

Methods
Method: deallocate-block (block (heap free-list-heap))
Source

heap.lisp.

Generic Function: delete-rucksack-root (object rucksack)

Delete an object from the root set of a rucksack.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: delete-rucksack-root (object (rucksack standard-rucksack))
Generic Function: deserialize-byte (serializer &optional eof-error-p)

Reads an unsigned-byte from a serializer. EOF-ERROR-P defaults to T.

Package

rucksack.

Source

serialize.lisp.

Methods
Method: deserialize-byte ((stream serialization-buffer) &optional eof-error-p)
Source

heap.lisp.

Method: deserialize-byte ((serializer serializer) &optional eof-error-p)
Method: deserialize-byte ((stream stream) &optional eof-error-p)
Generic Function: deserialize-contents (marker stream)
Package

rucksack.

Methods
Method: deserialize-contents ((marker (eql 192)) stream)
Source

objects.lisp.

Method: deserialize-contents ((marker (eql 179)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 178)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 177)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 176)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 128)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 144)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 160)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 119)) serializer)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 112)) serializer)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 80)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 82)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 81)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 68)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 67)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 66)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 65)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 64)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 73)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 72)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 71)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 70)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 69)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 52)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 51)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 50)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 49)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 48)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 96)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 100)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 97)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 38)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 33)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 32)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 29)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 28)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 27)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 26)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 25)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 24)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 23)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 22)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 21)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 20)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 19)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 18)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 17)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 16)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 12)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 11)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 10)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 9)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 3)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 2)) stream)
Source

serialize.lisp.

Method: deserialize-contents ((marker (eql 0)) stream)
Source

serialize.lisp.

Generic Reader: dirty-objects (object)
Package

rucksack.

Methods
Reader Method: dirty-objects ((standard-transaction standard-transaction))

A hash-table (from id to object)
containing all objects of which the slot changes have not been written to disk yet.

Source

transactions.lisp.

Target Slot

dirty-objects.

Generic Reader: dirty-p (object)
Generic Writer: (setf dirty-p) (object)
Package

rucksack.

Methods
Reader Method: dirty-p ((schema-table schema-table))
Writer Method: (setf dirty-p) ((schema-table schema-table))

When dirty, the schema table will be saved at the next commit.

Source

schema-table.lisp.

Target Slot

dirty-p.

Generic Reader: dirty-queue (object)
Package

rucksack.

Methods
Reader Method: dirty-queue ((standard-transaction standard-transaction))

A queue with the ids of all objects
that have been created or modified since the last commit. The queue is in least-recently-dirtied-first order. During a commit, the objects are written to disk in the same order (this is necessary to guarantee that the garbage collector never sees an id of an object that doesn’t exist on disk yet.

Source

transactions.lisp.

Target Slot

dirty-queue.

Generic Reader: discarded-slot-names (object)
Generic Writer: (setf discarded-slot-names) (object)
Package

rucksack.

Methods
Reader Method: discarded-slot-names ((schema schema))
Writer Method: (setf discarded-slot-names) ((schema schema))

A list with the names of all
persistent slots that were discarded by the most recent version (compared to this version).

Source

schema-table.lisp.

Target Slot

discarded-slot-names.

Generic Function: expand-free-list (size-class heap)
Package

rucksack.

Methods
Method: expand-free-list (size-class (heap free-list-heap))
Source

heap.lisp.

Generic Function: expand-heap (heap block-size)
Package

rucksack.

Methods
Method: expand-heap :after ((heap mark-and-sweep-heap) block-size)
Source

garbage-collector.lisp.

Method: expand-heap ((heap heap) block-size)
Source

heap.lisp.

Generic Reader: expansion-size (object)
Package

rucksack.

Methods
Reader Method: expansion-size ((free-list-heap free-list-heap))

The minimum number of bytes that will be used to expand a free-list.

Source

heap.lisp.

Target Slot

expansion-size.

Generic Function: export-rucksack (rucksack pathname)

Export all objects in a rucksack to a file. The resulting file can be imported by newer versions of Rucksack.

Package

rucksack.

Source

import-export.lisp.

Generic Function: find-block (min-size heap)
Package

rucksack.

Methods
Method: find-block (min-size (heap free-list-heap))
Source

heap.lisp.

Generic Function: find-conflicting-transaction (object-id cache transaction)

Tries to find an open transaction that has modified the object with the given object-id and is older than the given transaction. Returns this conflicting transaction, if there is one. Otherwise it returns nil.

Package

rucksack.

Source

transactions.lisp.

Methods
Method: find-conflicting-transaction (object-id (cache standard-cache) (current-transaction standard-transaction))
Generic Function: find-or-create-schema-for-object (table object)
Package

rucksack.

Methods
Method: find-or-create-schema-for-object ((table schema-table) object)
Source

schema-table.lisp.

Generic Function: find-schema-for-class (table class)
Package

rucksack.

Methods
Method: find-schema-for-class ((table schema-table) class)
Source

schema-table.lisp.

Generic Function: find-schema-for-id (table id &key errorp)
Package

rucksack.

Methods
Method: find-schema-for-id ((table schema-table) id &key errorp)
Source

schema-table.lisp.

Generic Function: finish-all-output (rucksack)
Package

rucksack.

Methods
Method: finish-all-output ((rucksack standard-rucksack))
Source

transactions.lisp.

Generic Function: finish-garbage-collection (heap)
Package

rucksack.

Methods
Method: finish-garbage-collection ((heap mark-and-sweep-heap))
Source

garbage-collector.lisp.

Generic Function: finish-heap-output (heap)
Package

rucksack.

Methods
Method: finish-heap-output ((heap heap))
Source

heap.lisp.

Generic Function: free-list-empty-p (size-class heap)
Package

rucksack.

Methods
Method: free-list-empty-p (size-class (heap free-list-heap))
Source

heap.lisp.

Generic Function: free-list-info (size-class heap)
Package

rucksack.

Methods
Method: free-list-info (size-class (heap free-list-heap))
Source

heap.lisp.

Generic Function: free-list-start (heap &optional size-class)
Package

rucksack.

Methods
Method: free-list-start ((heap free-list-heap) &optional size-class)

Returns the first block on the free list of the specified size class.

Source

heap.lisp.

Generic Function: (setf free-list-start) (heap &optional size-class)
Package

rucksack.

Methods
Method: (setf free-list-start) ((heap free-list-heap) &optional size-class)
Source

heap.lisp.

Generic Function: free-space (heap)
Package

rucksack.

Methods
Method: free-space ((heap heap))
Source

garbage-collector.lisp.

Generic Function: fresh-schema-id (table)
Package

rucksack.

Methods
Method: fresh-schema-id ((table schema-table))
Source

schema-table.lisp.

Generic Reader: gc-doing-work (object)
Generic Writer: (setf gc-doing-work) (object)
Package

rucksack.

Methods
Reader Method: gc-doing-work ((garbage-collector garbage-collector))
Writer Method: (setf gc-doing-work) ((garbage-collector garbage-collector))

A flag to prevent recursive calls to COLLECT-SOME-GARBAGE.

Source

garbage-collector.lisp.

Target Slot

doing-work.

Generic Function: gc-work-for-size (heap size)
Package

rucksack.

Methods
Method: gc-work-for-size ((heap heap) size)
Source

garbage-collector.lisp.

Generic Reader: grow-size (object)
Generic Writer: (setf grow-size) (object)
Package

rucksack.

Methods
Reader Method: grow-size ((mark-and-sweep-heap mark-and-sweep-heap))
Writer Method: (setf grow-size) ((mark-and-sweep-heap mark-and-sweep-heap))

Specifies a minimum amount to grow the heap when it needs to grow. If ’grow size’ is an integer, the expected growth rate is additive and the integer is the number of octets to add; if it is a float, the expected growth rate for the heap is multiplicative and the float is the ratio of the new size to the old size. (The actual size might be rounded up.)

Source

garbage-collector.lisp.

Target Slot

grow-size.

Generic Function: handle-written-object (object-id block heap)
Package

rucksack.

Methods
Method: handle-written-object (object-id block (heap mark-and-sweep-heap))
Source

garbage-collector.lisp.

Generic Function: heap-info (heap)
Package

rucksack.

Methods
Method: heap-info ((heap free-list-heap))
Source

heap.lisp.

Generic Function: heap-size (heap)
Package

rucksack.

Methods
Method: heap-size ((heap heap))
Source

heap.lisp.

Generic Function: heap-start (heap)

Returns the position of the first block in the heap.

Package

rucksack.

Source

heap.lisp.

Methods
Method: heap-start ((heap appending-heap))
Method: heap-start ((heap free-list-heap))
Generic Reader: highest-schema-id (object)
Package

rucksack.

Methods
Reader Method: highest-schema-id ((schema-table schema-table))

automatically generated reader method

Source

schema-table.lisp.

Target Slot

highest-schema-id.

Generic Writer: (setf highest-schema-id) (object)
Package

rucksack.

Methods
Writer Method: (setf highest-schema-id) ((schema-table schema-table))

automatically generated writer method

Source

schema-table.lisp.

Target Slot

highest-schema-id.

Generic Reader: highest-transaction-id (object)
Generic Writer: (setf highest-transaction-id) (object)
Package

rucksack.

Methods
Reader Method: highest-transaction-id ((standard-rucksack standard-rucksack))
Writer Method: (setf highest-transaction-id) ((standard-rucksack standard-rucksack))

The highest transaction ID
in the entire rucksack. This is saved together with the roots.

Source

rucksack.lisp.

Target Slot

highest-transaction-id.

Generic Reader: index-data (object)
Package

rucksack.

Methods
Reader Method: index-data ((index index))

The actual index data structure (e.g. a btree).

Source

index.lisp.

Target Slot

data.

Generic Function: index-data-delete (index key value &key if-does-not-exist)
Package

rucksack.

Methods
Method: index-data-delete ((index btree) key value &key if-does-not-exist)
Source

index.lisp.

Generic Function: index-data-insert (index key value &key if-exists)
Package

rucksack.

Methods
Method: index-data-insert ((index btree) key value &key if-exists)
Source

index.lisp.

Generic Function: index-similar-p (index-1 index-2)
Package

rucksack.

Methods
Method: index-similar-p ((index-1 index) (index-2 index))
Source

index.lisp.

Generic Reader: index-spec (object)
Package

rucksack.

Methods
Reader Method: index-spec ((index index))

automatically generated reader method

Source

index.lisp.

Target Slot

spec.

Generic Reader: index-unique-keys-p (object)
Package

rucksack.

Methods
Reader Method: index-unique-keys-p ((index index))

automatically generated reader method

Source

index.lisp.

Target Slot

unique-keys-p.

Generic Function: initialize-block (block block-size heap)
Package

rucksack.

Source

heap.lisp.

Methods
Method: initialize-block (block block-size (heap mark-and-sweep-heap))
Source

garbage-collector.lisp.

Method: initialize-block (block block-size (object-table object-table))
Source

object-table.lisp.

Method: initialize-block (block block-size (heap free-list-heap))
Generic Reader: last-timestamp (object)
Package

rucksack.

Methods
Reader Method: last-timestamp ((standard-cache standard-cache))

automatically generated reader method

Source

cache.lisp.

Target Slot

last-timestamp.

Generic Writer: (setf last-timestamp) (object)
Package

rucksack.

Methods
Writer Method: (setf last-timestamp) ((standard-cache standard-cache))

automatically generated writer method

Source

cache.lisp.

Target Slot

last-timestamp.

Generic Function: load-block (heap block &key buffer skip-header)
Package

rucksack.

Methods
Method: load-block ((heap mark-and-sweep-heap) block &key buffer skip-header)
Source

garbage-collector.lisp.

Generic Function: load-buffer (buffer stream nr-octets &key file-position eof-error-p)
Package

rucksack.

Methods
Method: load-buffer :after ((buffer serialization-buffer) stream nr-octets &key file-position)
Source

heap.lisp.

Method: load-buffer ((buffer buffer) stream nr-octets &key file-position eof-error-p)
Source

heap.lisp.

Generic Function: load-heap-end (heap)
Package

rucksack.

Methods
Method: load-heap-end ((heap appending-heap))
Source

heap.lisp.

Generic Function: load-object (object-id transaction cache)
Package

rucksack.

Methods
Method: load-object (object-id transaction (cache standard-cache))
Source

objects.lisp.

Generic Function: load-slots (object serializer)
Package

rucksack.

Source

serialize.lisp.

Methods
Method: load-slots :after ((table schema-table) serializer)
Source

schema-table.lisp.

Method: load-slots ((object structure-object) stream)
Method: load-slots ((object standard-object) stream)
Generic Function: make-room-in-cache (cache)
Package

rucksack.

Methods
Method: make-room-in-cache ((cache lazy-cache))
Source

cache.lisp.

Method: make-room-in-cache ((cache standard-cache))
Source

cache.lisp.

Generic Function: map-btree-keys-for-node (btree node function min max include-min include-max order)
Package

rucksack.

Source

p-btrees.lisp.

Methods
Method: map-btree-keys-for-node ((btree btree) (node bnode) function min max include-min include-max order)
Generic Function: map-index-data (index function &rest args &key min max include-min include-max equal order)
Package

rucksack.

Methods
Method: map-index-data ((index btree) function &rest args &key min max include-min include-max equal order)
Source

index.lisp.

Generic Function: map-set-btree (set function)

Calls a unary function for each value in a btree-set.

Package

rucksack.

Source

p-btrees.lisp.

Methods
Method: map-set-btree ((set set-btree) function)
Generic Function: mark-root (heap object-id)
Package

rucksack.

Methods
Method: mark-root ((heap mark-and-sweep-heap) (object-id integer))
Source

garbage-collector.lisp.

Generic Function: mark-some-objects-in-table (heap amount)
Package

rucksack.

Methods
Method: mark-some-objects-in-table ((heap mark-and-sweep-heap) amount)
Source

garbage-collector.lisp.

Generic Function: mark-some-roots (heap amount)
Package

rucksack.

Methods
Method: mark-some-roots ((heap mark-and-sweep-heap) amount)
Source

garbage-collector.lisp.

Generic Reader: max-heap-end (object)
Generic Writer: (setf max-heap-end) (object)
Package

rucksack.

Methods
Reader Method: max-heap-end ((mark-and-sweep-heap mark-and-sweep-heap))
Writer Method: (setf max-heap-end) ((mark-and-sweep-heap mark-and-sweep-heap))

The maximum acceptable value for heap-end during the current garbage collection.

Source

garbage-collector.lisp.

Target Slot

max-heap-end.

Generic Reader: max-heap-size (object)
Generic Writer: (setf max-heap-size) (object)
Package

rucksack.

Methods
Reader Method: max-heap-size ((heap heap))
Writer Method: (setf max-heap-size) ((heap heap))

The maximum size (in octets) for the heap.
If nil, the heap is allowed to expand indefinitely.

Source

heap.lisp.

Target Slot

max-size.

Generic Function: max-work (heap)
Package

rucksack.

Methods
Method: max-work ((heap mark-and-sweep-heap))

Returns the maximum possible amount of work that the garbage collector needs to do for one complete garbage collection.

Source

garbage-collector.lisp.

Generic Function: maybe-dereference-proxy (proxy)
Package

rucksack.

Methods
Method: maybe-dereference-proxy (object)
Source

objects.lisp.

Method: maybe-dereference-proxy ((proxy proxy))
Source

objects.lisp.

Generic Function: maybe-update-schemas (table class)
Package

rucksack.

Methods
Method: maybe-update-schemas ((table schema-table) class)
Source

schema-table.lisp.

Generic Reader: min-block-size (object)
Package

rucksack.

Methods
Reader Method: min-block-size ((free-list-heap free-list-heap))

The size of the smallest blocks. This must be a power of 2.

Source

heap.lisp.

Target Slot

min-block-size.

Generic Function: node-max-depth (node)
Package

rucksack.

Methods
Method: node-max-depth ((node bnode))
Source

p-btrees.lisp.

Generic Function: node-min-depth (node)
Package

rucksack.

Methods
Method: node-min-depth ((node bnode))
Source

p-btrees.lisp.

Generic Function: node-search (btree node key errorp default-value)
Package

rucksack.

Source

p-btrees.lisp.

Methods
Method: node-search ((btree btree) (node bnode) key errorp default-value)
Generic Function: node-search-binding (btree node key)

Tries to find KEY in NODE or one of its subnodes.
Returns three values if the key was found: the binding, the node containing the binding and the position of the binding in that node. Returns nil otherwise.

Package

rucksack.

Source

p-btrees.lisp.

Methods
Method: node-search-binding ((btree btree) (node bnode) key)
Generic Reader: nr-allocated-octets (object)
Generic Writer: (setf nr-allocated-octets) (object)
Package

rucksack.

Methods
Reader Method: nr-allocated-octets ((heap heap))
Writer Method: (setf nr-allocated-octets) ((heap heap))

The number of octets that have been
allocated by ALLOCATE-BLOCK since the last time that RESET-ALLOCATION-COUNTER was called.

Source

heap.lisp.

Target Slot

nr-allocated-octets.

Generic Reader: nr-free-lists (object)
Package

rucksack.

Methods
Reader Method: nr-free-lists ((free-list-heap free-list-heap))

automatically generated reader method

Source

heap.lisp.

Target Slot

nr-free-lists.

Generic Function: nr-heap-bytes (heap)
Package

rucksack.

Methods
Method: nr-heap-bytes ((heap mark-and-sweep-heap))

Returns the number of heap bytes that must be handled by the garbage collector.

Source

garbage-collector.lisp.

Generic Reader: nr-heap-bytes-scanned (object)
Package

rucksack.

Methods
Reader Method: nr-heap-bytes-scanned ((mark-and-sweep-heap mark-and-sweep-heap))

automatically generated reader method

Source

garbage-collector.lisp.

Target Slot

nr-heap-bytes-scanned.

Generic Writer: (setf nr-heap-bytes-scanned) (object)
Package

rucksack.

Methods
Writer Method: (setf nr-heap-bytes-scanned) ((mark-and-sweep-heap mark-and-sweep-heap))

automatically generated writer method

Source

garbage-collector.lisp.

Target Slot

nr-heap-bytes-scanned.

Generic Reader: nr-heap-bytes-sweeped (object)
Package

rucksack.

Methods
Reader Method: nr-heap-bytes-sweeped ((mark-and-sweep-heap mark-and-sweep-heap))

automatically generated reader method

Source

garbage-collector.lisp.

Target Slot

nr-heap-bytes-sweeped.

Generic Writer: (setf nr-heap-bytes-sweeped) (object)
Package

rucksack.

Methods
Writer Method: (setf nr-heap-bytes-sweeped) ((mark-and-sweep-heap mark-and-sweep-heap))

automatically generated writer method

Source

garbage-collector.lisp.

Target Slot

nr-heap-bytes-sweeped.

Generic Function: nr-object-bytes (heap)
Package

rucksack.

Methods
Method: nr-object-bytes ((heap mark-and-sweep-heap))

Returns the number of object bytes that must be handled by the garbage collector.

Source

garbage-collector.lisp.

Generic Reader: nr-object-bytes-marked (object)
Package

rucksack.

Methods
Reader Method: nr-object-bytes-marked ((mark-and-sweep-heap mark-and-sweep-heap))

automatically generated reader method

Source

garbage-collector.lisp.

Target Slot

nr-object-bytes-marked.

Generic Writer: (setf nr-object-bytes-marked) (object)
Package

rucksack.

Methods
Writer Method: (setf nr-object-bytes-marked) ((mark-and-sweep-heap mark-and-sweep-heap))

automatically generated writer method

Source

garbage-collector.lisp.

Target Slot

nr-object-bytes-marked.

Generic Reader: nr-object-bytes-sweeped (object)
Package

rucksack.

Methods
Reader Method: nr-object-bytes-sweeped ((mark-and-sweep-heap mark-and-sweep-heap))

automatically generated reader method

Source

garbage-collector.lisp.

Target Slot

nr-object-bytes-sweeped.

Generic Writer: (setf nr-object-bytes-sweeped) (object)
Package

rucksack.

Methods
Writer Method: (setf nr-object-bytes-sweeped) ((mark-and-sweep-heap mark-and-sweep-heap))

automatically generated writer method

Source

garbage-collector.lisp.

Target Slot

nr-object-bytes-sweeped.

Generic Function: nr-persistent-slots (schema)
Package

rucksack.

Methods
Method: nr-persistent-slots ((schema schema))
Source

schema-table.lisp.

Generic Reader: object-table (object)
Package

rucksack.

Methods
Reader Method: object-table ((garbage-collector garbage-collector))

automatically generated reader method

Source

garbage-collector.lisp.

Target Slot

object-table.

Generic Reader: objects (object)
Package

rucksack.

Methods
Reader Method: objects ((standard-cache standard-cache))

A hash-table (from id to object)
containing the youngest committed version of all objects that are currently kept in memory but are not dirty. (’The youngest version’ means the version belonging to the youngest committed transaction.)

Source

cache.lisp.

Target Slot

objects.

Generic Function: old-schemas-for-class (table class)
Package

rucksack.

Methods
Method: old-schemas-for-class ((table schema-table) class)
Source

schema-table.lisp.

Generic Reader: old-transaction (condition)
Package

rucksack.

Methods
Reader Method: old-transaction ((condition transaction-conflict))
Source

errors.lisp.

Target Slot

old-transaction.

Generic Function: p-nreverse (object)
Package

rucksack.

Methods
Method: p-nreverse ((object persistent-cons))
Source

objects.lisp.

Method: p-nreverse ((object (eql nil)))
Source

objects.lisp.

Generic Function: persistent-data-read (function data &rest args)
Package

rucksack.

Methods
Method: persistent-data-read (function (data persistent-data) &rest args)
Source

objects.lisp.

Generic Function: persistent-data-write (function data value &rest args)
Package

rucksack.

Methods
Method: persistent-data-write (function (data persistent-data) value &rest args)
Source

objects.lisp.

Generic Reader: persistent-slot-names (object)
Generic Writer: (setf persistent-slot-names) (object)
Package

rucksack.

Methods
Reader Method: persistent-slot-names ((schema schema))
Writer Method: (setf persistent-slot-names) ((schema schema))

A list with the names of all persistent effective slots.

Source

schema-table.lisp.

Target Slot

persistent-slot-names.

Generic Function: reset-allocation-counter (heap)
Package

rucksack.

Methods
Method: reset-allocation-counter ((heap heap))
Source

heap.lisp.

Generic Function: reset-buffer (buffer)
Package

rucksack.

Methods
Method: reset-buffer ((buffer buffer))
Source

heap.lisp.

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

rucksack.

Methods
Reader Method: roots ((garbage-collector garbage-collector))
Writer Method: (setf roots) ((garbage-collector garbage-collector))

A list of object-ids of roots that must be kept alive.

Source

garbage-collector.lisp.

Target Slot

roots.

Generic Reader: roots-changed-p (object)
Package

rucksack.

Methods
Reader Method: roots-changed-p ((standard-rucksack standard-rucksack))

automatically generated reader method

Source

rucksack.lisp.

Target Slot

roots-changed-p.

Generic Writer: (setf roots-changed-p) (object)
Package

rucksack.

Methods
Writer Method: (setf roots-changed-p) ((standard-rucksack standard-rucksack))

automatically generated writer method

Source

rucksack.lisp.

Target Slot

roots-changed-p.

Generic Function: rucksack-root-p (object rucksack)

Returns true iff OBJECT is a member of the root set of a rucksack.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-root-p (object (rucksack standard-rucksack))
Generic Function: rucksack-roots-pathname (rucksack)
Package

rucksack.

Methods
Method: rucksack-roots-pathname ((rucksack standard-rucksack))
Source

rucksack.lisp.

Generic Reader: rucksack-transaction-lock (object)
Package

rucksack.

Methods
Reader Method: rucksack-transaction-lock ((serial-transaction-rucksack serial-transaction-rucksack))

automatically generated reader method

Source

transactions.lisp.

Target Slot

transaction-lock.

Generic Function: rucksack-update-class-index (rucksack class)

Compares the current class index for CLASS to the class index that’s specified in the :INDEX class option of CLASS. An obsolete class index (i.e. a class index that’s specified anymore in the class option) is removed, new class indexes are added.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-update-class-index ((rucksack standard-rucksack) (class persistent-class))
Generic Function: rucksack-update-slot-indexes (rucksack class)

Compares the current slot indexes for CLASS to the slot indexes that are specified in the slot options for the direct slots of CLASS. Obsolete slot indexes (i.e. slot indexes that are not specified anymore in the slot options or indexes for slots that don’t exist anymore) are removed, new slot indexes are added.

Package

rucksack.

Source

rucksack.lisp.

Methods
Method: rucksack-update-slot-indexes ((rucksack standard-rucksack) (class persistent-class))
Generic Function: save-buffer (buffer stream &key file-position)
Package

rucksack.

Methods
Method: save-buffer ((buffer buffer) stream &key file-position)
Source

heap.lisp.

Generic Function: save-dirty-object (object cache transaction object-id &key schema)
Package

rucksack.

Methods
Method: save-dirty-object (object (cache standard-cache) (transaction standard-transaction) object-id &key schema)
Source

transactions.lisp.

Generic Function: save-object (object object-id cache transaction-id previous-block &key schema)
Package

rucksack.

Methods
Method: save-object (object object-id (cache standard-cache) transaction-id previous-block &key schema)

Serializes the object to a buffer, allocates a heap block of the right size and writes the buffer to the block. Returns the (heap position of the) block containing the object.

Source

objects.lisp.

Generic Function: save-schema-table (table)
Package

rucksack.

Methods
Method: save-schema-table ((table schema-table))
Source

schema-table.lisp.

Generic Function: save-schema-table-if-necessary (table)
Package

rucksack.

Methods
Method: save-schema-table-if-necessary ((table schema-table))
Source

schema-table.lisp.

Generic Function: save-slots (object serializer)
Package

rucksack.

Source

serialize.lisp.

Methods
Method: save-slots ((object structure-object) serializer)
Method: save-slots ((object standard-object) serializer)
Generic Function: saved-slots (object)
Package

rucksack.

Methods
Method: saved-slots ((table schema-table))
Source

schema-table.lisp.

Method: saved-slots (object)
Source

serialize.lisp.

Generic Function: scan (buffer garbage-collector)

Scans the object in the serialization buffer, marking or evacuating (depending on garbage collector type) any child objects.

Package

rucksack.

Source

garbage-collector.lisp.

Methods
Method: scan (buffer (gc garbage-collector))
Generic Function: scan-byte (serializer &optional gc)

Skips an unsigned byte from the serializer.

Package

rucksack.

Source

serialize.lisp.

Methods
Method: scan-byte ((stream serialization-buffer) &optional gc)
Source

heap.lisp.

Method: scan-byte ((serializer serializer) &optional gc)
Method: scan-byte ((stream stream) &optional gc)
Generic Function: scan-contents (marker serializer garbage-collector)
Package

rucksack.

Source

serialize.lisp.

Methods
Method: scan-contents ((marker (eql 192)) (buffer serialization-buffer) (gc mark-and-sweep-heap))
Source

objects.lisp.

Method: scan-contents ((marker (eql 128)) stream gc)
Method: scan-contents ((marker (eql 144)) stream gc)
Method: scan-contents ((marker (eql 160)) stream gc)
Method: scan-contents ((marker (eql 119)) serializer gc)
Method: scan-contents ((marker (eql 113)) serializer gc)
Method: scan-contents ((marker (eql 112)) serializer gc)
Method: scan-contents ((marker (eql 80)) stream gc)
Method: scan-contents ((marker (eql 82)) stream gc)
Method: scan-contents ((marker (eql 81)) stream gc)
Method: scan-contents ((marker (eql 68)) stream gc)
Method: scan-contents ((marker (eql 67)) stream gc)
Method: scan-contents ((marker (eql 66)) stream gc)
Method: scan-contents ((marker (eql 65)) stream gc)
Method: scan-contents ((marker (eql 64)) stream gc)
Method: scan-contents ((marker (eql 73)) stream gc)
Method: scan-contents ((marker (eql 72)) stream gc)
Method: scan-contents ((marker (eql 71)) stream gc)
Method: scan-contents ((marker (eql 70)) stream gc)
Method: scan-contents ((marker (eql 69)) stream gc)
Method: scan-contents ((marker (eql 52)) stream gc)
Method: scan-contents ((marker (eql 51)) stream gc)
Method: scan-contents ((marker (eql 50)) stream gc)
Method: scan-contents ((marker (eql 49)) stream gc)
Method: scan-contents ((marker (eql 48)) stream gc)
Method: scan-contents ((marker (eql 96)) stream gc)
Method: scan-contents ((marker (eql 100)) stream gc)
Method: scan-contents ((marker (eql 97)) stream gc)
Method: scan-contents ((marker (eql 38)) stream gc)
Method: scan-contents ((marker (eql 33)) stream gc)
Method: scan-contents ((marker (eql 32)) stream gc)
Method: scan-contents ((marker (eql 29)) stream gc)
Method: scan-contents ((marker (eql 28)) stream gc)
Method: scan-contents ((marker (eql 27)) stream gc)
Method: scan-contents ((marker (eql 26)) stream gc)
Method: scan-contents ((marker (eql 25)) stream gc)
Method: scan-contents ((marker (eql 24)) stream gc)
Method: scan-contents ((marker (eql 23)) stream gc)
Method: scan-contents ((marker (eql 22)) stream gc)
Method: scan-contents ((marker (eql 21)) stream gc)
Method: scan-contents ((marker (eql 20)) stream gc)
Method: scan-contents ((marker (eql 19)) stream gc)
Method: scan-contents ((marker (eql 18)) stream gc)
Method: scan-contents ((marker (eql 17)) stream gc)
Method: scan-contents ((marker (eql 16)) stream gc)
Method: scan-contents (marker serializer gc)
Generic Function: scan-object (object-id block gc)
Package

rucksack.

Methods
Method: scan-object (object-id (block serialization-buffer) gc)
Source

objects.lisp.

Generic Reader: scan-pointer (object)
Package

rucksack.

Methods
Reader Method: scan-pointer ((serialization-buffer serialization-buffer))

automatically generated reader method

Source

heap.lisp.

Target Slot

scan-pointer.

Generic Writer: (setf scan-pointer) (object)
Package

rucksack.

Methods
Writer Method: (setf scan-pointer) ((serialization-buffer serialization-buffer))

automatically generated writer method

Source

heap.lisp.

Target Slot

scan-pointer.

Generic Reader: schema-class-name (object)
Package

rucksack.

Methods
Reader Method: schema-class-name