The luckless Reference Manual

This is the luckless Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 17:11:50 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 luckless

Lockless data structures

Maintainer

Yukari Hafner <>

Author

Yukari Hafner <>

Home Page

https://shinmera.github.io/luckless/

Source Control

(GIT https://github.com/Shinmera/luckless.git)

Bug Tracker

https://github.com/Shinmera/luckless/issues

License

zlib

Version

1.0.0

Dependencies
  • atomics (system).
  • documentation-utils (system).
Source

luckless.asd.

Child Components

3 Files

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


3.1 Lisp


3.1.1 luckless/luckless.asd

Source

luckless.asd.

Parent Component

luckless (system).

ASDF Systems

luckless.


3.1.2 luckless/package.lisp

Source

luckless.asd.

Parent Component

luckless (system).

Packages

3.1.3 luckless/list.lisp

Dependency

package.lisp (file).

Source

luckless.asd.

Parent Component

luckless (system).

Public Interface
Internals

3.1.4 luckless/cat.lisp

Dependency

list.lisp (file).

Source

luckless.asd.

Parent Component

luckless (system).

Internals

3.1.5 luckless/hashtable.lisp

Dependency

cat.lisp (file).

Source

luckless.asd.

Parent Component

luckless (system).

Public Interface
Internals

3.1.6 luckless/queue.lisp

Dependency

hashtable.lisp (file).

Source

luckless.asd.

Parent Component

luckless (system).

Public Interface
Internals

3.1.7 luckless/documentation.lisp

Dependency

queue.lisp (file).

Source

luckless.asd.

Parent Component

luckless (system).


4 Packages

Packages are listed by definition order.


4.1 org.shirakumo.luckless.list

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

4.2 org.shirakumo.luckless.queue

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

4.3 org.shirakumo.luckless.hashtable

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

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


5.1 Public Interface


5.1.1 Compiler macros

Compiler Macro: (setf gethash) (key table &optional default &key if-exists if-does-not-exist)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.


5.1.2 Ordinary functions

Function: caslist (&rest values)

Returns a new CASLIST containing ELEMENTS.

See CASLIST (type)

Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: caslist-p (object)

Returns T if the object is a CASLIST

See CASLIST (type)

Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: castable-p (object)

Returns true if the object is a CASTABLE

See CASTABLE (type)

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: clrhash (table)

Clears the hash table removing all entries.

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: count (table)

Returns the current number of entries in the table.

See SIZE

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: delete (value list)

Removes the first occurrence of VALUE in the list.

Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: discard (queue)

Discards all elements currently on the queue.

Package

org.shirakumo.luckless.queue.

Source

queue.lisp.

Function: first (list)

Returns the first element in the list, or NIL.

Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: gethash (key table &optional default)

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.

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: (setf gethash) (key table &optional default &key if-exists if-does-not-exist)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: hash-function (table)

Returns the hashing function used.

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: length (list)

Returns the number of elements in the list.

Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: length (queue)

Returns the number of elements currently set in the queue.

Package

org.shirakumo.luckless.queue.

Source

queue.lisp.

Function: make-castable (&key test size hash-function)

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)

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: make-queue (&optional initial-size)

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)

Package

org.shirakumo.luckless.queue.

Source

queue.lisp.

Function: mapc (function list)

Calls FUNCTION with each element in the list.

Returns the list.

Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: mapc (function queue)

Maps FUNCTION over all elements in the queue.

Note that this will also consume all elements, leaving the queue empty after iteration.

Package

org.shirakumo.luckless.queue.

Source

queue.lisp.

Function: maphash (function table)

Maps over the hash table.

FUNCTION must accept two arguments, the KEY and the VALUE of the entry currently being mapped.

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: member (value list)

Returns T if the VALUE occurs at least once in the list.

Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: nth (n list)

Returns the N-th element in the list, or NIL.

Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: push (value list)

Pushes a new element to the front of the list.

Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: push (element queue)

Pushes ELEMENT onto the queue.

Package

org.shirakumo.luckless.queue.

Source

queue.lisp.

Function: put-if-absent (table key value)

Sets the entry IFF the entry does not exist yet.

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: put-if-equal (table key new-value old-value)

Sets the entry IFF the entry already exists and its current value is the specified old-value.

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: put-if-present (table key value)

