This is the luckless Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Sep 15 05:58:33 2024 GMT+0.
The main system appears first, followed by any subsystem dependency.
luckless
Lockless data structures
Yukari Hafner <shinmera@tymoon.eu>
Yukari Hafner <shinmera@tymoon.eu>
(GIT https://github.com/Shinmera/luckless.git)
zlib
1.0.0
atomics
(system).
documentation-utils
(system).
package.lisp
(file).
list.lisp
(file).
cat.lisp
(file).
hashtable.lisp
(file).
queue.lisp
(file).
documentation.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
luckless/luckless.asd
luckless/package.lisp
luckless/list.lisp
luckless/cat.lisp
luckless/hashtable.lisp
luckless/queue.lisp
luckless/documentation.lisp
luckless/list.lisp
package.lisp
(file).
luckless
(system).
%make-caslist
(function).
car*
(reader).
(setf car*)
(writer).
cdr*
(reader).
(setf cdr*)
(writer).
cons*
(function).
cons*
(structure).
cons*-p
(function).
copy-caslist
(function).
copy-cons*
(function).
head
(reader).
(setf head)
(writer).
search-cons
(function).
tail
(reader).
(setf tail)
(writer).
valid
(reader).
(setf valid)
(writer).
luckless/cat.lisp
list.lisp
(file).
luckless
(system).
%cat-fuzzy-sum-cache
(reader).
(setf %cat-fuzzy-sum-cache)
(writer).
%cat-fuzzy-time
(reader).
(setf %cat-fuzzy-time)
(writer).
%cat-next
(reader).
(setf %cat-next)
(writer).
%cat-resizers
(reader).
(setf %cat-resizers)
(writer).
%cat-sum-cache
(reader).
(setf %cat-sum-cache)
(writer).
%cat-table
(reader).
(setf %cat-table)
(writer).
%counter-cat
(reader).
(setf %counter-cat)
(writer).
%make-cat
(function).
cat
(structure).
cat-p
(function).
cat-sum
(function).
cat-sum~
(function).
copy-cat
(function).
copy-counter
(function).
counter
(structure).
counter-add-if-mask
(function).
counter-p
(function).
counter-value
(function).
(setf counter-value)
(function).
counter-value~
(function).
decf-counter
(function).
global-hash
(constant).
incf-counter
(function).
make-cat
(function).
make-counter
(function).
luckless/hashtable.lisp
cat.lisp
(file).
luckless
(system).
castable
(structure).
castable-p
(function).
clrhash
(function).
count
(function).
(setf gethash)
(compiler macro).
gethash
(function).
(setf gethash)
(function).
hash-function
(function).
make-castable
(function).
make-load-form
(method).
maphash
(function).
print-object
(method).
put-if-absent
(function).
put-if-equal
(function).
put-if-present
(function).
remhash
(function).
size
(function).
test
(function).
try-remhash
(function).
%castable-hasher
(reader).
(setf %castable-hasher)
(writer).
%castable-kvs
(reader).
(setf %castable-kvs)
(writer).
%castable-last-resize
(reader).
(setf %castable-last-resize)
(writer).
%castable-reprobes
(reader).
(setf %castable-reprobes)
(writer).
%castable-test
(reader).
(setf %castable-test)
(writer).
%chm-copy-done
(reader).
(setf %chm-copy-done)
(writer).
%chm-copy-idx
(reader).
(setf %chm-copy-idx)
(writer).
%chm-newkvs
(reader).
(setf %chm-newkvs)
(writer).
%chm-resizers
(reader).
(setf %chm-resizers)
(writer).
%chm-size
(reader).
(setf %chm-size)
(writer).
%chm-slots
(reader).
(setf %chm-slots)
(writer).
%gethash
(function).
%help-copy
(function).
%make-castable
(function).
%put-if-match
(function).
*maximum-size*
(special variable).
cas-key
(function).
cas-newkvs
(function).
cas-val
(function).
chm
(function).
chm
(structure).
chm-p
(function).
chm-size
(function).
chm-slots
(function).
copy-castable
(function).
copy-check-and-promote
(function).
copy-chm
(function).
copy-prime
(function).
copy-slot
(function).
copy-slot-and-check
(function).
determine-hasher
(function).
hash
(function).
hashes
(function).
help-copy
(function).
key
(function).
keyeq
(function).
len
(function).
make-chm
(function).
match-any
(constant).
max-spin
(constant).
min-size
(constant).
min-size-log
(constant).
no-match-old
(constant).
no-value
(constant).
prime
(function).
prime
(structure).
prime-p
(function).
prime-value
(reader).
(setf prime-value)
(writer).
put-if-match
(function).
rehash
(function).
reprobe-limit
(constant).
reprobe-limit
(function).
reprobes
(function).
resize
(function).
table-full-p
(function).
tombprime
(constant).
tombstone
(constant).
val
(function).
luckless/queue.lisp
hashtable.lisp
(file).
luckless
(system).
discard
(function).
length
(function).
make-queue
(function).
mapc
(function).
print-object
(method).
push
(function).
queue
(structure).
queue-p
(function).
%make-queue
(function).
copy-queue
(function).
queue-allocation-index
(reader).
(setf queue-allocation-index)
(writer).
queue-elements
(reader).
(setf queue-elements)
(writer).
queue-read-index
(reader).
(setf queue-read-index)
(writer).
queue-reallocating
(reader).
(setf queue-reallocating)
(writer).
queue-write-index
(reader).
(setf queue-write-index)
(writer).
luckless/documentation.lisp
queue.lisp
(file).
luckless
(system).
Packages are listed by definition order.
org.shirakumo.luckless.list
common-lisp
.
%make-caslist
(function).
car*
(reader).
(setf car*)
(writer).
cdr*
(reader).
(setf cdr*)
(writer).
cons*
(function).
cons*
(structure).
cons*-p
(function).
copy-caslist
(function).
copy-cons*
(function).
head
(reader).
(setf head)
(writer).
search-cons
(function).
tail
(reader).
(setf tail)
(writer).
valid
(reader).
(setf valid)
(writer).
org.shirakumo.luckless.queue
common-lisp
.
%make-queue
(function).
copy-queue
(function).
queue-allocation-index
(reader).
(setf queue-allocation-index)
(writer).
queue-elements
(reader).
(setf queue-elements)
(writer).
queue-read-index
(reader).
(setf queue-read-index)
(writer).
queue-reallocating
(reader).
(setf queue-reallocating)
(writer).
queue-write-index
(reader).
(setf queue-write-index)
(writer).
org.shirakumo.luckless.hashtable
common-lisp
.
castable
(structure).
castable-p
(function).
clrhash
(function).
count
(function).
(setf gethash)
(compiler macro).
gethash
(function).
(setf gethash)
(function).
hash-function
(function).
make-castable
(function).
maphash
(function).
put-if-absent
(function).
put-if-equal
(function).
put-if-present
(function).
remhash
(function).
size
(function).
test
(function).
try-remhash
(function).
%castable-hasher
(reader).
(setf %castable-hasher)
(writer).
%castable-kvs
(reader).
(setf %castable-kvs)
(writer).
%castable-last-resize
(reader).
(setf %castable-last-resize)
(writer).
%castable-reprobes
(reader).
(setf %castable-reprobes)
(writer).
%castable-test
(reader).
(setf %castable-test)
(writer).
%cat-fuzzy-sum-cache
(reader).
(setf %cat-fuzzy-sum-cache)
(writer).
%cat-fuzzy-time
(reader).
(setf %cat-fuzzy-time)
(writer).
%cat-next
(reader).
(setf %cat-next)
(writer).
%cat-resizers
(reader).
(setf %cat-resizers)
(writer).
%cat-sum-cache
(reader).
(setf %cat-sum-cache)
(writer).
%cat-table
(reader).
(setf %cat-table)
(writer).
%chm-copy-done
(reader).
(setf %chm-copy-done)
(writer).
%chm-copy-idx
(reader).
(setf %chm-copy-idx)
(writer).
%chm-newkvs
(reader).
(setf %chm-newkvs)
(writer).
%chm-resizers
(reader).
(setf %chm-resizers)
(writer).
%chm-size
(reader).
(setf %chm-size)
(writer).
%chm-slots
(reader).
(setf %chm-slots)
(writer).
%counter-cat
(reader).
(setf %counter-cat)
(writer).
%gethash
(function).
%help-copy
(function).
%make-castable
(function).
%make-cat
(function).
%put-if-match
(function).
*maximum-size*
(special variable).
cas-key
(function).
cas-newkvs
(function).
cas-val
(function).
cat
(structure).
cat-p
(function).
cat-sum
(function).
cat-sum~
(function).
chm
(function).
chm
(structure).
chm-p
(function).
chm-size
(function).
chm-slots
(function).
copy-castable
(function).
copy-cat
(function).
copy-check-and-promote
(function).
copy-chm
(function).
copy-counter
(function).
copy-prime
(function).
copy-slot
(function).
copy-slot-and-check
(function).
counter
(structure).
counter-add-if-mask
(function).
counter-p
(function).
counter-value
(function).
(setf counter-value)
(function).
counter-value~
(function).
decf-counter
(function).
determine-hasher
(function).
global-hash
(constant).
hash
(function).
hashes
(function).
help-copy
(function).
incf-counter
(function).
key
(function).
keyeq
(function).
len
(function).
make-cat
(function).
make-chm
(function).
make-counter
(function).
match-any
(constant).
max-spin
(constant).
min-size
(constant).
min-size-log
(constant).
no-match-old
(constant).
no-value
(constant).
prime
(function).
prime
(structure).
prime-p
(function).
prime-value
(reader).
(setf prime-value)
(writer).
put-if-match
(function).
rehash
(function).
reprobe-limit
(constant).
reprobe-limit
(function).
reprobes
(function).
resize
(function).
table-full-p
(function).
tombprime
(constant).
tombstone
(constant).
val
(function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Returns a new CASLIST containing ELEMENTS.
See CASLIST (type)
Returns T if the object is a CASLIST
See CASLIST (type)
Returns true if the object is a CASTABLE
See CASTABLE (type)
Clears the hash table removing all entries.
Returns the current number of entries in the table.
See SIZE
Removes the first occurrence of VALUE in the list.
Discards all elements currently on the queue.
Returns the first element in the list, or NIL.
Accesses an entry in the hash table.
If no entry was present, DEFAULT is returned.
IF-EXISTS can be one of the following:
:OVERWRITE — Replace the entry’s value
:ERROR — Signal an error
NIL — Do nothing
IF-DOES-NOT-EXIST can be one of the following:
:OVERWRITE — Set the entry’s value
:ERROR — Signal an error
NIL — Do nothing
This is safe to call from any number of threads.
Returns the hashing function used.
Returns the number of elements in the list.
Returns the number of elements currently set in the queue.
Create a new castable.
TEST should be one of EQ EQL EQUAL EQUALP
SIZE should be a base size to start the table with. May be modified by
the implementation.
HASH-FUNCTION should be a function of one argument that returns a
integer used as a hash for the argument. Unless explicitly passed,
will determine the hash function to use based on TEST.
See CASTABLE (type)
Returns a new QUEUE.
The INITIAL-SIZE is a hint as to the capacity of the queue before it
needs to resize.
See QUEUE (type)
Calls FUNCTION with each element in the list.
Returns the list.
Maps FUNCTION over all elements in the queue.
Note that this will also consume all elements, leaving the queue empty after iteration.
Maps over the hash table.
FUNCTION must accept two arguments, the KEY and the VALUE of the entry currently being mapped.
Returns T if the VALUE occurs at least once in the list.
Returns the N-th element in the list, or NIL.
Pushes a new element to the front of the list.
Pushes ELEMENT onto the queue.
Sets the entry IFF the entry does not exist yet.
Sets the entry IFF the entry already exists and its current value is the specified old-value.
Sets the entry IFF the entry already exists.
Returns T if the object is a QUEUE
Removes an entry from the hash table.
Returns T if there was an entry in the table.
This is safe to call from any number of threads.
Returns the current capacity of the table.
See COUNT
Returns the equality test function.
Turns the CASLIST in to a standard chain of CONSes.
Removes the entry form the table IFF the value is still the specified one.
A lock-free linked list.
It is safe to add and remove entries from any number of threads
simultaneously.
See CASLIST (function)
See CASLIST-P
See TO-LIST
See MAPC
See FIRST
See NTH
See LENGTH
See PUSH
See DELETE
See MEMBER
structure-object
.
org.shirakumo.luckless.list::cons*
(org.shirakumo.luckless.list::cons* nil nil)
head
.
A lock-free hash-table.
It is safe to set entries from any number of threads simultaneously.
Note that the hash table will never shrink, even if it is cleared or
entries are removed from it. If you need to shrink the table, discard
it and create a new one instead.
See MAKE-CASTABLE
See CASTABLE-P
See SIZE
See COUNT
See TEST
See HASH-FUNCTION
See GETHASH
See REMHASH
See TRY-REMHASH
See PUT-IF-ABSENT
See PUT-IF-EQUAL
See PUT-IF-PRESENT
See CLRHASH
See MAPHASH
structure-object
.
simple-vector
(error "no kvs?")
fixnum
(error "no last-resize?")
org.shirakumo.luckless.hashtable::counter
(org.shirakumo.luckless.hashtable::make-counter)
(function (t t) boolean)
(error "no test?")
(function (t) fixnum)
(error "no hasher?")
A lock-free multiple-writer single-reader queue.
This queue is optimised to allow many writer threads at once and a
single, but efficient-to-iterate reader thread. The queue can resize
to fit more elements, but remains O(1) for PUSH.
See MAKE-QUEUE
See QUEUE-P
See PUSH
See DISCARD
See MAPC
See LENGTH
structure-object
.
simple-vector
(unsigned-byte 32)
0
(unsigned-byte 32)
0
(unsigned-byte 32)
0
simple-vector
kvs
.
test
.
next
.
size
.
cat
.
structure-object
.
fixnum
0
fixnum
most-negative-fixnum
fixnum
0
fixnum
0
simple-vector
structure-object
.
org.shirakumo.luckless.hashtable::counter
(error "no size?")
org.shirakumo.luckless.hashtable::counter
(org.shirakumo.luckless.hashtable::make-counter)
(or null simple-vector)
fixnum
0
fixnum
0
fixnum
0
structure-object
.
org.shirakumo.luckless.hashtable::cat
(org.shirakumo.luckless.hashtable::make-cat nil 4 0)
structure-object
.
Jump to: | %
(
C D F G H I K L M N P Q R S T V |
---|
Jump to: | %
(
C D F G H I K L M N P Q R S T V |
---|
Jump to: | *
A C E F G H K L M N R S T V W |
---|
Jump to: | *
A C E F G H K L M N R S T V W |
---|
Jump to: | C D F H L O P Q S |
---|
Jump to: | C D F H L O P Q S |
---|