This is the rucksack Reference Manual, version 0.1.21, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 07:37:53 2024 GMT+0.
rucksack/rucksack.asd
rucksack/queue.lisp
rucksack/package.lisp
rucksack/errors.lisp
rucksack/mop.lisp
rucksack/serialize.lisp
rucksack/heap.lisp
rucksack/object-table.lisp
rucksack/schema-table.lisp
rucksack/garbage-collector.lisp
rucksack/cache.lisp
rucksack/objects.lisp
rucksack/p-btrees.lisp
rucksack/index.lisp
rucksack/rucksack.lisp
rucksack/transactions.lisp
rucksack/import-export.lisp
The main system appears first, followed by any subsystem dependency.
rucksack
0.1.21
queue.lisp
(file).
package.lisp
(file).
errors.lisp
(file).
mop.lisp
(file).
serialize.lisp
(file).
heap.lisp
(file).
object-table.lisp
(file).
schema-table.lisp
(file).
garbage-collector.lisp
(file).
cache.lisp
(file).
objects.lisp
(file).
p-btrees.lisp
(file).
index.lisp
(file).
rucksack.lisp
(file).
transactions.lisp
(file).
import-export.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
rucksack/rucksack.asd
rucksack/queue.lisp
rucksack/package.lisp
rucksack/errors.lisp
rucksack/mop.lisp
rucksack/serialize.lisp
rucksack/heap.lisp
rucksack/object-table.lisp
rucksack/schema-table.lisp
rucksack/garbage-collector.lisp
rucksack/cache.lisp
rucksack/objects.lisp
rucksack/p-btrees.lisp
rucksack/index.lisp
rucksack/rucksack.lisp
rucksack/transactions.lisp
rucksack/import-export.lisp
rucksack/queue.lisp
rucksack
(system).
empty-queue-error
(condition).
print-object
(method).
queue
(class).
queue-add
(function).
queue-add-at-front
(function).
queue-clear
(function).
queue-empty-p
(function).
queue-peek
(function).
queue-remove
(function).
queue-size
(reader method).
rucksack/package.lisp
queue.lisp
(file).
rucksack
(system).
rucksack/errors.lisp
package.lisp
(file).
rucksack
(system).
duplicate-slot-value
(condition).
internal-rucksack-error
(function).
internal-rucksack-error
(condition).
object-id
(reader method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
rucksack
(reader method).
rucksack-error
(function).
rucksack-error
(condition).
simple-rucksack-error
(function).
simple-rucksack-error
(condition).
slot-error
(condition).
transaction
(reader method).
transaction-conflict
(condition).
not-implemented
(function).
old-transaction
(reader method).
slot-error-name
(reader method).
slot-error-object
(reader method).
slot-error-other-object
(reader method).
slot-error-value
(reader method).
rucksack/mop.lisp
errors.lisp
(file).
rucksack
(system).
compute-effective-slot-definition
(method).
direct-slot-definition-class
(method).
effective-slot-definition-class
(method).
finalize-inheritance
(method).
initialize-instance
(method).
persistent-class
(class).
reinitialize-instance
(method).
validate-superclass
(method).
validate-superclass
(method).
class-changed-p
(reader method).
(setf class-changed-p)
(writer method).
class-index
(method).
class-persistent-slots
(reader method).
(setf class-persistent-slots)
(writer method).
compare-slots
(function).
copy-slot-definition
(function).
maybe-add-persistent-object-class
(function).
maybe-update-slot-info
(function).
persistent-direct-slot-definition
(class).
persistent-effective-slot-definition
(class).
persistent-slot-mixin
(class).
slot-definition-equal
(function).
slot-index
(reader method).
slot-persistence
(reader method).
slot-unique
(reader method).
update-indexes
(function).
update-slot-info
(function).
rucksack/serialize.lisp
mop.lisp
(file).
rucksack
(system).
+array+
(constant).
+base-char+
(constant).
+character+
(constant).
+character-16+
(constant).
+character-24+
(constant).
+character-32+
(constant).
+character-8+
(constant).
+complex+
(constant).
+cons+
(constant).
+dead-object+
(constant).
+dotted-list+
(constant).
+double-float+
(constant).
+extended-char+
(constant).
+extension-0+
(constant).
+float+
(constant).
+free-block+
(constant).
+hash-table+
(constant).
+ignore+
(constant).
+illegal-marker+
(constant).
+keyword+
(constant).
+live-object+
(constant).
+long-float+
(constant).
+minus-one+
(constant).
+negative-byte-16+
(constant).
+negative-byte-24+
(constant).
+negative-byte-32+
(constant).
+negative-byte-48+
(constant).
+negative-byte-64+
(constant).
+negative-byte-8+
(constant).
+negative-integer+
(constant).
+nil+
(constant).
+object+
(constant).
+one+
(constant).
+package+
(constant).
+pathname+
(constant).
+positive-byte-16+
(constant).
+positive-byte-24+
(constant).
+positive-byte-32+
(constant).
+positive-byte-48+
(constant).
+positive-byte-64+
(constant).
+positive-byte-8+
(constant).
+positive-integer+
(constant).
+proper-list+
(constant).
+rational+
(constant).
+reserved-object+
(constant).
+shared-object-definition+
(constant).
+shared-object-reference+
(constant).
+short-float+
(constant).
+simple-string+
(constant).
+simple-string-16+
(constant).
+simple-string-24+
(constant).
+simple-string-32+
(constant).
+simple-string-8+
(constant).
+single-float+
(constant).
+string+
(constant).
+string-16+
(constant).
+string-24+
(constant).
+string-32+
(constant).
+string-8+
(constant).
+struct+
(constant).
+struct-definition+
(constant).
+structure-object+
(constant).
+symbol+
(constant).
+symbol-reference+
(constant).
+t+
(constant).
+two+
(constant).
+unbound-slot+
(constant).
+uninterned-symbol+
(constant).
+zero+
(constant).
analyze-list
(function).
close-serializer
(function).
deserialize
(function).
deserialize-byte
(generic function).
deserialize-byte-16
(function).
deserialize-byte-24
(function).
deserialize-byte-32
(function).
deserialize-byte-48
(function).
deserialize-byte-64
(function).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-contents
(method).
deserialize-dotted-list
(function).
deserialize-list
(function).
deserialize-string
(function).
force-serializer-output
(function).
load-objects
(function).
load-slots
(generic function).
max-character-code
(function).
nr-octets
(function).
open-serializer
(function).
read-next-marker
(function).
save-objects
(function).
save-slots
(generic function).
saved-slots
(method).
scan-byte
(generic function).
scan-byte-16
(function).
scan-byte-24
(function).
scan-byte-32
(function).
scan-byte-48
(function).
scan-byte-64
(function).
scan-contents
(generic function).
scan-list
(function).
scan-string
(function).
serialize
(generic function).
serialize-byte
(generic function).
serialize-byte-16
(function).
serialize-byte-24
(function).
serialize-byte-32
(function).
serialize-byte-48
(function).
serialize-byte-64
(function).
serialize-dotted-list
(function).
serialize-float
(function).
serialize-integer
(function).
serialize-list
(function).
serialize-marker
(function).
serialize-standard-object
(function).
serialize-structure-object
(function).
serializer
(class).
serializer-stream
(reader method).
test-analyze-list
(function).
rucksack/heap.lisp
serialize.lisp
(file).
rucksack
(system).
close-heap
(method).
free-list-heap
(class).
heap
(class).
heap-end
(generic reader).
(setf heap-end)
(generic function).
heap-stream
(generic reader).
(setf heap-stream)
(writer method).
initialize-instance
(method).
open-heap
(function).
simple-free-list-heap
(class).
*default-buffer-size*
(special variable).
+pointer-size+
(constant).
allocate-block
(generic function).
appending-heap
(class).
block-header
(method).
(setf block-header)
(method).
block-header-size
(method).
block-size
(generic function).
(setf block-size)
(method).
buffer
(class).
buffer-count
(method).
carve-up-block-for-free-list
(method).
cell-buffer
(reader method).
contents
(reader method).
(setf contents)
(writer method).
deallocate-block
(method).
deserialize-byte
(method).
expand-free-list
(method).
expand-heap
(method).
expansion-size
(reader method).
find-block
(method).
finish-heap-output
(method).
free-list-empty-p
(method).
free-list-info
(method).
free-list-pointer
(function).
free-list-start
(method).
(setf free-list-start)
(method).
heap-info
(method).
heap-size
(method).
heap-start
(generic function).
initialize-block
(generic function).
load-buffer
(method).
load-buffer
(method).
load-heap-end
(method).
max-heap-size
(reader method).
(setf max-heap-size)
(writer method).
min-block-size
(reader method).
nr-allocated-octets
(reader method).
(setf nr-allocated-octets)
(writer method).
nr-free-lists
(reader method).
pointer-value
(function).
(setf pointer-value)
(function).
read-unsigned-bytes
(function).
reset-allocation-counter
(method).
reset-buffer
(method).
save-buffer
(method).
scan-byte
(method).
scan-pointer
(reader method).
(setf scan-pointer)
(writer method).
serialization-buffer
(class).
serialize-byte
(method).
size-class
(method).
size-class-block-size
(method).
with-allocation-counter
(macro).
write-unsigned-bytes
(function).
rucksack/object-table.lisp
heap.lisp
(file).
rucksack
(system).
+nr-object-info-octets+
(constant).
+nr-object-position-octets+
(constant).
block-to-object-id
(function).
close-object-table
(function).
delete-object-id
(function).
initialize-block
(method).
new-object-id
(function).
object-heap-position
(function).
(setf object-heap-position)
(function).
object-id-to-block
(function).
object-info
(function).
(setf object-info)
(function).
object-table
(class).
object-table-size
(function).
open-object-table
(function).
rucksack/schema-table.lisp
object-table.lisp
(file).
rucksack
(system).
print-object
(method).
add-schema
(method).
added-slot-names
(reader method).
(setf added-slot-names)
(writer method).
close-schema-table
(function).
compute-persistent-slot-names
(method).
create-schema
(method).
dirty-p
(reader method).
(setf dirty-p)
(writer method).
discarded-slot-names
(reader method).
(setf discarded-slot-names)
(writer method).
find-or-create-schema-for-object
(method).
find-schema-for-class
(method).
find-schema-for-id
(method).
fresh-schema-id
(method).
highest-schema-id
(reader method).
(setf highest-schema-id)
(writer method).
load-slots
(method).
maybe-update-schemas
(method).
nr-persistent-slots
(method).
old-schemas-for-class
(method).
open-schema-table
(function).
persistent-slot-names
(reader method).
(setf persistent-slot-names)
(writer method).
save-schema-table
(method).
save-schema-table-if-necessary
(method).
saved-slots
(method).
schema
(class).
schema-class-name
(reader method).
schema-id
(reader method).
schema-obsolete-p
(reader method).
(setf schema-obsolete-p)
(writer method).
schema-table
(class).
schema-table-by-id
(reader method).
(setf schema-table-by-id)
(writer method).
schema-table-by-name
(reader method).
schema-table-pathname
(reader method).
(setf schema-table-pathname)
(writer method).
schema-version
(reader method).
rucksack/garbage-collector.lisp
schema-table.lisp
(file).
rucksack
(system).
close-heap
(method).
initialize-instance
(method).
mark-and-sweep-heap
(class).
rucksack
(reader method).
*collect-garbage-on-commit*
(special variable).
*initial-heap-size*
(special variable).
block-alive-p
(method).
collect-garbage
(method).
collect-some-garbage
(method).
expand-heap
(method).
finish-garbage-collection
(method).
free-space
(method).
garbage-collector
(class).
gc-doing-work
(reader method).
(setf gc-doing-work)
(writer method).
gc-work-for-size
(method).
grow-size
(reader method).
(setf grow-size)
(writer method).
handle-written-object
(method).
initialize-block
(method).
load-block
(method).
mark-root
(method).
mark-some-objects-in-table
(method).
mark-some-roots
(method).
max-heap-end
(reader method).
(setf max-heap-end)
(writer method).
max-work
(method).
nr-heap-bytes
(method).
nr-heap-bytes-scanned
(reader method).
(setf nr-heap-bytes-scanned)
(writer method).
nr-heap-bytes-sweeped
(reader method).
(setf nr-heap-bytes-sweeped)
(writer method).
nr-object-bytes
(method).
nr-object-bytes-marked
(reader method).
(setf nr-object-bytes-marked)
(writer method).
nr-object-bytes-sweeped
(reader method).
(setf nr-object-bytes-sweeped)
(writer method).
object-alive-p
(function).
(setf object-alive-p)
(function).
object-table
(reader method).
read-block-start
(function).
roots
(reader method).
(setf roots)
(writer method).
scan
(generic function).
serialization-buffer
(reader method).
state
(reader method).
(setf state)
(writer method).
sweep-some-heap-blocks
(method).
sweep-some-object-blocks
(method).
work-done
(method).
work-left
(method).
rucksack/cache.lisp
garbage-collector.lisp
(file).
rucksack
(system).
cache
(class).
cache-commit
(generic function).
cache-count
(generic function).
cache-create-object
(generic function).
cache-get-object
(generic function).
cache-recover
(generic function).
cache-rollback
(generic function).
cache-size
(generic reader).
(setf cache-size)
(writer method).
cache-touch-object
(method).
close-cache
(generic function).
close-transaction
(generic function).
heap
(reader method).
initialize-instance
(method).
map-transactions
(generic function).
open-cache
(function).
open-transaction
(generic function).
print-object
(method).
queue
(reader method).
rucksack
(reader method).
standard-cache
(class).
with-cache
(macro).
*cache*
(special variable).
add-to-queue
(method).
add-to-queue
(method).
cache-delete-object
(generic function).
cache-full-p
(method).
cache-room
(method).
cache-shrink-ratio
(reader method).
(setf cache-shrink-ratio)
(writer method).
commit-filename
(function).
find-object-version
(function).
last-timestamp
(reader method).
(setf last-timestamp)
(writer method).
lazy-cache
(class).
make-room-in-cache
(method).
make-room-in-cache
(method).
objects
(reader method).
sans
(function).
schema-table
(reader method).
transaction-id-helper
(reader method).
(setf transaction-id-helper)
(writer method).
transactions
(reader method).
undo-object-commit
(generic function).
rucksack/objects.lisp
cache.lisp
(file).
rucksack
(system).
*rucksack*
(special variable).
cache
(function).
current-rucksack
(function).
initialize-instance
(method).
object-id
(generic reader).
p-aref
(method).
(setf p-aref)
(method).
p-array-dimensions
(method).
p-caar
(function).
p-cadr
(function).
p-car
(method).
p-car
(method).
(setf p-car)
(method).
p-cdar
(function).
p-cddr
(function).
p-cdr
(method).
p-cdr
(method).
(setf p-cdr)
(method).
p-cons
(function).
p-consp
(method).
p-consp
(method).
p-delete-if
(method).
p-endp
(method).
p-endp
(method).
p-endp
(method).
p-eql
(generic function).
p-find
(method).
p-find
(method).
p-find
(method).
p-last
(function).
p-length
(method).
p-length
(method).
p-list
(function).
p-make-array
(function).
p-mapc
(function).
p-mapcar
(function).
p-mapl
(function).
p-maplist
(function).
p-member-if
(function).
p-pop
(macro).
p-position
(method).
p-position
(method).
p-push
(macro).
p-replace
(method).
persistent-array
(class).
persistent-cons
(class).
persistent-data
(class).
persistent-object
(class).
print-object
(method).
print-object
(method).
rucksack
(reader method).
rucksack
(reader method).
rucksack
(reader method).
slot-makunbound-using-class
(method).
(setf slot-value-using-class)
(method).
slot-value-using-class
(method).
transaction-id
(reader method).
transaction-id
(reader method).
unwrap-persistent-list
(function).
update-instance-for-redefined-class
(method).
update-persistent-instance-for-redefined-class
(generic function).
*dont-dereference-proxies*
(special variable).
*initializing-instance*
(special variable).
+p-object+
(constant).
check-p-vector
(function).
compute-persistent-slot-names
(method).
contents
(reader method).
(setf contents)
(writer method).
deserialize-contents
(method).
find-committed-object-version
(function).
load-object
(method).
load-object-fields
(function).
make-persistent-data
(function).
maybe-dereference-proxy
(method).
maybe-dereference-proxy
(method).
p-nreverse
(method).
p-nreverse
(method).
persistent-data-read
(method).
persistent-data-write
(method).
proxy
(class).
save-object
(method).
scan-contents
(method).
scan-object
(method).
serialize
(method).
serialize
(method).
serialize
(method).
serialize-previous-version-pointer
(function).
slot-def-and-name
(function).
rucksack/p-btrees.lisp
objects.lisp
(file).
rucksack
(system).
btree
(class).
btree-delete
(generic function).
btree-delete-key
(generic function).
btree-error
(condition).
btree-error-btree
(reader method).
btree-error-key
(reader method).
btree-error-key
(reader method).
btree-error-key
(reader method).
btree-error-value
(reader method).
btree-error-value
(reader method).
btree-insert
(generic function).
btree-insertion-error
(condition).
btree-key-already-present-error
(condition).
btree-key-type
(reader method).
btree-key<
(method).
btree-key<=
(method).
btree-key=
(method).
btree-key>
(method).
btree-key>=
(method).
btree-max-node-size
(reader method).
btree-node-class
(reader method).
btree-nr-keys
(generic function).
btree-nr-values
(generic function).
btree-search
(generic function).
btree-search-error
(condition).
btree-type-error
(condition).
btree-unique-keys-p
(reader method).
btree-value-type
(reader method).
btree-value=
(method).
initialize-instance
(method).
initialize-instance
(method).
map-btree
(generic function).
map-btree-keys
(generic function).
print-object
(method).
biggest-key
(function).
binding
(structure).
binding-key
(reader).
(setf binding-key)
(writer).
binding-p
(function).
binding-value
(reader).
(setf binding-value)
(writer).
bnode
(class).
bnode-bindings
(reader method).
(setf bnode-bindings)
(writer method).
bnode-delete-key
(generic function).
bnode-insert
(generic function).
bnode-leaf-p
(reader method).
bnode-nr-bindings
(reader method).
(setf bnode-nr-bindings)
(writer method).
bnode-nr-keys
(method).
btree-as-cons
(function).
btree-balanced-p
(method).
btree-deletion-error
(condition).
btree-depths
(method).
btree-key-key
(reader method).
btree-root
(reader method).
(setf btree-root)
(writer method).
btree-value-key
(reader method).
check-bnode-keys
(function).
check-btree
(function).
check-node
(function).
copy-binding
(function).
display-node
(function).
distribute-elements
(function).
enlarge-node
(function).
find-key-in-node
(function).
find-subnode
(function).
find-value-in-node
(function).
insert-new-binding
(function).
join-nodes
(function).
key-position
(function).
leaf-delete-key
(function).
leaf-insert
(function).
make-binding
(function).
make-leaf-value
(function).
make-root
(function).
map-btree-keys-for-node
(generic function).
map-set-btree
(generic function).
node-as-cons
(function).
node-binding
(function).
(setf node-binding)
(function).
node-binding-key
(function).
(setf node-binding-key)
(function).
node-binding-value
(function).
(setf node-binding-value)
(function).
node-full-enough-p
(function).
node-full-p
(function).
node-has-min-size-p
(function).
node-max-depth
(method).
node-min-depth
(method).
node-position
(function).
node-search
(generic function).
node-search-binding
(generic function).
not-found
(function).
persistent-object-set
(class).
position-of-binding-with-greater-key
(function).
remove-key
(function).
replace-bindings
(function).
set-bnode
(class).
set-btree
(class).
set-btree-delete
(generic function).
set-btree-empty-p
(generic function).
set-btree-insert
(generic function).
set-btree-search
(generic function).
set-count
(generic function).
shorten
(function).
smallest-key
(function).
split-bnode
(function).
update-node-binding
(function).
update-parents-for-deleted-key
(function).
rucksack/index.lisp
p-btrees.lisp
(file).
rucksack
(system).
define-index-spec
(function).
find-index-spec
(function).
index-delete
(generic function).
index-insert
(generic function).
make-index
(function).
map-index
(generic function).
print-object
(method).
*index-specs*
(special variable).
index
(class).
index-data
(reader method).
index-data-delete
(method).
index-data-insert
(method).
index-similar-p
(method).
index-spec
(reader method).
index-spec-equal
(function).
index-unique-keys-p
(reader method).
map-index-data
(method).
trim-whitespace
(function).
rucksack/rucksack.lisp
index.lisp
(file).
rucksack
(system).
*transaction*
(special variable).
add-class-index
(function).
add-rucksack-root
(generic function).
add-slot-index
(function).
close-rucksack
(function).
commit
(function).
initialize-instance
(method).
map-class-indexes
(function).
map-rucksack-roots
(generic function).
map-slot-indexes
(function).
open-rucksack
(function).
print-object
(method).
remove-class-index
(function).
remove-slot-index
(function).
rollback
(function).
rucksack
(class).
rucksack-add-class-index
(generic function).
rucksack-add-slot-index
(generic function).
rucksack-cache
(generic reader).
rucksack-class-index
(generic function).
rucksack-commit
(generic function).
rucksack-delete-object
(generic function).
rucksack-directory
(generic reader).
rucksack-do-class
(macro).
rucksack-do-slot
(macro).
rucksack-make-class-index
(generic function).
rucksack-map-class
(generic function).
rucksack-map-class-indexes
(generic function).
rucksack-map-slot
(generic function).
rucksack-map-slot-indexes
(generic function).
rucksack-maybe-index-changed-slot
(generic function).
rucksack-maybe-index-new-object
(generic function).
rucksack-remove-class-index
(generic function).
rucksack-remove-slot-index
(generic function).
rucksack-rollback
(generic function).
rucksack-roots
(generic function).
rucksack-slot-index
(generic function).
standard-rucksack
(class).
with-rucksack
(macro).
with-transaction
(macro).
*rucksack-opening-lock*
(special variable).
add-and-fill-slot-index
(function).
add-rucksack-root-id
(function).
class-index-table
(method).
delete-rucksack-root
(generic function).
find-old-index-spec
(function).
highest-transaction-id
(reader method).
(setf highest-transaction-id)
(writer method).
load-roots
(function).
make-lock
(function).
process-lock
(function).
process-unlock
(function).
replace-slot-index
(function).
roots-changed-p
(reader method).
(setf roots-changed-p)
(writer method).
rucksack-delete-objects
(function).
rucksack-files-in-directory
(function).
rucksack-indexed-slots-for-class
(function).
rucksack-list-class-indexes
(function).
rucksack-list-slot-indexes
(function).
rucksack-root-p
(generic function).
rucksack-roots-pathname
(method).
rucksack-update-class-index
(generic function).
rucksack-update-slot-indexes
(generic function).
save-roots
(function).
save-roots-if-necessary
(function).
slot-index-tables
(method).
test-garbage-collector
(function).
with-lock
(macro).
rucksack/transactions.lisp
rucksack.lisp
(file).
rucksack
(system).
current-transaction
(function).
print-object
(method).
standard-transaction
(class).
transaction
(class).
transaction-commit
(function).
transaction-commit-1
(generic function).
transaction-id
(reader method).
transaction-rollback
(function).
transaction-start
(function).
transaction-start-1
(generic function).
create-commit-file
(function).
delete-commit-file
(function).
dirty-objects
(reader method).
dirty-queue
(reader method).
find-conflicting-transaction
(generic function).
finish-all-output
(method).
load-commit-file
(function).
(setf object-version-list)
(function).
rucksack-transaction-lock
(reader method).
save-dirty-object
(method).
serial-transaction-rucksack
(class).
transaction-changed-object
(generic function).
transaction-nr-dirty-objects
(method).
transaction-older-p
(generic function).
transaction-rollback-1
(generic function).
transaction-touch-object
(method).
version-list-position
(function).
without-rucksack-gcing
(macro).
rucksack/import-export.lisp
transactions.lisp
(file).
rucksack
(system).
export-rucksack
(generic function).
import-rucksack
(function).
Packages are listed by definition order.
rucksack
rs
common-lisp
.
queue
.
sb-mop
.
*rucksack*
(special variable).
*transaction*
(special variable).
add-class-index
(function).
add-rucksack-root
(generic function).
add-slot-index
(function).
btree
(class).
btree-delete
(generic function).
btree-delete-key
(generic function).
btree-error
(condition).
btree-error-btree
(generic reader).
btree-error-key
(generic reader).
btree-error-value
(generic reader).
btree-insert
(generic function).
btree-insertion-error
(condition).
btree-key-already-present-error
(condition).
btree-key-type
(generic reader).
btree-key<
(generic function).
btree-key<=
(generic function).
btree-key=
(generic function).
btree-key>
(generic function).
btree-key>=
(generic function).
btree-max-node-size
(generic reader).
btree-node-class
(generic reader).
btree-nr-keys
(generic function).
btree-nr-values
(generic function).
btree-search
(generic function).
btree-search-error
(condition).
btree-type-error
(condition).
btree-unique-keys-p
(generic reader).
btree-value-type
(generic reader).
btree-value=
(generic function).
cache
(function).
cache
(class).
cache-commit
(generic function).
cache-count
(generic function).
cache-create-object
(generic function).
cache-get-object
(generic function).
cache-recover
(generic function).
cache-rollback
(generic function).
cache-size
(generic reader).
(setf cache-size)
(generic writer).
cache-touch-object
(generic function).
close-cache
(generic function).
close-heap
(generic function).
close-rucksack
(function).
close-transaction
(generic function).
commit
(function).
current-rucksack
(function).
current-transaction
(function).
define-index-spec
(function).
duplicate-slot-value
(condition).
find-index-spec
(function).
free-list-heap
(class).
heap
(generic reader).
heap
(class).
heap-end
(generic reader).
(setf heap-end)
(generic function).
heap-stream
(generic reader).
(setf heap-stream)
(generic writer).
index-delete
(generic function).
index-insert
(generic function).
internal-rucksack-error
(function).
internal-rucksack-error
(condition).
make-index
(function).
map-btree
(generic function).
map-btree-keys
(generic function).
map-class-indexes
(function).
map-index
(generic function).
map-rucksack-roots
(generic function).
map-slot-indexes
(function).
map-transactions
(generic function).
mark-and-sweep-heap
(class).
object-id
(generic reader).
open-cache
(function).
open-heap
(function).
open-rucksack
(function).
open-transaction
(generic function).
p-aref
(generic function).
(setf p-aref)
(generic function).
p-array-dimensions
(generic function).
p-caar
(function).
p-cadr
(function).
p-car
(generic function).
(setf p-car)
(generic function).
p-cdar
(function).
p-cddr
(function).
p-cdr
(generic function).
(setf p-cdr)
(generic function).
p-cons
(function).
p-consp
(generic function).
p-delete-if
(generic function).
p-endp
(generic function).
p-eql
(generic function).
p-find
(generic function).
p-last
(function).
p-length
(generic function).
p-list
(function).
p-make-array
(function).
p-mapc
(function).
p-mapcar
(function).
p-mapl
(function).
p-maplist
(function).
p-member-if
(function).
p-pop
(macro).
p-position
(generic function).
p-push
(macro).
p-replace
(generic function).
persistent-array
(class).
persistent-class
(class).
persistent-cons
(class).
persistent-data
(class).
persistent-object
(class).
remove-class-index
(function).
remove-slot-index
(function).
rollback
(function).
rucksack
(generic reader).
rucksack
(class).
rucksack-add-class-index
(generic function).
rucksack-add-slot-index
(generic function).
rucksack-cache
(generic reader).
rucksack-class-index
(generic function).
rucksack-commit
(generic function).
rucksack-delete-object
(generic function).
rucksack-directory
(generic reader).
rucksack-do-class
(macro).
rucksack-do-slot
(macro).
rucksack-error
(function).
rucksack-error
(condition).
rucksack-make-class-index
(generic function).
rucksack-map-class
(generic function).
rucksack-map-class-indexes
(generic function).
rucksack-map-slot
(generic function).
rucksack-map-slot-indexes
(generic function).
rucksack-maybe-index-changed-slot
(generic function).
rucksack-maybe-index-new-object
(generic function).
rucksack-remove-class-index
(generic function).
rucksack-remove-slot-index
(generic function).
rucksack-rollback
(generic function).
rucksack-roots
(generic function).
rucksack-slot-index
(generic function).
simple-free-list-heap
(class).
simple-rucksack-error
(function).
simple-rucksack-error
(condition).
slot-error
(condition).
standard-cache
(class).
standard-rucksack
(class).
standard-transaction
(class).
transaction
(generic reader).
transaction
(class).
transaction-commit
(function).
transaction-commit-1
(generic function).
transaction-conflict
(condition).
transaction-id
(generic reader).
transaction-rollback
(function).
transaction-start
(function).
transaction-start-1
(generic function).
unwrap-persistent-list
(function).
update-persistent-instance-for-redefined-class
(generic function).
with-cache
(macro).
with-rucksack
(macro).
with-transaction
(macro).
*cache*
(special variable).
*collect-garbage-on-commit*
(special variable).
*default-buffer-size*
(special variable).
*dont-dereference-proxies*
(special variable).
*index-specs*
(special variable).
*initial-heap-size*
(special variable).
*initializing-instance*
(special variable).
*rucksack-opening-lock*
(special variable).
+array+
(constant).
+base-char+
(constant).
+character+
(constant).
+character-16+
(constant).
+character-24+
(constant).
+character-32+
(constant).
+character-8+
(constant).
+complex+
(constant).
+cons+
(constant).
+dead-object+
(constant).
+dotted-list+
(constant).
+double-float+
(constant).
+extended-char+
(constant).
+extension-0+
(constant).
+float+
(constant).
+free-block+
(constant).
+hash-table+
(constant).
+ignore+
(constant).
+illegal-marker+
(constant).
+keyword+
(constant).
+live-object+
(constant).
+long-float+
(constant).
+minus-one+
(constant).
+negative-byte-16+
(constant).
+negative-byte-24+
(constant).
+negative-byte-32+
(constant).
+negative-byte-48+
(constant).
+negative-byte-64+
(constant).
+negative-byte-8+
(constant).
+negative-integer+
(constant).
+nil+
(constant).
+nr-object-info-octets+
(constant).
+nr-object-position-octets+
(constant).
+object+
(constant).
+one+
(constant).
+p-object+
(constant).
+package+
(constant).
+pathname+
(constant).
+pointer-size+
(constant).
+positive-byte-16+
(constant).
+positive-byte-24+
(constant).
+positive-byte-32+
(constant).
+positive-byte-48+
(constant).
+positive-byte-64+
(constant).
+positive-byte-8+
(constant).
+positive-integer+
(constant).
+proper-list+
(constant).
+rational+
(constant).
+reserved-object+
(constant).
+shared-object-definition+
(constant).
+shared-object-reference+
(constant).
+short-float+
(constant).
+simple-string+
(constant).
+simple-string-16+
(constant).
+simple-string-24+
(constant).
+simple-string-32+
(constant).
+simple-string-8+
(constant).
+single-float+
(constant).
+string+
(constant).
+string-16+
(constant).
+string-24+
(constant).
+string-32+
(constant).
+string-8+
(constant).
+struct+
(constant).
+struct-definition+
(constant).
+structure-object+
(constant).
+symbol+
(constant).
+symbol-reference+
(constant).
+t+
(constant).
+two+
(constant).
+unbound-slot+
(constant).
+uninterned-symbol+
(constant).
+zero+
(constant).
add-and-fill-slot-index
(function).
add-rucksack-root-id
(function).
add-schema
(generic function).
add-to-queue
(generic function).
added-slot-names
(generic reader).
(setf added-slot-names)
(generic writer).
allocate-block
(generic function).
analyze-list
(function).
appending-heap
(class).
biggest-key
(function).
binding
(structure).
binding-key
(reader).
(setf binding-key)
(writer).
binding-p
(function).
binding-value
(reader).
(setf binding-value)
(writer).
block-alive-p
(generic function).
block-header
(generic function).
(setf block-header)
(generic function).
block-header-size
(generic function).
block-size
(generic function).
(setf block-size)
(generic function).
block-to-object-id
(function).
bnode
(class).
bnode-bindings
(generic reader).
(setf bnode-bindings)
(generic writer).
bnode-delete-key
(generic function).
bnode-insert
(generic function).
bnode-leaf-p
(generic reader).
bnode-nr-bindings
(generic reader).
(setf bnode-nr-bindings)
(generic writer).
bnode-nr-keys
(generic function).
btree-as-cons
(function).
btree-balanced-p
(generic function).
btree-deletion-error
(condition).
btree-depths
(generic function).
btree-key-key
(generic reader).
btree-root
(generic reader).
(setf btree-root)
(generic writer).
btree-value-key
(generic reader).
buffer
(class).
buffer-count
(generic function).
cache-delete-object
(generic function).
cache-full-p
(generic function).
cache-room
(generic function).
cache-shrink-ratio
(generic reader).
(setf cache-shrink-ratio)
(generic writer).
carve-up-block-for-free-list
(generic function).
cell-buffer
(generic reader).
check-bnode-keys
(function).
check-btree
(function).
check-node
(function).
check-p-vector
(function).
class-changed-p
(generic reader).
(setf class-changed-p)
(generic writer).
class-index
(generic function).
class-index-table
(generic function).
class-persistent-slots
(generic reader).
(setf class-persistent-slots)
(generic writer).
close-object-table
(function).
close-schema-table
(function).
close-serializer
(function).
collect-garbage
(generic function).
collect-some-garbage
(generic function).
commit-filename
(function).
compare-slots
(function).
compute-persistent-slot-names
(generic function).
contents
(generic reader).
(setf contents)
(generic writer).
copy-binding
(function).
copy-slot-definition
(function).
create-commit-file
(function).
create-schema
(generic function).
deallocate-block
(generic function).
delete-commit-file
(function).
delete-object-id
(function).
delete-rucksack-root
(generic function).
deserialize
(function).
deserialize-byte
(generic function).
deserialize-byte-16
(function).
deserialize-byte-24
(function).
deserialize-byte-32
(function).
deserialize-byte-48
(function).
deserialize-byte-64
(function).
deserialize-contents
(generic function).
deserialize-dotted-list
(function).
deserialize-list
(function).
deserialize-string
(function).
dirty-objects
(generic reader).
dirty-p
(generic reader).
(setf dirty-p)
(generic writer).
dirty-queue
(generic reader).
discarded-slot-names
(generic reader).
(setf discarded-slot-names)
(generic writer).
display-node
(function).
distribute-elements
(function).
enlarge-node
(function).
expand-free-list
(generic function).
expand-heap
(generic function).
expansion-size
(generic reader).
export-rucksack
(generic function).
find-block
(generic function).
find-committed-object-version
(function).
find-conflicting-transaction
(generic function).
find-key-in-node
(function).
find-object-version
(function).
find-old-index-spec
(function).
find-or-create-schema-for-object
(generic function).
find-schema-for-class
(generic function).
find-schema-for-id
(generic function).
find-subnode
(function).
find-value-in-node
(function).
finish-all-output
(generic function).
finish-garbage-collection
(generic function).
finish-heap-output
(generic function).
force-serializer-output
(function).
free-list-empty-p
(generic function).
free-list-info
(generic function).
free-list-pointer
(function).
free-list-start
(generic function).
(setf free-list-start)
(generic function).
free-space
(generic function).
fresh-schema-id
(generic function).
garbage-collector
(class).
gc-doing-work
(generic reader).
(setf gc-doing-work)
(generic writer).
gc-work-for-size
(generic function).
grow-size
(generic reader).
(setf grow-size)
(generic writer).
handle-written-object
(generic function).
heap-info
(generic function).
heap-size
(generic function).
heap-start
(generic function).
highest-schema-id
(generic reader).
(setf highest-schema-id)
(generic writer).
highest-transaction-id
(generic reader).
(setf highest-transaction-id)
(generic writer).
import-rucksack
(function).
index
(class).
index-data
(generic reader).
index-data-delete
(generic function).
index-data-insert
(generic function).
index-similar-p
(generic function).
index-spec
(generic reader).
index-spec-equal
(function).
index-unique-keys-p
(generic reader).
initialize-block
(generic function).
insert-new-binding
(function).
join-nodes
(function).
key-position
(function).
last-timestamp
(generic reader).
(setf last-timestamp)
(generic writer).
lazy-cache
(class).
leaf-delete-key
(function).
leaf-insert
(function).
load-block
(generic function).
load-buffer
(generic function).
load-commit-file
(function).
load-heap-end
(generic function).
load-object
(generic function).
load-object-fields
(function).
load-objects
(function).
load-roots
(function).
load-slots
(generic function).
make-binding
(function).
make-leaf-value
(function).
make-lock
(function).
make-persistent-data
(function).
make-room-in-cache
(generic function).
make-root
(function).
map-btree-keys-for-node
(generic function).
map-index-data
(generic function).
map-set-btree
(generic function).
mark-root
(generic function).
mark-some-objects-in-table
(generic function).
mark-some-roots
(generic function).
max-character-code
(function).
max-heap-end
(generic reader).
(setf max-heap-end)
(generic writer).
max-heap-size
(generic reader).
(setf max-heap-size)
(generic writer).
max-work
(generic function).
maybe-add-persistent-object-class
(function).
maybe-dereference-proxy
(generic function).
maybe-update-schemas
(generic function).
maybe-update-slot-info
(function).
min-block-size
(generic reader).
new-object-id
(function).
node-as-cons
(function).
node-binding
(function).
(setf node-binding)
(function).
node-binding-key
(function).
(setf node-binding-key)
(function).
node-binding-value
(function).
(setf node-binding-value)
(function).
node-full-enough-p
(function).
node-full-p
(function).
node-has-min-size-p
(function).
node-max-depth
(generic function).
node-min-depth
(generic function).
node-position
(function).
node-search
(generic function).
node-search-binding
(generic function).
not-found
(function).
not-implemented
(function).
nr-allocated-octets
(generic reader).
(setf nr-allocated-octets)
(generic writer).
nr-free-lists
(generic reader).
nr-heap-bytes
(generic function).
nr-heap-bytes-scanned
(generic reader).
(setf nr-heap-bytes-scanned)
(generic writer).
nr-heap-bytes-sweeped
(generic reader).
(setf nr-heap-bytes-sweeped)
(generic writer).
nr-object-bytes
(generic function).
nr-object-bytes-marked
(generic reader).
(setf nr-object-bytes-marked)
(generic writer).
nr-object-bytes-sweeped
(generic reader).
(setf nr-object-bytes-sweeped)
(generic writer).
nr-octets
(function).
nr-persistent-slots
(generic function).
object-alive-p
(function).
(setf object-alive-p)
(function).
object-heap-position
(function).
(setf object-heap-position)
(function).
object-id-to-block
(function).
object-info
(function).
(setf object-info)
(function).
object-table
(generic reader).
object-table
(class).
object-table-size
(function).
(setf object-version-list)
(function).
objects
(generic reader).
old-schemas-for-class
(generic function).
old-transaction
(generic reader).
open-object-table
(function).
open-schema-table
(function).
open-serializer
(function).
p-nreverse
(generic function).
persistent-data-read
(generic function).
persistent-data-write
(generic function).
persistent-direct-slot-definition
(class).
persistent-effective-slot-definition
(class).
persistent-object-set
(class).
persistent-slot-mixin
(class).
persistent-slot-names
(generic reader).
(setf persistent-slot-names)
(generic writer).
pointer-value
(function).
(setf pointer-value)
(function).
position-of-binding-with-greater-key
(function).
process-lock
(function).
process-unlock
(function).
proxy
(class).
read-block-start
(function).
read-next-marker
(function).
read-unsigned-bytes
(function).
remove-key
(function).
replace-bindings
(function).
replace-slot-index
(function).
reset-allocation-counter
(generic function).
reset-buffer
(generic function).
roots
(generic reader).
(setf roots)
(generic writer).
roots-changed-p
(generic reader).
(setf roots-changed-p)
(generic writer).
rucksack-delete-objects
(function).
rucksack-files-in-directory
(function).
rucksack-indexed-slots-for-class
(function).
rucksack-list-class-indexes
(function).
rucksack-list-slot-indexes
(function).
rucksack-root-p
(generic function).
rucksack-roots-pathname
(generic function).
rucksack-transaction-lock
(generic reader).
rucksack-update-class-index
(generic function).
rucksack-update-slot-indexes
(generic function).
sans
(function).
save-buffer
(generic function).
save-dirty-object
(generic function).
save-object
(generic function).
save-objects
(function).
save-roots
(function).
save-roots-if-necessary
(function).
save-schema-table
(generic function).
save-schema-table-if-necessary
(generic function).
save-slots
(generic function).
saved-slots
(generic function).
scan
(generic function).
scan-byte
(generic function).
scan-byte-16
(function).
scan-byte-24
(function).
scan-byte-32
(function).
scan-byte-48
(function).
scan-byte-64
(function).
scan-contents
(generic function).
scan-list
(function).
scan-object
(generic function).
scan-pointer
(generic reader).
(setf scan-pointer)
(generic writer).
scan-string
(function).
schema
(class).
schema-class-name
(generic reader).
schema-id
(generic reader).
schema-obsolete-p
(generic reader).
(setf schema-obsolete-p)
(generic writer).
schema-table
(generic reader).
schema-table
(class).
schema-table-by-id
(generic reader).
(setf schema-table-by-id)
(generic writer).
schema-table-by-name
(generic reader).
schema-table-pathname
(generic reader).
(setf schema-table-pathname)
(generic writer).
schema-version
(generic reader).
serial-transaction-rucksack
(class).
serialization-buffer
(generic reader).
serialization-buffer
(class).
serialize
(generic function).
serialize-byte
(generic function).
serialize-byte-16
(function).
serialize-byte-24
(function).
serialize-byte-32
(function).
serialize-byte-48
(function).
serialize-byte-64
(function).
serialize-dotted-list
(function).
serialize-float
(function).
serialize-integer
(function).
serialize-list
(function).
serialize-marker
(function).
serialize-previous-version-pointer
(function).
serialize-standard-object
(function).
serialize-structure-object
(function).
serializer
(class).
serializer-stream
(generic reader).
set-bnode
(class).
set-btree
(class).
set-btree-delete
(generic function).
set-btree-empty-p
(generic function).
set-btree-insert
(generic function).
set-btree-search
(generic function).
set-count
(generic function).
shorten
(function).
size-class
(generic function).
size-class-block-size
(generic function).
slot-def-and-name
(function).
slot-definition-equal
(function).
slot-error-name
(generic reader).
slot-error-object
(generic reader).
slot-error-other-object
(generic reader).
slot-error-value
(generic reader).
slot-index
(generic reader).
slot-index-tables
(generic function).
slot-persistence
(generic reader).
slot-unique
(generic reader).
smallest-key
(function).
split-bnode
(function).
state
(generic reader).
(setf state)
(generic writer).
sweep-some-heap-blocks
(generic function).
sweep-some-object-blocks
(generic function).
test-analyze-list
(function).
test-garbage-collector
(function).
transaction-changed-object
(generic function).
transaction-id-helper
(generic reader).
(setf transaction-id-helper)
(generic writer).
transaction-nr-dirty-objects
(generic function).
transaction-older-p
(generic function).
transaction-rollback-1
(generic function).
transaction-touch-object
(generic function).
transactions
(generic reader).
trim-whitespace
(function).
undo-object-commit
(generic function).
update-indexes
(function).
update-node-binding
(function).
update-parents-for-deleted-key
(function).
update-slot-info
(function).
version-list-position
(function).
with-allocation-counter
(macro).
with-lock
(macro).
without-rucksack-gcing
(macro).
work-done
(generic function).
work-left
(generic function).
write-unsigned-bytes
(function).
queue
common-lisp
.
empty-queue-error
(condition).
queue
(slot).
queue
(generic reader).
queue
(class).
queue-add
(function).
queue-add-at-front
(function).
queue-clear
(function).
queue-empty-p
(function).
queue-peek
(function).
queue-remove
(function).
queue-size
(generic reader).
Definitions are sorted by export status, category, package, and then by lexicographic order.
The current rucksack (NIL if there is no open rucksack).
The currently active transaction.
Pop an item from the persistent list specified by PLACE.
Push ITEM onto the persistent list specified by PLACE. Return the modified persistent list. ITEM is evaluated before place.
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.
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.
NAME must be a keyword. SPEC must be an index spec. IF-EXISTS must be either :OVERWRITE (default) or :ERROR.
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).
The persistent equivalent of CAAR.
The persistent equivalenet of CADR.
The persistent equivalent of CDAR.
The persistent equivalent of CDDR.
Returns the last persistent cons cell of a persistent list (or NIL if the list is empty).
Adds an object to the end of the queue.
Removes all elements from the queue (and returns the empty queue).
Returns true if the queue is empty, otherwise nil.
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.
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).
Call transaction-commit-1 to do the real work.
Converts a persistent list to a ’normal’ Lisp list.
Adds an object to the root set of a rucksack.
standard-rucksack
)) ¶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.
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))
btree-error
)) ¶btree-deletion-error
)) ¶key
.
btree-insertion-error
)) ¶key
.
btree-search-error
)) ¶key
.
btree-deletion-error
)) ¶btree-insertion-error
)) ¶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).
Returns the number of keys in a btree.
Returns the number of values in a btree.
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.
Makes sure that all changes to the cache are written to disk.
standard-cache
)) ¶Returns the number of objects (both dirty and non-dirty) in the cache.
standard-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.
standard-cache
)) ¶Retrieves the object with the given id from the cache and returns that object.
standard-cache
)) ¶Undoes partially committed transactions to ensure that the cache is in a consistent state.
standard-cache
)) ¶Undoes all cache changes that were made since the last cache-commit.
standard-cache
)) ¶Returns the number of non-dirty objects that the cache may keep in memory.
standard-cache
)) ¶The maximum number of non-dirty objects that will be kept in the cache memory.
size
.
standard-cache
)) ¶The maximum number of non-dirty objects that will be kept in the cache memory.
size
.
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.
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.
standard-cache
) &key commit) ¶mark-and-sweep-heap
)) ¶Removes a transaction from the set of open transactions.
standard-cache
) transaction) ¶standard-cache
)) ¶automatically generated reader method
heap
.
Returns the end of the heap.
Modifies the end of the heap.
appending-heap
)) ¶free-list-heap
)) ¶Returns the heap’s stream.
Remove a key/value pair from an index. IF-DOES-NOT-EXIST can be either :IGNORE (default) or :ERROR.
Insert a key/value pair into an index. IF-EXISTS can be either :OVERWRITE (default) or :ERROR.
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.
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.
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.
Applies a function to all objects in the root set of a rucksack.
standard-rucksack
)) ¶Applies a function to each open transaction in a cache.
standard-cache
) function) ¶Returns the object id of a persistent-object or persistent-data.
persistent-object
)) ¶automatically generated reader method
persistent-data
)) ¶automatically generated reader method
transaction-conflict
)) ¶Adds a transaction to the set of open transactions.
standard-cache
) transaction) ¶persistent-array
) &rest indices) ¶persistent-array
) &rest indices) ¶persistent-array
)) ¶(eql nil)
)) ¶persistent-cons
)) ¶persistent-cons
)) ¶(eql nil)
)) ¶persistent-cons
)) ¶persistent-cons
)) ¶persistent-cons
)) ¶persistent-cons
) &key from-end start end count key) ¶persistent-cons
)) ¶(eql nil)
)) ¶The persistent equivalent of EQL.
persistent-object
) (b persistent-data
)) ¶persistent-data
) (b persistent-object
)) ¶persistent-object
) (b persistent-object
)) ¶persistent-data
) (b persistent-data
)) ¶(eql nil)
) &key &allow-other-keys) ¶persistent-cons
) &key key test start end) ¶persistent-array
) &key key test start end) ¶persistent-cons
)) ¶persistent-array
)) ¶persistent-cons
) &key key test start end) ¶persistent-array
) &key key test start end) ¶persistent-array
) (vector-2 persistent-array
) &key start1 end1 start2 end2) ¶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.
persistent-object
)) ¶automatically generated reader method
persistent-data
)) ¶automatically generated reader method
standard-cache
)) ¶Back pointer to the rucksack.
garbage-collector
)) ¶automatically generated reader method
rucksack-error
)) ¶standard-rucksack
) class &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.
standard-rucksack
) class slot index-spec unique-p &key errorp) ¶Returns the cache for a rucksack.
standard-rucksack
)) ¶automatically generated reader method
Returns the class index for a class designator.
standard-rucksack
) class &key errorp) ¶Ensures that all in-memory data is saved to disk.
standard-rucksack
)) ¶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.
standard-rucksack
) object) ¶Returns a pathname for the directory that contains all files of a rucksack.
standard-rucksack
)) ¶automatically generated reader method
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.
standard-rucksack
) class &key index-spec) ¶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.
standard-rucksack
) class function &key id-only include-subclasses) ¶FUNCTION must take two arguments: a class name and a class index. It is called for all class indexes in the specified rucksack.
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.
standard-rucksack
) class slot function &key min max include-min include-max equal order 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.
standard-rucksack
) function &key class include-subclasses) ¶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.
standard-rucksack
) class object slot old-value new-value old-boundp new-boundp) ¶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.
standard-rucksack
) class object) ¶standard-rucksack
) class &key errorp) ¶....
standard-rucksack
)) ¶Returns a list with all objects in the root set of a rucksack. You shouldn’t modify this list.
standard-rucksack
)) ¶Returns the slot index for the slot specified by CLASS-DESIGNATOR and SLOT.
standard-rucksack
) class slot &key errorp include-superclasses) ¶transaction-conflict
)) ¶Save all modified objects to disk.
standard-transaction
) (cache standard-cache
) (rucksack standard-rucksack
)) ¶standard-transaction
) (cache standard-cache
) (rucksack serial-transaction-rucksack
)) ¶standard-transaction
)) ¶automatically generated reader method
id
.
persistent-object
)) ¶automatically generated reader method
persistent-data
)) ¶automatically generated reader method
Creates and returns a new transaction.
standard-cache
) (rucksack serial-transaction-rucksack
) &key &allow-other-keys) ¶standard-cache
) (rucksack standard-rucksack
) &key &allow-other-keys) ¶persistent-object
) added-slots discarded-slots plist &key) ¶persistent-class
) slot-name direct-slot-definitions) ¶sb-mop
.
persistent-class
) &rest initargs) ¶sb-mop
.
persistent-class
) &rest initargs) ¶sb-mop
.
persistent-class
)) ¶sb-mop
.
persistent-object
) &rest args &key rucksack dont-index &allow-other-keys) ¶mark-and-sweep-heap
) &key size &allow-other-keys) ¶btree
) &rest initargs &key key< key-key value= value-key &allow-other-keys) ¶standard-cache
) &key directory heap-class heap-options if-exists if-does-not-exist size &allow-other-keys) ¶standard-rucksack
) &key cache-class cache-args &allow-other-keys) ¶persistent-class
) &rest args &key direct-superclasses &allow-other-keys) ¶free-list-heap
) &key &allow-other-keys) ¶simple-rucksack-error
) stream) ¶persistent-data
) stream) ¶persistent-object
) stream) ¶duplicate-slot-value
) stream) ¶transaction-conflict
) stream) ¶standard-cache
) stream) ¶transaction
) stream) ¶rucksack-error
) stream) ¶internal-rucksack-error
) stream) ¶persistent-class
) &rest args &key direct-superclasses &allow-other-keys) ¶persistent-class
) object slot-name-or-def) ¶sb-mop
.
persistent-class
) object slot-name-or-def) ¶sb-mop
.
persistent-class
) object slot) ¶sb-mop
.
persistent-object
) added-slots discarded-slots plist &rest initargs &key) ¶persistent-class
) (superclass standard-class
)) ¶sb-mop
.
standard-class
) (superclass persistent-class
)) ¶sb-mop
.
error
.
:btree
This slot is read-only.
:key
This slot is read-only.
btree-error
.
type-error
.
:other-object
This slot is read-only.
error
.
:queue
rucksack-error
.
simple-error
.
error
.
rucksack-error
.
simple-error
.
:object
This slot is read-only.
:slot-name
This slot is read-only.
:value
This slot is read-only.
(quote (rucksack:current-transaction))
:transaction
This slot is read-only.
(quote (error "old-transaction initarg required
for transaction-conflict."))
:old-transaction
This slot is read-only.
bnode-delete-key
.
bnode-insert
.
btree-balanced-p
.
btree-delete
.
btree-delete-key
.
btree-depths
.
btree-insert
.
btree-key-key
.
btree-key-type
.
btree-key<
.
btree-key<=
.
btree-key=
.
btree-key>
.
btree-key>=
.
btree-max-node-size
.
btree-node-class
.
btree-nr-keys
.
btree-nr-values
.
(setf btree-root)
.
btree-root
.
btree-unique-keys-p
.
btree-value-key
.
btree-value-type
.
btree-value=
.
index-data-delete
.
index-data-insert
.
initialize-instance
.
map-btree
.
map-btree-keys
.
map-btree-keys-for-node
.
map-index-data
.
node-search
.
node-search-binding
.
(quote <)
:key<
This is only used for btrees with non-unique keys.
(quote rucksack:p-eql)
:value=
A unary function that is applied to a
btree key before comparing it to another key with a key comparison
predicate like BTREE-KEY<.
(quote identity)
:key-key
This slot is read-only.
A unary function that is applied to a
btree value before comparing it to another value with the BTREE-VALUE=
predicate.
(quote identity)
:value-key
This slot is read-only.
(quote rucksack::bnode)
:node-class
This slot is read-only.
An integer specifying the preferred maximum number of keys per btree node.
64
:max-node-size
This slot is read-only.
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).
t
:unique-keys-p
This slot is read-only.
The type of all keys.
t
:key-type
This slot is read-only.
The type of all values.
t
:value-type
This slot is read-only.
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.
heap
.
allocate-block
.
(setf block-header)
.
block-header
.
block-header-size
.
block-size
.
(setf block-size)
.
carve-up-block-for-free-list
.
deallocate-block
.
expand-free-list
.
expansion-size
.
find-block
.
free-list-empty-p
.
free-list-info
.
(setf free-list-start)
.
free-list-start
.
(setf heap-end)
.
heap-info
.
heap-start
.
initialize-block
.
initialize-instance
.
min-block-size
.
nr-free-lists
.
size-class
.
size-class-block-size
.
32
:nr-free-lists
This slot is read-only.
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.
The size of the smallest blocks. This must be a power of 2.
16
:min-block-size
This slot is read-only.
The minimum number of bytes that will be used to expand a free-list.
(* 32 1024)
:expansion-size
This slot is read-only.
common-lisp
.
:stream
(make-array rucksack::+pointer-size+ :element-type (quote (unsigned-byte 8)))
This slot is read-only.
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.
The maximum size (in octets) for the heap.
If nil, the heap is allowed to expand indefinitely.
:max-size
The number of octets that have been
allocated by ALLOCATE-BLOCK since the last time that RESET-ALLOCATION-COUNTER
was called.
0
close-heap
.
collect-garbage
.
collect-some-garbage
.
expand-heap
.
finish-garbage-collection
.
(setf grow-size)
.
grow-size
.
handle-written-object
.
initialize-block
.
initialize-instance
.
load-block
.
mark-root
.
mark-some-objects-in-table
.
mark-some-roots
.
(setf max-heap-end)
.
max-heap-end
.
max-work
.
nr-heap-bytes
.
(setf nr-heap-bytes-scanned)
.
nr-heap-bytes-scanned
.
(setf nr-heap-bytes-sweeped)
.
nr-heap-bytes-sweeped
.
nr-object-bytes
.
(setf nr-object-bytes-marked)
.
nr-object-bytes-marked
.
(setf nr-object-bytes-sweeped)
.
nr-object-bytes-sweeped
.
scan-contents
.
sweep-some-heap-blocks
.
sweep-some-object-blocks
.
work-done
.
work-left
.
0
0
0
0
The maximum acceptable value for heap-end during the current garbage collection.
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.)
:grow-size
standard-class
.
(setf class-changed-p)
.
class-changed-p
.
class-index
.
(setf class-persistent-slots)
.
class-persistent-slots
.
compute-effective-slot-definition
.
compute-persistent-slot-names
.
direct-slot-definition-class
.
effective-slot-definition-class
.
finalize-inheritance
.
initialize-instance
.
reinitialize-instance
.
rucksack-update-class-index
.
rucksack-update-slot-indexes
.
slot-makunbound-using-class
.
(setf slot-value-using-class)
.
slot-value-using-class
.
validate-superclass
.
validate-superclass
.
(quote nil)
Can be either NIL (for no class index) or T
(for the standard class index). Default value is NIL.
:index
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.
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.
Classes of metaclass PERSISTENT-CLASS automatically inherit from this class.
Initarg | Value |
---|---|
:rucksack | *rucksack* |
This slot is read-only.
All blocks in a simple free list heap have the same size.
Initarg | Value |
---|---|
:nr-free-lists | 1 |
:min-block-size | 16 |
add-to-queue
.
cache-commit
.
cache-count
.
cache-create-object
.
cache-delete-object
.
cache-get-object
.
cache-recover
.
cache-rollback
.
(setf cache-shrink-ratio)
.
cache-shrink-ratio
.
(setf cache-size)
.
cache-size
.
cache-touch-object
.
close-cache
.
close-transaction
.
find-conflicting-transaction
.
heap
.
initialize-instance
.
(setf last-timestamp)
.
last-timestamp
.
load-object
.
make-room-in-cache
.
map-transactions
.
objects
.
open-transaction
.
print-object
.
queue
.
rucksack
.
save-dirty-object
.
save-object
.
schema-table
.
transaction-commit-1
.
transaction-commit-1
.
(setf transaction-id-helper)
.
transaction-id-helper
.
transaction-rollback-1
.
transaction-rollback-1
.
transaction-start-1
.
transaction-start-1
.
transactions
.
undo-object-commit
.
:schema-table
This slot is read-only.
Back pointer to the rucksack.
:rucksack
This slot is read-only.
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.)
:objects
This slot is read-only.
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.
(get-universal-time)
-1
A mapping from transaction ids to
transactions. Contains only open transactions, i.e. transactions that
haven’t been rolled back or committed.
(make-hash-table)
This slot is read-only.
The maximum number of non-dirty objects that will be kept in the cache memory.
:size
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.
0.7
:shrink-ratio
add-rucksack-root
.
class-index-table
.
delete-rucksack-root
.
finish-all-output
.
(setf highest-transaction-id)
.
highest-transaction-id
.
initialize-instance
.
map-rucksack-roots
.
(setf roots-changed-p)
.
roots-changed-p
.
rucksack-add-class-index
.
rucksack-add-slot-index
.
rucksack-cache
.
rucksack-class-index
.
rucksack-commit
.
rucksack-delete-object
.
rucksack-directory
.
rucksack-make-class-index
.
rucksack-map-class
.
rucksack-map-slot
.
rucksack-map-slot-indexes
.
rucksack-maybe-index-changed-slot
.
rucksack-maybe-index-new-object
.
rucksack-remove-class-index
.
rucksack-rollback
.
rucksack-root-p
.
rucksack-roots
.
rucksack-roots-pathname
.
rucksack-slot-index
.
rucksack-update-class-index
.
rucksack-update-slot-indexes
.
slot-index-tables
.
transaction-commit-1
.
transaction-rollback-1
.
transaction-start-1
.
This slot is read-only.
common-lisp
.
:directory
This slot is read-only.
A list with the object ids of all root
objects, i.e. the objects from which the garbage collector can reach
all live objects.
(quote nil)
The highest transaction ID
in the entire rucksack. This is saved together with the roots.
integer
0
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.
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.
:id
This slot is read-only.
A hash-table (from id to object)
containing all objects of which the slot changes have not been written
to disk yet.
(make-hash-table)
:dirty-objects
This slot is read-only.
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.
(make-instance (quote queue:queue))
:dirty-queue
This slot is read-only.
This marker is automatically skipped when read. Handy if you need fixed width fields.
This should never be read as a marker.
The serialization marker for cached objects.
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.
Used for entries in the object table that belong to objects that haven’t been committed to disk yet.
A flag to indicate whether or not transaction-commit collects garbage
The number of octets that are allocated initially for a buffer.
The default initial heap size is 10 MB.
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.
Returns the biggest key in this node or any of its subnodes.
key
.
Check a btree node (and its descendants) for consistency. This is only used for debugging.
Returns three values: a list of added slots, a list of discarded slots and a list of changed (according to SLOT-DEFINITION-EQUAL) slots.
Write object ids of all dirty objects to the commit file, so recovery can do its job if this transaction never completes.
Returns object-id’s cell to the free-list.
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.
Serializes a dotted list by first serializing its length and then all the elements of the list.
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.
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).
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.
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.
Returns the subnode that contains more information for the given key.
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.
Returns a pointer to the cell containing the free list start.
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.
Returns T iff two index specs are equal.
Create one node which contains the elements of both LEFT-NODE and RIGHT-NODE.
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.
Returns two values: a transaction id and a list of object ids (of objects that may be partially committed).
Returns id, nr-slots, schema-id, transaction-id and prev-version (as 5 values).
Returns a list of objects from a file created by SAVE-OBJECTS.
Returns the highest character code in string.
Returns an OBJECT-ID that is not in use.
Returns the position of NODE (as a binding value) in a parent node.
Returns either :free-block, :dead-object, :live-object or :reserved.
Returns the potential number of objects in an object-table. The first potential object-id is number 0.
Let the (previous pointer of the) object in YOUNG-BLOCK point to OLD-BLOCK.
Creates and returns a serializer for a stream. The stream must have element-type (UNSIGNED-BYTE 8)).
Returns the position of the first binding in NODE with a key greater than KEY. Returns nil if there is no such binding.
Returns the next marker (or NIL if we’re at the end of the serializer stream).
Like P-REPLACE, but for vectors with bindings instead of plain vectors (so all indexes must be multiplied by 2).
Returns a list with the pathnames of all Rucksack files in the specified directory.
Returns a list with the names of the indexed direct slots of CLASS.
Returns PLIST with keyword arguments from KEYS removed.
Saves a list with objects to a file, creating the file if necessary. If the file exists, it will be superseded.
Serializes a dotted list by first serializing its length and then all the elements of the list.
Serializes a proper list by first serializing its length and then all the elements of the list.
Returns (1) slot definition and (2) slot name.
Returns the smallest key in this node or any of its subnodes.
The node is (almost) full. Create two new nodes and divide the current node-index over these two new nodes.
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.
schema-table
) (schema schema
)) ¶lazy-cache
)) ¶standard-cache
)) ¶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.
appending-heap
) &key size &allow-other-keys) ¶free-list-heap
) &key size expand) ¶object-table
) object-id block) ¶Returns true iff the object in the block is alive.
free-list-heap
)) ¶free-list-heap
)) ¶free-list-heap
)) ¶Returns the size of the block starting at the
specified position. This includes the size of the block header.
simple-free-list-heap
)) ¶free-list-heap
)) ¶free-list-heap
)) ¶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.
Removes an object-id from the cache and from
the object table, so the object-id can be reused for another object
later.
standard-cache
)) ¶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.
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.
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.
persistent-class
)) ¶standard-rucksack
)) ¶persistent-class
)) ¶automatically generated reader method
persistent-class
)) ¶automatically generated writer method
mark-and-sweep-heap
)) ¶mark-and-sweep-heap
) amount) ¶standard-class
) (object persistent-data
)) ¶persistent-class
) object) ¶persistent-data
)) ¶automatically generated reader method
persistent-data
)) ¶automatically generated writer method
schema-table
) class version &optional persistent-slots) ¶free-list-heap
)) ¶Delete an object from the root set of a rucksack.
standard-rucksack
)) ¶Reads an unsigned-byte from a serializer. EOF-ERROR-P defaults to T.
serialization-buffer
) &optional eof-error-p) ¶serializer
) &optional eof-error-p) ¶stream
) &optional eof-error-p) ¶(eql 192)
) stream) ¶(eql 179)
) stream) ¶(eql 178)
) stream) ¶(eql 177)
) stream) ¶(eql 176)
) stream) ¶(eql 128)
) stream) ¶(eql 144)
) stream) ¶(eql 160)
) stream) ¶(eql 119)
) serializer) ¶(eql 112)
) serializer) ¶(eql 80)
) stream) ¶(eql 82)
) stream) ¶(eql 81)
) stream) ¶(eql 68)
) stream) ¶(eql 67)
) stream) ¶(eql 66)
) stream) ¶(eql 65)
) stream) ¶(eql 64)
) stream) ¶(eql 73)
) stream) ¶(eql 72)
) stream) ¶(eql 71)
) stream) ¶(eql 70)
) stream) ¶(eql 69)
) stream) ¶(eql 52)
) stream) ¶(eql 51)
) stream) ¶(eql 50)
) stream) ¶(eql 49)
) stream) ¶(eql 48)
) stream) ¶(eql 96)
) stream) ¶(eql 100)
) stream) ¶(eql 97)
) stream) ¶(eql 38)
) stream) ¶(eql 33)
) stream) ¶(eql 32)
) stream) ¶(eql 29)
) stream) ¶(eql 28)
) stream) ¶(eql 27)
) stream) ¶(eql 26)
) stream) ¶(eql 25)
) stream) ¶(eql 24)
) stream) ¶(eql 23)
) stream) ¶(eql 22)
) stream) ¶(eql 21)
) stream) ¶(eql 20)
) stream) ¶(eql 19)
) stream) ¶(eql 18)
) stream) ¶(eql 17)
) stream) ¶(eql 16)
) stream) ¶(eql 12)
) stream) ¶(eql 11)
) stream) ¶(eql 10)
) stream) ¶(eql 9)
) stream) ¶(eql 3)
) stream) ¶(eql 2)
) stream) ¶(eql 0)
) stream) ¶standard-transaction
)) ¶A hash-table (from id to object)
containing all objects of which the slot changes have not been written
to disk yet.
schema-table
)) ¶schema-table
)) ¶When dirty, the schema table will be saved at the next commit.
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.
free-list-heap
)) ¶mark-and-sweep-heap
) block-size) ¶free-list-heap
)) ¶The minimum number of bytes that will be used to expand a free-list.
Export all objects in a rucksack to a file. The resulting file can be imported by newer versions of Rucksack.
free-list-heap
)) ¶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.
standard-cache
) (current-transaction standard-transaction
)) ¶schema-table
) object) ¶schema-table
) class) ¶schema-table
) id &key errorp) ¶standard-rucksack
)) ¶mark-and-sweep-heap
)) ¶free-list-heap
)) ¶free-list-heap
)) ¶free-list-heap
) &optional size-class) ¶Returns the first block on the free list of the specified size class.
free-list-heap
) &optional size-class) ¶schema-table
)) ¶garbage-collector
)) ¶garbage-collector
)) ¶A flag to prevent recursive calls to COLLECT-SOME-GARBAGE.
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.)
mark-and-sweep-heap
)) ¶free-list-heap
)) ¶Returns the position of the first block in the heap.
appending-heap
)) ¶free-list-heap
)) ¶schema-table
)) ¶automatically generated reader method
schema-table
)) ¶automatically generated writer method
standard-rucksack
)) ¶standard-rucksack
)) ¶The highest transaction ID
in the entire rucksack. This is saved together with the roots.
mark-and-sweep-heap
)) ¶object-table
)) ¶free-list-heap
)) ¶standard-cache
)) ¶automatically generated reader method
standard-cache
)) ¶automatically generated writer method
mark-and-sweep-heap
) block &key buffer skip-header) ¶appending-heap
)) ¶standard-cache
)) ¶schema-table
) serializer) ¶structure-object
) stream) ¶standard-object
) stream) ¶lazy-cache
)) ¶standard-cache
)) ¶Calls a unary function for each value in a btree-set.
mark-and-sweep-heap
) (object-id integer
)) ¶mark-and-sweep-heap
) amount) ¶mark-and-sweep-heap
) amount) ¶mark-and-sweep-heap
)) ¶mark-and-sweep-heap
)) ¶The maximum acceptable value for heap-end during the current garbage collection.
mark-and-sweep-heap
)) ¶Returns the maximum possible amount of work that the garbage collector needs to do for one complete garbage collection.
schema-table
) class) ¶free-list-heap
)) ¶The size of the smallest blocks. This must be a power of 2.
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.
free-list-heap
)) ¶automatically generated reader method
mark-and-sweep-heap
)) ¶Returns the number of heap bytes that must be handled by the garbage collector.
mark-and-sweep-heap
)) ¶automatically generated reader method
mark-and-sweep-heap
)) ¶automatically generated writer method
mark-and-sweep-heap
)) ¶automatically generated reader method
mark-and-sweep-heap
)) ¶automatically generated writer method
mark-and-sweep-heap
)) ¶Returns the number of object bytes that must be handled by the garbage collector.
mark-and-sweep-heap
)) ¶automatically generated reader method
mark-and-sweep-heap
)) ¶automatically generated writer method
mark-and-sweep-heap
)) ¶automatically generated reader method
mark-and-sweep-heap
)) ¶automatically generated writer method
garbage-collector
)) ¶automatically generated reader method
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.)
schema-table
) class) ¶transaction-conflict
)) ¶persistent-cons
)) ¶(eql nil)
)) ¶persistent-data
) &rest args) ¶persistent-data
) value &rest args) ¶garbage-collector
)) ¶garbage-collector
)) ¶A list of object-ids of roots that must be kept alive.
standard-rucksack
)) ¶automatically generated reader method
standard-rucksack
)) ¶automatically generated writer method
Returns true iff OBJECT is a member of the root set of a rucksack.
standard-rucksack
)) ¶standard-rucksack
)) ¶serial-transaction-rucksack
)) ¶automatically generated reader method
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.
standard-rucksack
) (class persistent-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.
standard-rucksack
) (class persistent-class
)) ¶standard-cache
) (transaction standard-transaction
) object-id &key schema) ¶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.
schema-table
)) ¶schema-table
)) ¶schema-table
)) ¶Scans the object in the serialization buffer, marking or evacuating (depending on garbage collector type) any child objects.
garbage-collector
)) ¶Skips an unsigned byte from the serializer.
serialization-buffer
) &optional gc) ¶serializer
) &optional gc) ¶stream
) &optional gc) ¶(eql 192)
) (buffer serialization-buffer
) (gc mark-and-sweep-heap
)) ¶(eql 128)
) stream gc) ¶(eql 144)
) stream gc) ¶(eql 160)
) stream gc) ¶(eql 119)
) serializer gc) ¶(eql 113)
) serializer gc) ¶(eql 112)
) serializer gc) ¶(eql 80)
) stream gc) ¶(eql 82)
) stream gc) ¶(eql 81)
) stream gc) ¶(eql 68)
) stream gc) ¶(eql 67)
) stream gc) ¶(eql 66)
) stream gc) ¶(eql 65)
) stream gc) ¶(eql 64)
) stream gc) ¶(eql 73)
) stream gc) ¶(eql 72)
) stream gc) ¶(eql 71)
) stream gc) ¶(eql 70)
) stream gc) ¶(eql 69)
) stream gc) ¶(eql 52)
) stream gc) ¶(eql 51)
) stream gc) ¶(eql 50)
) stream gc) ¶(eql 49)
) stream gc) ¶(eql 48)
) stream gc) ¶(eql 96)
) stream gc) ¶(eql 100)
) stream gc) ¶(eql 97)
) stream gc) ¶(eql 38)
) stream gc) ¶(eql 33)
) stream gc) ¶(eql 32)
) stream gc) ¶(eql 29)
) stream gc) ¶(eql 28)
) stream gc) ¶(eql 27)
) stream gc) ¶(eql 26)
) stream gc) ¶(eql 25)
) stream gc) ¶(eql 24)
) stream gc) ¶(eql 23)
) stream gc) ¶(eql 22)
) stream gc) ¶(eql 21)
) stream gc) ¶(eql 20)
) stream gc) ¶(eql 19)
) stream gc) ¶(eql 18)
) stream gc) ¶(eql 17)
) stream gc) ¶(eql 16)
) stream gc) ¶serialization-buffer
) gc) ¶serialization-buffer
)) ¶automatically generated reader method
serialization-buffer
)) ¶automatically generated writer method
standard-cache
)) ¶automatically generated reader method
schema-table
)) ¶schema-table
)) ¶A mapping from a schema id to a schema.
schema-table
)) ¶A mapping from class names to a list (most recent version first) of schemas.
schema-table
)) ¶automatically generated reader method
schema-table
)) ¶automatically generated writer method
garbage-collector
)) ¶automatically generated reader method
Writes a serialized version of an object to the stream in a serializer.
persistent-data
) stream) ¶persistent-object
) stream) ¶hash-table
) stream) ¶pathname
) stream) ¶array
) stream) ¶structure-object
) serializer) ¶standard-object
) serializer) ¶symbol
) stream) ¶string
) stream) ¶character
) stream) ¶cons
) stream) ¶complex
) stream) ¶float
) stream) ¶rational
) stream) ¶integer
) stream) ¶(eql t)
) stream) ¶(eql nil)
) stream) ¶Writes an unsigned-byte to a serializer.
serialization-buffer
)) ¶integer
) (serializer serializer
)) ¶integer
) (stream stream
)) ¶serializer
)) ¶An (unsigned-byte 8) stream.
Removes a value from a set-btree and returns the
modified set-btree. If the value is not present in the set, this
function signals an error if IF-DOES-NOT-EXIST is :ERROR (if
IF-DOES-NOT-EXIST is :IGNORE, it returns nil).
Returns true iff a btree-set is empty.
Add a value to a set-btree. This will modify the set-btree.
Returns VALUE if it is present in the btree-set SET. Otherwise the result depends on the ERRORP option: if ERRORP is true, a btree-search-error is signalled; otherwise, DEFAULT-VALUE is returned.
Returns the number of values in a btree-set.
free-list-heap
)) ¶Returns the (zero-indexed) number of a free-list that has blocks with sizes at least as big as the specified size.
free-list-heap
)) ¶slot-error
)) ¶slot-error
)) ¶duplicate-slot-value
)) ¶slot-error
)) ¶persistent-slot-mixin
)) ¶An index spec designator for indexed slots, NIL for non-indexed slots. Default value is NIL.
standard-rucksack
)) ¶persistent-slot-mixin
)) ¶T for persistent slots, NIL for transient slots. Default value is T.
persistent-slot-mixin
)) ¶Only relevant for indexed slots. Can be
either NIL (slot values are not unique), T (slot values are unique,
and an error will be signaled for attempts to add a duplicate slot
value) or :NO-ERROR (slot values are unique, but no error will be
signaled for attempts to add a duplicate slot value). :NO-ERROR
should only be used when speed is critical.
The default value is NIL.
garbage-collector
)) ¶automatically generated reader method
garbage-collector
)) ¶automatically generated writer method
mark-and-sweep-heap
) (amount integer
)) ¶mark-and-sweep-heap
) (amount integer
)) ¶If the given transaction has modified the object with the given object id, this function returns the modified object. Otherwise it returns nil.
standard-transaction
) object-id) ¶standard-cache
)) ¶automatically generated reader method
standard-cache
)) ¶automatically generated writer method
standard-transaction
)) ¶Returns true iff transaction A is older than transaction B.
standard-transaction
) (b standard-transaction
)) ¶standard-transaction
) (cache standard-cache
) (rucksack standard-rucksack
)) ¶standard-transaction
) (cache standard-cache
) (rucksack serial-transaction-rucksack
)) ¶standard-transaction
) object object-id) ¶standard-cache
)) ¶A mapping from transaction ids to
transactions. Contains only open transactions, i.e. transactions that
haven’t been rolled back or committed.
If the object version list contains a version with
the given transaction-id, unhook that version from the list. Returns
T if the object was already comitted, otherwise nil.
standard-cache
) partial-transaction-id object-id) ¶mark-and-sweep-heap
)) ¶mark-and-sweep-heap
)) ¶Returns the amount of work that needs to be done (i.e. octets that must be ’collected’) before the current garbage collection has finished.
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.
(quote nil)
:bindings
The number of key/value bindings in the index vector.
0
:leaf-p
This slot is read-only.
(make-array rucksack::*default-buffer-size* :adjustable t :fill-pointer 0 :element-type (quote (unsigned-byte 8)))
:object-table
This slot is read-only.
(make-instance (quote rucksack::serialization-buffer))
This slot is read-only.
A list of object-ids of roots that must be kept alive.
(quote nil)
:roots
(member :starting :finishing :ready :copying :marking-object-table :scanning :sweeping-heap :sweeping-object-table)
:ready
A flag to prevent recursive calls to COLLECT-SOME-GARBAGE.
:spec
This slot is read-only.
:unique-keys-p
This slot is read-only.
The actual index data structure (e.g. a btree).
:data
This slot is read-only.
A lazy cache doesn’t bother with fancy mechanisms
for deciding which objects to remove from the cache. It just fills
the cache until maximum capacity (i.e. CACHE-SIZE) and then clears
the entire cache at once. Advantages of this could be that it uses
less time and less memory to do its work. Disadvantage is that it’s
very stupid about the objects it should try to keep in memory.
A file mapping object identifiers to their file-positions in the ’real’ heap.
persistent-slot-mixin
.
standard-direct-slot-definition
.
persistent-slot-mixin
.
standard-effective-slot-definition
.
A persistent set of persistent-objects, implemented as a btree.
Initarg | Value |
---|---|
:key-key | (quote object-id) |
T for persistent slots, NIL for transient slots. Default value is T.
t
:persistence
This slot is read-only.
An index spec designator for indexed slots, NIL for non-indexed slots. Default value is NIL.
:index
This slot is read-only.
Only relevant for indexed slots. Can be
either NIL (slot values are not unique), T (slot values are unique,
and an error will be signaled for attempts to add a duplicate slot
value) or :NO-ERROR (slot values are unique, but no error will be
signaled for attempts to add a duplicate slot value). :NO-ERROR
should only be used when speed is critical.
The default value is NIL.
:unique
This slot is read-only.
Proxies are some kind of in-memory forwarding pointer to data in the cache. They are never saved on disk.
A unique number that identifies a schema.
:id
This slot is read-only.
common-lisp
.
:class-name
This slot is read-only.
The combination of class-name and version number also uniquely identifies a schema.
0
:version
This slot is read-only.
A list with the names of all
persistent slots that were added by the most recent version (compared
to this version).
(quote nil)
A list with the names of all
persistent slots that were discarded by the most recent version
(compared to this version).
(quote nil)
A list with the names of all persistent effective slots.
:persistent-slot-names
add-schema
.
create-schema
.
(setf dirty-p)
.
dirty-p
.
find-or-create-schema-for-object
.
find-schema-for-class
.
find-schema-for-id
.
fresh-schema-id
.
(setf highest-schema-id)
.
highest-schema-id
.
load-slots
.
maybe-update-schemas
.
old-schemas-for-class
.
save-schema-table
.
save-schema-table-if-necessary
.
saved-slots
.
(setf schema-table-by-id)
.
schema-table-by-id
.
schema-table-by-name
.
(setf schema-table-pathname)
.
schema-table-pathname
.
common-lisp
.
:pathname
A mapping from class names to a list (most recent version first) of schemas.
(make-hash-table)
This slot is read-only.
A mapping from a schema id to a schema.
(make-hash-table)
0
When dirty, the schema table will be saved at the next commit.
A serial transaction rucksack allows only one active transaction at a time.
(rucksack::make-lock :name "rucksack transaction lock")
This slot is read-only.
0
An (unsigned-byte 8) stream.
common-lisp
.
:stream
This slot is read-only.
A special kind of btree node, used to implement set btrees.
A persistent set of objects, implemented as a btree.
Initarg | Value |
---|---|
:node-class | (quote set-bnode) |
:max-node-size | 8 |
:unique-keys-p | t |
Jump to: | (
A B C D E F G H I J K L M N O P Q R S T U V W |
---|
Jump to: | (
A B C D E F G H I J K L M N O P Q R S T U V W |
---|
Jump to: | *
+
A B C D E G H I K L M N O P Q R S T U V |
---|
Jump to: | *
+
A B C D E G H I K L M N O P Q R S T U V |
---|
Jump to: | A B C D E F G H I L M O P Q R S T |
---|
Jump to: | A B C D E F G H I L M O P Q R S T |
---|