Sets the entry IFF the entry already exists.

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: queue-p (object)

Returns T if the object is a QUEUE

Package

org.shirakumo.luckless.queue.

Source

queue.lisp.

Function: remhash (key table)

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.

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: size (table)

Returns the current capacity of the table.

See COUNT

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: test (table)

Returns the equality test function.

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: to-list (list)

Turns the CASLIST in to a standard chain of CONSes.

Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: try-remhash (table key val)

Removes the entry form the table IFF the value is still the specified one.

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.


5.1.3 Standalone methods

Method: make-load-form ((prime prime) &optional environment)
Source

hashtable.lisp.

Method: print-object ((list caslist) stream)
Source

list.lisp.

Method: print-object ((cons cons*) stream)
Source

list.lisp.

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

queue.lisp.

Method: print-object ((table castable) stream)
Source

hashtable.lisp.


5.1.4 Structures

Structure: caslist

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

Package

org.shirakumo.luckless.list.

Source

list.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: head
Type

org.shirakumo.luckless.list::cons*

Initform

(org.shirakumo.luckless.list::cons* nil nil)

Readers

head.

Writers

(setf head).

Slot: tail
Type

org.shirakumo.luckless.list::cons*

Initform

(org.shirakumo.luckless.list::cons* nil nil)

Readers

tail.

Writers

(setf tail).

Structure: castable

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

Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: kvs
Type

simple-vector

Initform

(error "no kvs?")

Readers

%castable-kvs.

Writers

(setf %castable-kvs).

Slot: last-resize
Type

fixnum

Initform

(error "no last-resize?")

Readers

%castable-last-resize.

Writers

(setf %castable-last-resize).

Slot: reprobes
Type

org.shirakumo.luckless.hashtable::counter

Initform

(org.shirakumo.luckless.hashtable::make-counter)

Readers

%castable-reprobes.

Writers

(setf %castable-reprobes).

Slot: test
Type

(function (t t) boolean)

Initform

(error "no test?")

Readers

%castable-test.

Writers

(setf %castable-test).

Slot: hasher
Type

(function (t) fixnum)

Initform

(error "no hasher?")

Readers

%castable-hasher.

Writers

(setf %castable-hasher).

Structure: queue

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

Package

org.shirakumo.luckless.queue.

Source

queue.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: elements
Type

simple-vector

Readers

queue-elements.

Writers

(setf queue-elements).

Slot: write-index
Type

(unsigned-byte 32)

Initform

0

Readers

queue-write-index.

Writers

(setf queue-write-index).

Slot: allocation-index
Type

(unsigned-byte 32)

Initform

0

Readers

queue-allocation-index.

Writers

(setf queue-allocation-index).

Slot: read-index
Type

(unsigned-byte 32)

Initform

0

Readers

queue-read-index.

Writers

(setf queue-read-index).

Slot: reallocating
Type

simple-vector

Readers

queue-reallocating.

Writers

(setf queue-reallocating).


5.2 Internals


5.2.1 Constants

Constant: global-hash
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Constant: match-any
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Constant: max-spin
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Constant: min-size
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Constant: min-size-log
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Constant: no-match-old
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Constant: no-value
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Constant: reprobe-limit
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Constant: tombprime
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Constant: tombstone
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.


5.2.2 Special variables

Special Variable: *maximum-size*
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.


5.2.3 Ordinary functions

Reader: %castable-hasher (instance)
Writer: (setf %castable-hasher) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Target Slot

hasher.

Reader: %castable-kvs (instance)
Writer: (setf %castable-kvs) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Target Slot

kvs.

Reader: %castable-last-resize (instance)
Writer: (setf %castable-last-resize) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Target Slot

last-resize.

Reader: %castable-reprobes (instance)
Writer: (setf %castable-reprobes) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Target Slot

reprobes.

Reader: %castable-test (instance)
Writer: (setf %castable-test) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Target Slot

test.

Reader: %cat-fuzzy-sum-cache (instance)
Writer: (setf %cat-fuzzy-sum-cache) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Target Slot

fuzzy-sum-cache.

Reader: %cat-fuzzy-time (instance)
Writer: (setf %cat-fuzzy-time) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Target Slot

fuzzy-time.

Reader: %cat-next (instance)
Writer: (setf %cat-next) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Target Slot

next.

Reader: %cat-resizers (instance)
Writer: (setf %cat-resizers) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Target Slot

resizers.

Reader: %cat-sum-cache (instance)
Writer: (setf %cat-sum-cache) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Target Slot

sum-cache.

Reader: %cat-table (instance)
Writer: (setf %cat-table) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Target Slot

table.

Reader: %chm-copy-done (instance)
Writer: (setf %chm-copy-done) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Target Slot

copy-done.

Reader: %chm-copy-idx (instance)
Writer: (setf %chm-copy-idx) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Target Slot

copy-idx.

Reader: %chm-newkvs (instance)
Writer: (setf %chm-newkvs) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Target Slot

newkvs.

Reader: %chm-resizers (instance)
Writer: (setf %chm-resizers) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Target Slot

resizers.

Reader: %chm-size (instance)
Writer: (setf %chm-size) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Target Slot

size.

Reader: %chm-slots (instance)
Writer: (setf %chm-slots) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Target Slot

slots.

Reader: %counter-cat (instance)
Writer: (setf %counter-cat) (instance)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Target Slot

cat.

Function: %gethash (table kvs key fullhash)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: %help-copy (chm table oldkvs copy-all)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: %make-caslist ()
Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: %make-castable (kvs last-resize test hasher)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: %make-cat (next table)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Function: %make-queue (elements reallocating)
Package

org.shirakumo.luckless.queue.

Source

queue.lisp.

Function: %put-if-match (table kvs key put exp)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Reader: car* (instance)
Writer: (setf car*) (instance)
Package

org.shirakumo.luckless.list.

Source

list.lisp.

Target Slot

car*.

Function: cas-key (kvs idx old key)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: cas-newkvs (chm newkvs)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: cas-val (kvs idx old val)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: cat-p (object)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Function: cat-sum (cat mask)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Function: cat-sum~ (cat mask)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Reader: cdr* (instance)
Writer: (setf cdr*) (instance)
Package

org.shirakumo.luckless.list.

Source

list.lisp.

Target Slot

cdr*.

Function: chm (kvs)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: chm-p (object)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: chm-size (chm)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: chm-slots (chm)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: cons* (car* cdr*)
Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: cons*-p (object)
Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: copy-caslist (instance)
Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: copy-castable (instance)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: copy-cat (instance)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Function: copy-check-and-promote (chm table oldkvs work-done)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: copy-chm (instance)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: copy-cons* (instance)
Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: copy-counter (instance)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Function: copy-prime (instance)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: copy-queue (instance)
Package

org.shirakumo.luckless.queue.

Source

queue.lisp.

Function: copy-slot (table idx oldkvs newkvs)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: copy-slot-and-check (chm table oldkvs idx should-help)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: counter-add-if-mask (counter x mask)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Function: counter-p (object)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Function: counter-value (counter)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Function: (setf counter-value) (counter)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Function: counter-value~ (counter)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Function: decf-counter (counter &optional delta)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Function: determine-hasher (test)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: hash (table thing)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: hashes (kvs)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Reader: head (instance)
Writer: (setf head) (instance)
Package

org.shirakumo.luckless.list.

Source

list.lisp.

Target Slot

head.

Function: help-copy (table helper)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: incf-counter (counter &optional delta)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Function: key (kvs idx)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: keyeq (k key hashes hash fullhash test)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: len (kvs)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: make-cat (next size initial-element)
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Function: make-chm (size)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: make-counter ()
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Function: prime (value)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: prime-p (object)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

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

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Target Slot

value.

Function: put-if-match (table key new old)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Reader: queue-allocation-index (instance)
Writer: (setf queue-allocation-index) (instance)
Package

org.shirakumo.luckless.queue.

Source

queue.lisp.

Target Slot

allocation-index.

Reader: queue-elements (instance)
Writer: (setf queue-elements) (instance)
Package

org.shirakumo.luckless.queue.

Source

queue.lisp.

Target Slot

elements.

Reader: queue-read-index (instance)
Writer: (setf queue-read-index) (instance)
Package

org.shirakumo.luckless.queue.

Source

queue.lisp.

Target Slot

read-index.

Reader: queue-reallocating (instance)
Writer: (setf queue-reallocating) (instance)
Package

org.shirakumo.luckless.queue.

Source

queue.lisp.

Target Slot

reallocating.

Reader: queue-write-index (instance)
Writer: (setf queue-write-index) (instance)
Package

org.shirakumo.luckless.queue.

Source

queue.lisp.

Target Slot

write-index.

Function: rehash (h)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: reprobe-limit (len)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: reprobes (table)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: resize (chm table kvs)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Function: search-cons (value list)
Package

org.shirakumo.luckless.list.

Source

list.lisp.

Function: table-full-p (chm reprobe-cnt len)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Reader: tail (instance)
Writer: (setf tail) (instance)
Package

org.shirakumo.luckless.list.

Source

list.lisp.

Target Slot

tail.

Function: val (kvs idx)
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Reader: valid (instance)
Writer: (setf valid) (instance)
Package

org.shirakumo.luckless.list.

Source

list.lisp.

Target Slot

valid.


5.2.4 Structures

Structure: cat
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: resizers
Type

fixnum

Initform

0

Readers

%cat-resizers.

Writers

(setf %cat-resizers).

Slot: next
Readers

%cat-next.

Writers

(setf %cat-next).

Slot: sum-cache
Type

fixnum

Initform

most-negative-fixnum

Readers

%cat-sum-cache.

Writers

(setf %cat-sum-cache).

Slot: fuzzy-sum-cache
Type

fixnum

Initform

0

Readers

%cat-fuzzy-sum-cache.

Writers

(setf %cat-fuzzy-sum-cache).

Slot: fuzzy-time
Type

fixnum

Initform

0

Readers

%cat-fuzzy-time.

Writers

(setf %cat-fuzzy-time).

Slot: table
Type

simple-vector

Readers

%cat-table.

Writers

(setf %cat-table).

Structure: chm
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: size
Type

org.shirakumo.luckless.hashtable::counter

Initform

(error "no size?")

Readers

%chm-size.

Writers

(setf %chm-size).

Slot: slots
Type

org.shirakumo.luckless.hashtable::counter

Initform

(org.shirakumo.luckless.hashtable::make-counter)

Readers

%chm-slots.

Writers

(setf %chm-slots).

Slot: newkvs
Type

(or null simple-vector)

Readers

%chm-newkvs.

Writers

(setf %chm-newkvs).

Slot: resizers
Type

fixnum

Initform

0

Readers

%chm-resizers.

Writers

(setf %chm-resizers).

Slot: copy-idx
Type

fixnum

Initform

0

Readers

%chm-copy-idx.

Writers

(setf %chm-copy-idx).

Slot: copy-done
Type

fixnum

Initform

0

Readers

%chm-copy-done.

Writers

(setf %chm-copy-done).

Structure: cons*
Package

org.shirakumo.luckless.list.

Source

list.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: car*
Readers

car*.

Writers

(setf car*).

Slot: cdr*
Type

(or null org.shirakumo.luckless.list::cons*)

Readers

cdr*.

Writers

(setf cdr*).

Slot: valid
Type

bit

Initform

1

Readers

valid.

Writers

(setf valid).

Structure: counter
Package

org.shirakumo.luckless.hashtable.

Source

cat.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: cat
Type

org.shirakumo.luckless.hashtable::cat

Initform

(org.shirakumo.luckless.hashtable::make-cat nil 4 0)

Readers

%counter-cat.

Writers

(setf %counter-cat).

Structure: prime
Package

org.shirakumo.luckless.hashtable.

Source

hashtable.lisp.

Direct superclasses

structure-object.

Direct methods

make-load-form.

Direct slots
Slot: value
Readers

prime-value.

Writers

(setf prime-value).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
C   D   F   G   H   I   K   L   M   N   P   Q   R   S   T   V  
Index Entry  Section

%
%castable-hasher: Private ordinary functions
%castable-kvs: Private ordinary functions
%castable-last-resize: Private ordinary functions
%castable-reprobes: Private ordinary functions
%castable-test: Private ordinary functions
%cat-fuzzy-sum-cache: Private ordinary functions
%cat-fuzzy-time: Private ordinary functions
%cat-next: Private ordinary functions
%cat-resizers: Private ordinary functions
%cat-sum-cache: Private ordinary functions
%cat-table: Private ordinary functions
%chm-copy-done: Private ordinary functions
%chm-copy-idx: Private ordinary functions
%chm-newkvs: Private ordinary functions
%chm-resizers: Private ordinary functions
%chm-size: Private ordinary functions
%chm-slots: Private ordinary functions
%counter-cat: Private ordinary functions
%gethash: Private ordinary functions
%help-copy: Private ordinary functions
%make-caslist: Private ordinary functions
%make-castable: Private ordinary functions
%make-cat: Private ordinary functions
%make-queue: Private ordinary functions
%put-if-match: Private ordinary functions

(
(setf %castable-hasher): Private ordinary functions
(setf %castable-kvs): Private ordinary functions
(setf %castable-last-resize): Private ordinary functions
(setf %castable-reprobes): Private ordinary functions
(setf %castable-test): Private ordinary functions
(setf %cat-fuzzy-sum-cache): Private ordinary functions
(setf %cat-fuzzy-time): Private ordinary functions
(setf %cat-next): Private ordinary functions
(setf %cat-resizers): Private ordinary functions
(setf %cat-sum-cache): Private ordinary functions
(setf %cat-table): Private ordinary functions
(setf %chm-copy-done): Private ordinary functions
(setf %chm-copy-idx): Private ordinary functions
(setf %chm-newkvs): Private ordinary functions
(setf %chm-resizers): Private ordinary functions
(setf %chm-size): Private ordinary functions
(setf %chm-slots): Private ordinary functions
(setf %counter-cat): Private ordinary functions
(setf car*): Private ordinary functions
(setf cdr*): Private ordinary functions
(setf counter-value): Private ordinary functions
(setf gethash): Public compiler macros
(setf gethash): Public ordinary functions
(setf head): Private ordinary functions
(setf prime-value): Private ordinary functions
(setf queue-allocation-index): Private ordinary functions
(setf queue-elements): Private ordinary functions
(setf queue-read-index): Private ordinary functions
(setf queue-reallocating): Private ordinary functions
(setf queue-write-index): Private ordinary functions
(setf tail): Private ordinary functions
(setf valid): Private ordinary functions

C
car*: Private ordinary functions
cas-key: Private ordinary functions
cas-newkvs: Private ordinary functions
cas-val: Private ordinary functions
caslist: Public ordinary functions
caslist-p: Public ordinary functions
castable-p: Public ordinary functions
cat-p: Private ordinary functions
cat-sum: Private ordinary functions
cat-sum~: Private ordinary functions
cdr*: Private ordinary functions
chm: Private ordinary functions
chm-p: Private ordinary functions
chm-size: Private ordinary functions
chm-slots: Private ordinary functions
clrhash: Public ordinary functions
Compiler Macro, (setf gethash): Public compiler macros
cons*: Private ordinary functions
cons*-p: Private ordinary functions
copy-caslist: Private ordinary functions
copy-castable: Private ordinary functions
copy-cat: Private ordinary functions
copy-check-and-promote: Private ordinary functions
copy-chm: Private ordinary functions
copy-cons*: Private ordinary functions
copy-counter: Private ordinary functions
copy-prime: Private ordinary functions
copy-queue: Private ordinary functions
copy-slot: Private ordinary functions
copy-slot-and-check: Private ordinary functions
count: Public ordinary functions
counter-add-if-mask: Private ordinary functions
counter-p: Private ordinary functions
counter-value: Private ordinary functions
counter-value~: Private ordinary functions

D
decf-counter: Private ordinary functions
delete: Public ordinary functions
determine-hasher: Private ordinary functions
discard: Public ordinary functions

F
first: Public ordinary functions
Function, %castable-hasher: Private ordinary functions
Function, %castable-kvs: Private ordinary functions
Function, %castable-last-resize: Private ordinary functions
Function, %castable-reprobes: Private ordinary functions
Function, %castable-test: Private ordinary functions
Function, %cat-fuzzy-sum-cache: Private ordinary functions
Function, %cat-fuzzy-time: Private ordinary functions
Function, %cat-next: Private ordinary functions
Function, %cat-resizers: Private ordinary functions
Function, %cat-sum-cache: Private ordinary functions
Function, %cat-table: Private ordinary functions
Function, %chm-copy-done: Private ordinary functions
Function, %chm-copy-idx: Private ordinary functions
Function, %chm-newkvs: Private ordinary functions
Function, %chm-resizers: Private ordinary functions
Function, %chm-size: Private ordinary functions
Function, %chm-slots: Private ordinary functions
Function, %counter-cat: Private ordinary functions
Function, %gethash: Private ordinary functions
Function, %help-copy: Private ordinary functions
Function, %make-caslist: Private ordinary functions
Function, %make-castable: Private ordinary functions
Function, %make-cat: Private ordinary functions
Function, %make-queue: Private ordinary functions
Function, %put-if-match: Private ordinary functions
Function, (setf %castable-hasher): Private ordinary functions
Function, (setf %castable-kvs): Private ordinary functions
Function, (setf %castable-last-resize): Private ordinary functions
Function, (setf %castable-reprobes): Private ordinary functions
Function, (setf %castable-test): Private ordinary functions
Function, (setf %cat-fuzzy-sum-cache): Private ordinary functions
Function, (setf %cat-fuzzy-time): Private ordinary functions
Function, (setf %cat-next): Private ordinary functions
Function, (setf %cat-resizers): Private ordinary functions
Function, (setf %cat-sum-cache): Private ordinary functions
Function, (setf %cat-table): Private ordinary functions
Function, (setf %chm-copy-done): Private ordinary functions
Function, (setf %chm-copy-idx): Private ordinary functions
Function, (setf %chm-newkvs): Private ordinary functions
Function, (setf %chm-resizers): Private ordinary functions
Function, (setf %chm-size): Private ordinary functions
Function, (setf %chm-slots): Private ordinary functions
Function, (setf %counter-cat): Private ordinary functions
Function, (setf car*): Private ordinary functions
Function, (setf cdr*): Private ordinary functions
Function, (setf counter-value): Private ordinary functions
Function, (setf gethash): Public ordinary functions
Function, (setf head): Private ordinary functions
Function, (setf prime-value): Private ordinary functions
Function, (setf queue-allocation-index): Private ordinary functions
Function, (setf queue-elements): Private ordinary functions
Function, (setf queue-read-index): Private ordinary functions
Function, (setf queue-reallocating): Private ordinary functions
Function, (setf queue-write-index): Private ordinary functions
Function, (setf tail): Private ordinary functions
Function, (setf valid): Private ordinary functions
Function, car*: Private ordinary functions
Function, cas-key: Private ordinary functions
Function, cas-newkvs: Private ordinary functions
Function, cas-val: Private ordinary functions
Function, caslist: Public ordinary functions
Function, caslist-p: Public ordinary functions
Function, castable-p: Public ordinary functions
Function, cat-p: Private ordinary functions
Function, cat-sum: Private ordinary functions
Function, cat-sum~: Private ordinary functions
Function, cdr*: Private ordinary functions
Function, chm: Private ordinary functions
Function, chm-p: Private ordinary functions
Function, chm-size: Private ordinary functions
Function, chm-slots: Private ordinary functions
Function, clrhash: Public ordinary functions
Function, cons*: Private ordinary functions
Function, cons*-p: Private ordinary functions
Function, copy-caslist: Private ordinary functions
Function, copy-castable: Private ordinary functions
Function, copy-cat: Private ordinary functions
Function, copy-check-and-promote: Private ordinary functions
Function, copy-chm: Private ordinary functions
Function, copy-cons*: Private ordinary functions
Function, copy-counter: Private ordinary functions
Function, copy-prime: Private ordinary functions
Function, copy-queue: Private ordinary functions
Function, copy-slot: Private ordinary functions
Function, copy-slot-and-check: Private ordinary functions
Function, count: Public ordinary functions
Function, counter-add-if-mask: Private ordinary functions
Function, counter-p: Private ordinary functions
Function, counter-value: Private ordinary functions
Function, counter-value~: Private ordinary functions
Function, decf-counter: Private ordinary functions
Function, delete: Public ordinary functions
Function, determine-hasher: Private ordinary functions
Function, discard: Public ordinary functions
Function, first: Public ordinary functions
Function, gethash: Public ordinary functions
Function, hash: Private ordinary functions
Function, hash-function: Public ordinary functions
Function, hashes: Private ordinary functions
Function, head: Private ordinary functions
Function, help-copy: Private ordinary functions
Function, incf-counter: Private ordinary functions
Function, key: Private ordinary functions
Function, keyeq: Private ordinary functions
Function, len: Private ordinary functions
Function, length: Public ordinary functions
Function, length: Public ordinary functions
Function, make-castable: Public ordinary functions
Function, make-cat: Private ordinary functions
Function, make-chm: Private ordinary functions
Function, make-counter: Private ordinary functions
Function, make-queue: Public ordinary functions
Function, mapc: Public ordinary functions
Function, mapc: Public ordinary functions
Function, maphash: Public ordinary functions
Function, member: Public ordinary functions
Function, nth: Public ordinary functions
Function, prime: Private ordinary functions
Function, prime-p: Private ordinary functions
Function, prime-value: Private ordinary functions
Function, push: Public ordinary functions
Function, push: Public ordinary functions
Function, put-if-absent: Public ordinary functions
Function, put-if-equal: Public ordinary functions
Function, put-if-match: Private ordinary functions
Function, put-if-present: Public ordinary functions
Function, queue-allocation-index: Private ordinary functions
Function, queue-elements: Private ordinary functions
Function, queue-p: Public ordinary functions
Function, queue-read-index: Private ordinary functions
Function, queue-reallocating: Private ordinary functions
Function, queue-write-index: Private ordinary functions
Function, rehash: Private ordinary functions
Function, remhash: Public ordinary functions
Function, reprobe-limit: Private ordinary functions
Function, reprobes: Private ordinary functions
Function, resize: Private ordinary functions
Function, search-cons: Private ordinary functions
Function, size: Public ordinary functions
Function, table-full-p: Private ordinary functions
Function, tail: Private ordinary functions
Function, test: Public ordinary functions
Function, to-list: Public ordinary functions
Function, try-remhash: Public ordinary functions
Function, val: Private ordinary functions
Function, valid: Private ordinary functions

G
gethash: Public ordinary functions

H
hash: Private ordinary functions
hash-function: Public ordinary functions
hashes: Private ordinary functions
head: Private ordinary functions
help-copy: Private ordinary functions

I
incf-counter: Private ordinary functions

K
key: Private ordinary functions
keyeq: Private ordinary functions

L
len: Private ordinary functions
length: Public ordinary functions
length: Public ordinary functions

M
make-castable: Public ordinary functions
make-cat: Private ordinary functions
make-chm: Private ordinary functions
make-counter: Private ordinary functions
make-load-form: Public standalone methods
make-queue: Public ordinary functions
mapc: Public ordinary functions
mapc: Public ordinary functions
maphash: Public ordinary functions
member: Public ordinary functions
Method, make-load-form: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods

N
nth: Public ordinary functions

P
prime: Private ordinary functions
prime-p: Private ordinary functions
prime-value: Private ordinary functions
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
push: Public ordinary functions
push: Public ordinary functions
put-if-absent: Public ordinary functions
put-if-equal: Public ordinary functions
put-if-match: Private ordinary functions
put-if-present: Public ordinary functions

Q
queue-allocation-index: Private ordinary functions
queue-elements: Private ordinary functions
queue-p: Public ordinary functions
queue-read-index: Private ordinary functions
queue-reallocating: Private ordinary functions
queue-write-index: Private ordinary functions

R
rehash: Private ordinary functions
remhash: Public ordinary functions
reprobe-limit: Private ordinary functions
reprobes: Private ordinary functions
resize: Private ordinary functions

S
search-cons: Private ordinary functions
size: Public ordinary functions

T
table-full-p: Private ordinary functions
tail: Private ordinary functions
test: Public ordinary functions
to-list: Public ordinary functions
try-remhash: Public ordinary functions

V
val: Private ordinary functions
valid: Private ordinary functions


A.3 Variables

Jump to:   *  
A   C   E   F   G   H   K   L   M   N   R   S   T   V   W  
Index Entry  Section

*
*maximum-size*: Private special variables

A
allocation-index: Public structures

C
car*: Private structures
cat: Private structures
cdr*: Private structures
Constant, global-hash: Private constants
Constant, match-any: Private constants
Constant, max-spin: Private constants
Constant, min-size: Private constants
Constant, min-size-log: Private constants
Constant, no-match-old: Private constants
Constant, no-value: Private constants
Constant, reprobe-limit: Private constants
Constant, tombprime: Private constants
Constant, tombstone: Private constants
copy-done: Private structures
copy-idx: Private structures

E
elements: Public structures

F
fuzzy-sum-cache: Private structures
fuzzy-time: Private structures

G
global-hash: Private constants

H
hasher: Public structures
head: Public structures

K
kvs: Public structures

L
last-resize: Public structures

M
match-any: Private constants
max-spin: Private constants
min-size: Private constants
min-size-log: Private constants

N
newkvs: Private structures
next: Private structures
no-match-old: Private constants
no-value: Private constants

R
read-index: Public structures
reallocating: Public structures
reprobe-limit: Private constants
reprobes: Public structures
resizers: Private structures
resizers: Private structures

S
size: Private structures
Slot, allocation-index: Public structures
Slot, car*: Private structures
Slot, cat: Private structures
Slot, cdr*: Private structures
Slot, copy-done: Private structures
Slot, copy-idx: Private structures
Slot, elements: Public structures
Slot, fuzzy-sum-cache: Private structures
Slot, fuzzy-time: Private structures
Slot, hasher: Public structures
Slot, head: Public structures
Slot, kvs: Public structures
Slot, last-resize: Public structures
Slot, newkvs: Private structures
Slot, next: Private structures
Slot, read-index: Public structures
Slot, reallocating: Public structures
Slot, reprobes: Public structures
Slot, resizers: Private structures
Slot, resizers: Private structures
Slot, size: Private structures
Slot, slots: Private structures
Slot, sum-cache: Private structures
Slot, table: Private structures
Slot, tail: Public structures
Slot, test: Public structures
Slot, valid: Private structures
Slot, value: Private structures
Slot, write-index: Public structures
slots: Private structures
Special Variable, *maximum-size*: Private special variables
sum-cache: Private structures

T
table: Private structures
tail: Public structures
test: Public structures
tombprime: Private constants
tombstone: Private constants

V
valid: Private structures
value: Private structures

W
write-index: Public structures


A.4 Data types

Jump to:   C   D   F   H   L   O   P   Q   S  
Index Entry  Section

C
caslist: Public structures
castable: Public structures
cat: Private structures
cat.lisp: The luckless/cat․lisp file
chm: Private structures
cons*: Private structures
counter: Private structures

D
documentation.lisp: The luckless/documentation․lisp file

F
File, cat.lisp: The luckless/cat․lisp file
File, documentation.lisp: The luckless/documentation․lisp file
File, hashtable.lisp: The luckless/hashtable․lisp file
File, list.lisp: The luckless/list․lisp file
File, luckless.asd: The luckless/luckless․asd file
File, package.lisp: The luckless/package․lisp file
File, queue.lisp: The luckless/queue․lisp file

H
hashtable.lisp: The luckless/hashtable․lisp file

L
list.lisp: The luckless/list․lisp file
luckless: The luckless system
luckless.asd: The luckless/luckless․asd file

O
org.shirakumo.luckless.hashtable: The org․shirakumo․luckless․hashtable package
org.shirakumo.luckless.list: The org․shirakumo․luckless․list package
org.shirakumo.luckless.queue: The org․shirakumo․luckless․queue package

P
Package, org.shirakumo.luckless.hashtable: The org․shirakumo․luckless․hashtable package
Package, org.shirakumo.luckless.list: The org․shirakumo․luckless․list package
Package, org.shirakumo.luckless.queue: The org․shirakumo․luckless․queue package
package.lisp: The luckless/package․lisp file
prime: Private structures

Q
queue: Public structures
queue.lisp: The luckless/queue․lisp file

S
Structure, caslist: Public structures
Structure, castable: Public structures
Structure, cat: Private structures
Structure, chm: Private structures
Structure, cons*: Private structures
Structure, counter: Private structures
Structure, prime: Private structures
Structure, queue: Public structures
System, luckless: The luckless system