The genhash Reference Manual
Table of Contents
The genhash Reference Manual
This is the genhash Reference Manual, version 1.7,
generated automatically by Declt version 3.0 "Montgomery Scott"
on Tue Dec 22 13:35:49 2020 GMT+0.
1 Introduction
NET.HEXAPODIA.HASHTABLES
Generic hash table implementation. This implementation is in the
public domain.
Written by Ingvar Mattsson .
This package defines four generic functions and two normal functions.
The non-generic function MAKE-GENERIC-HASH-TABLE is used for
hash table creation.
(make-generic-hashtable (:test 'eql) (:size 17))
If this function is fed the *symbols* EQ EQL EQUAL or EQUALP as test
it will create a generic hash table with that as an equality test
and SXHASH as the hash function. NOTE: Using EQ or EQL as the test
designator is risky and should be avoided. In general, for the
built-in test designators, use the function instead of the
symbol. This will give you a built-in hash table.
If this function is fed the *functions* EQ EQL EQUAL or EQUALP
it will create a normal (built-in) hash table with that as a test
function.
(register-test-designator )
Register a new generic hash function with as the
relevant :test parameter.
The generic functions are:
(hashref &optnonal (default nil))
This function does essentially the same thing as GETHASH.
((setf hashref) &optional ignore)
For (setf (hashref ...) ...)
(map-generic-hash )
As MAPHASH
(hashrem )
As REMHASH
These functions dispatch somewhat differently depending on if they're
fed a generic hash table or a built-in hash table.
For benchmarking, just load "benchtests.lisp", this will loop through
the number 0 to 1000 (and 100000) and feed them into a hash table, then
generating a report of *STANDARD-OUTPUT*.
2 Systems
The main system appears first, followed by any subsystem dependency.
2.1 genhash
- Maintainer
Paul Nathan <pnathan@alumni.uidaho.edu>
- Author
Ingvar Mattsson <ingvar@hexapodia.net>
- License
Public Domain
- Description
Generic hashtable code
- Version
1.7
- Source
genhash.asd (file)
- Components
-
3 Files
Files are sorted by type and then listed depth-first from the systems
components trees.
3.1 Lisp
3.1.1 genhash.asd
- Location
genhash.asd
- Systems
genhash (system)
3.1.2 genhash/packages.lisp
- Parent
genhash (system)
- Location
packages.lisp
- Packages
net.hexapodia.hashtables
3.1.3 genhash/genhash.lisp
- Dependency
packages.lisp (file)
- Parent
genhash (system)
- Location
genhash.lisp
- Exported Definitions
-
- Internal Definitions
-
4 Packages
Packages are listed by definition order.
4.1 net.hexapodia.hashtables
- Source
packages.lisp (file)
- Nickname
genhash
- Use List
common-lisp
- Exported Definitions
-
- Internal Definitions
-
5 Definitions
Definitions are sorted by export status, category, package, and then by
lexicographic order.
5.1 Exported definitions
5.1.1 Functions
- Function: make-generic-hash-table &key SIZE TEST
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Function: make-generic-hashtable &key SIZE TEST
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Function: register-hash-function TEST-DESIGNATOR HASH-FUNCTION EQUAL-FUNCTION
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Function: register-test-designator TEST-DESIGNATOR HASH-FUNCTION EQUAL-FUNCTION
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
5.1.2 Generic functions
- Generic Function: generic-hash-table-count TABLE
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Methods
- Method: generic-hash-table-count (TABLE hash-table)
-
- Method: generic-hash-table-count (TABLE hash-container)
-
- Generic Function: generic-hash-table-p TABLE
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Methods
- Method: generic-hash-table-p (TABLE hash-table)
-
- Method: generic-hash-table-p (TABLE hash-container)
-
- Method: generic-hash-table-p TABLE
-
- Generic Function: generic-hash-table-size TABLE
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Methods
- Method: generic-hash-table-size (TABLE hash-table)
-
- Method: generic-hash-table-size (TABLE hash-container)
-
- Generic Function: hashclr TABLE
-
- Package
net.hexapodia.hashtables
- Methods
- Method: hashclr (TABLE hash-table)
-
- Source
genhash.lisp (file)
- Method: hashclr (TABLE hash-container)
-
- Source
genhash.lisp (file)
- Generic Function: hashmap KEY TABLE
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Methods
- Method: hashmap FN (TABLE hash-table)
-
- Method: hashmap FN (TABLE hash-container)
-
- Generic Function: hashref KEY TABLE &optional DEFAULT
-
- Generic Function: (setf hashref) VALUE KEY TABLE &optional DEFAULT
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Methods
- Method: hashref KEY (TABLE hash-table) &optional DEFAULT
-
- Method: (setf hashref) VALUE KEY (TABLE hash-table) &optional DEFAULT
-
- Method: hashref KEY (TABLE hash-container) &optional DEFAULT
-
- Method: (setf hashref) VALUE KEY (TABLE hash-container) &optional DEF
-
- Generic Function: hashrem KEY TABLE
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Methods
- Method: hashrem KEY (TABLE hash-table)
-
- Method: hashrem KEY (TABLE hash-container)
-
5.1.3 Conditions
- Condition: hash-exists ()
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Direct superclasses
simple-error (condition)
- Direct Default Initargs
Initarg | Value |
:format-control | "hash table type ~a already registered" |
- Condition: unknown-hash ()
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Direct superclasses
simple-error (condition)
- Direct Default Initargs
Initarg | Value |
:format-control | "unknown hash table type ~a" |
5.2 Internal definitions
5.2.1 Special variables
- Special Variable: *hash-test-designator-map*
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Special Variable: *initialized*
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
5.2.2 Macros
- Macro: with-generic-hash-table-iterator (NAME TABLE) &body BODY
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
5.2.3 Functions
- Function: expand-hash-table TABLE
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Function: register-builtin TEST-DESIGNATOR
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
5.2.4 Generic functions
- Generic Function: all-hash-keys TABLE
-
- Package
net.hexapodia.hashtables
- Methods
- Method: all-hash-keys (TABLE hash-table)
-
- Source
genhash.lisp (file)
- Method: all-hash-keys (TABLE hash-container)
-
- Source
genhash.lisp (file)
- Generic Function: allocated-buckets OBJECT
-
- Generic Function: (setf allocated-buckets) NEW-VALUE OBJECT
-
- Package
net.hexapodia.hashtables
- Methods
- Method: allocated-buckets (HASH-CONTAINER hash-container)
-
automatically generated reader method
- Source
genhash.lisp (file)
- Method: (setf allocated-buckets) NEW-VALUE (HASH-CONTAINER hash-container)
-
automatically generated writer method
- Source
genhash.lisp (file)
- Generic Function: buckets OBJECT
-
- Generic Function: (setf buckets) NEW-VALUE OBJECT
-
- Package
net.hexapodia.hashtables
- Methods
- Method: buckets (HASH-CONTAINER hash-container)
-
automatically generated reader method
- Source
genhash.lisp (file)
- Method: (setf buckets) NEW-VALUE (HASH-CONTAINER hash-container)
-
automatically generated writer method
- Source
genhash.lisp (file)
- Generic Function: builtin OBJECT
-
- Package
net.hexapodia.hashtables
- Methods
- Method: builtin (HASH-TEST-DESIGNATOR hash-test-designator)
-
automatically generated reader method
- Source
genhash.lisp (file)
- Generic Function: eq-test OBJECT
-
- Package
net.hexapodia.hashtables
- Methods
- Method: eq-test (HASH-TEST-DESIGNATOR hash-test-designator)
-
automatically generated reader method
- Source
genhash.lisp (file)
- Generic Function: hash-function OBJECT
-
- Package
net.hexapodia.hashtables
- Methods
- Method: hash-function (HASH-TEST-DESIGNATOR hash-test-designator)
-
automatically generated reader method
- Source
genhash.lisp (file)
- Generic Function: stored-items OBJECT
-
- Generic Function: (setf stored-items) NEW-VALUE OBJECT
-
- Package
net.hexapodia.hashtables
- Methods
- Method: stored-items (HASH-CONTAINER hash-container)
-
automatically generated reader method
- Source
genhash.lisp (file)
- Method: (setf stored-items) NEW-VALUE (HASH-CONTAINER hash-container)
-
automatically generated writer method
- Source
genhash.lisp (file)
- Generic Function: test-designator OBJECT
-
- Package
net.hexapodia.hashtables
- Methods
- Method: test-designator (HASH-CONTAINER hash-container)
-
automatically generated reader method
- Source
genhash.lisp (file)
- Method: test-designator (HASH-TEST-DESIGNATOR hash-test-designator)
-
automatically generated reader method
- Source
genhash.lisp (file)
- Generic Function: used-buckets OBJECT
-
- Generic Function: (setf used-buckets) NEW-VALUE OBJECT
-
- Package
net.hexapodia.hashtables
- Methods
- Method: used-buckets (HASH-CONTAINER hash-container)
-
automatically generated reader method
- Source
genhash.lisp (file)
- Method: (setf used-buckets) NEW-VALUE (HASH-CONTAINER hash-container)
-
automatically generated writer method
- Source
genhash.lisp (file)
5.2.5 Classes
- Class: hash-container ()
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: buckets
-
- Initargs
:buckets
- Readers
buckets (generic function)
- Writers
(setf buckets) (generic function)
- Slot: allocated-buckets
-
- Initargs
:allocated-buckets
- Readers
allocated-buckets (generic function)
- Writers
(setf allocated-buckets) (generic function)
- Slot: used-buckets
-
- Initform
0
- Readers
used-buckets (generic function)
- Writers
(setf used-buckets) (generic function)
- Slot: stored-items
-
- Initargs
:stored-items
- Readers
stored-items (generic function)
- Writers
(setf stored-items) (generic function)
- Slot: test-designator
-
- Initargs
:test-designator
- Readers
test-designator (generic function)
- Class: hash-test-designator ()
-
- Package
net.hexapodia.hashtables
- Source
genhash.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: test-designator
-
- Initargs
:test-designator
- Readers
test-designator (generic function)
- Slot: hash-function
-
- Initargs
:hash-function
- Readers
hash-function (generic function)
- Slot: eq-test
-
- Initargs
:eq-test
- Readers
eq-test (generic function)
- Slot: builtin
-
- Initargs
:builtin
- Readers
builtin (generic function)
Appendix A Indexes
A.1 Concepts
A.2 Functions
| Index Entry | | Section |
|
( | | |
| (setf allocated-buckets) : | | Internal generic functions |
| (setf allocated-buckets) : | | Internal generic functions |
| (setf buckets) : | | Internal generic functions |
| (setf buckets) : | | Internal generic functions |
| (setf hashref) : | | Exported generic functions |
| (setf hashref) : | | Exported generic functions |
| (setf hashref) : | | Exported generic functions |
| (setf stored-items) : | | Internal generic functions |
| (setf stored-items) : | | Internal generic functions |
| (setf used-buckets) : | | Internal generic functions |
| (setf used-buckets) : | | Internal generic functions |
|
A | | |
| all-hash-keys : | | Internal generic functions |
| all-hash-keys : | | Internal generic functions |
| all-hash-keys : | | Internal generic functions |
| allocated-buckets : | | Internal generic functions |
| allocated-buckets : | | Internal generic functions |
|
B | | |
| buckets : | | Internal generic functions |
| buckets : | | Internal generic functions |
| builtin : | | Internal generic functions |
| builtin : | | Internal generic functions |
|
E | | |
| eq-test : | | Internal generic functions |
| eq-test : | | Internal generic functions |
| expand-hash-table : | | Internal functions |
|
F | | |
| Function, expand-hash-table : | | Internal functions |
| Function, make-generic-hash-table : | | Exported functions |
| Function, make-generic-hashtable : | | Exported functions |
| Function, register-builtin : | | Internal functions |
| Function, register-hash-function : | | Exported functions |
| Function, register-test-designator : | | Exported functions |
|
G | | |
| Generic Function, (setf allocated-buckets) : | | Internal generic functions |
| Generic Function, (setf buckets) : | | Internal generic functions |
| Generic Function, (setf hashref) : | | Exported generic functions |
| Generic Function, (setf stored-items) : | | Internal generic functions |
| Generic Function, (setf used-buckets) : | | Internal generic functions |
| Generic Function, all-hash-keys : | | Internal generic functions |
| Generic Function, allocated-buckets : | | Internal generic functions |
| Generic Function, buckets : | | Internal generic functions |
| Generic Function, builtin : | | Internal generic functions |
| Generic Function, eq-test : | | Internal generic functions |
| Generic Function, generic-hash-table-count : | | Exported generic functions |
| Generic Function, generic-hash-table-p : | | Exported generic functions |
| Generic Function, generic-hash-table-size : | | Exported generic functions |
| Generic Function, hash-function : | | Internal generic functions |
| Generic Function, hashclr : | | Exported generic functions |
| Generic Function, hashmap : | | Exported generic functions |
| Generic Function, hashref : | | Exported generic functions |
| Generic Function, hashrem : | | Exported generic functions |
| Generic Function, stored-items : | | Internal generic functions |
| Generic Function, test-designator : | | Internal generic functions |
| Generic Function, used-buckets : | | Internal generic functions |
| generic-hash-table-count : | | Exported generic functions |
| generic-hash-table-count : | | Exported generic functions |
| generic-hash-table-count : | | Exported generic functions |
| generic-hash-table-p : | | Exported generic functions |
| generic-hash-table-p : | | Exported generic functions |
| generic-hash-table-p : | | Exported generic functions |
| generic-hash-table-p : | | Exported generic functions |
| generic-hash-table-size : | | Exported generic functions |
| generic-hash-table-size : | | Exported generic functions |
| generic-hash-table-size : | | Exported generic functions |
|
H | | |
| hash-function : | | Internal generic functions |
| hash-function : | | Internal generic functions |
| hashclr : | | Exported generic functions |
| hashclr : | | Exported generic functions |
| hashclr : | | Exported generic functions |
| hashmap : | | Exported generic functions |
| hashmap : | | Exported generic functions |
| hashmap : | | Exported generic functions |
| hashref : | | Exported generic functions |
| hashref : | | Exported generic functions |
| hashref : | | Exported generic functions |
| hashrem : | | Exported generic functions |
| hashrem : | | Exported generic functions |
| hashrem : | | Exported generic functions |
|
M | | |
| Macro, with-generic-hash-table-iterator : | | Internal macros |
| make-generic-hash-table : | | Exported functions |
| make-generic-hashtable : | | Exported functions |
| Method, (setf allocated-buckets) : | | Internal generic functions |
| Method, (setf buckets) : | | Internal generic functions |
| Method, (setf hashref) : | | Exported generic functions |
| Method, (setf hashref) : | | Exported generic functions |
| Method, (setf stored-items) : | | Internal generic functions |
| Method, (setf used-buckets) : | | Internal generic functions |
| Method, all-hash-keys : | | Internal generic functions |
| Method, all-hash-keys : | | Internal generic functions |
| Method, allocated-buckets : | | Internal generic functions |
| Method, buckets : | | Internal generic functions |
| Method, builtin : | | Internal generic functions |
| Method, eq-test : | | Internal generic functions |
| Method, generic-hash-table-count : | | Exported generic functions |
| Method, generic-hash-table-count : | | Exported generic functions |
| Method, generic-hash-table-p : | | Exported generic functions |
| Method, generic-hash-table-p : | | Exported generic functions |
| Method, generic-hash-table-p : | | Exported generic functions |
| Method, generic-hash-table-size : | | Exported generic functions |
| Method, generic-hash-table-size : | | Exported generic functions |
| Method, hash-function : | | Internal generic functions |
| Method, hashclr : | | Exported generic functions |
| Method, hashclr : | | Exported generic functions |
| Method, hashmap : | | Exported generic functions |
| Method, hashmap : | | Exported generic functions |
| Method, hashref : | | Exported generic functions |
| Method, hashref : | | Exported generic functions |
| Method, hashrem : | | Exported generic functions |
| Method, hashrem : | | Exported generic functions |
| Method, stored-items : | | Internal generic functions |
| Method, test-designator : | | Internal generic functions |
| Method, test-designator : | | Internal generic functions |
| Method, used-buckets : | | Internal generic functions |
|
R | | |
| register-builtin : | | Internal functions |
| register-hash-function : | | Exported functions |
| register-test-designator : | | Exported functions |
|
S | | |
| stored-items : | | Internal generic functions |
| stored-items : | | Internal generic functions |
|
T | | |
| test-designator : | | Internal generic functions |
| test-designator : | | Internal generic functions |
| test-designator : | | Internal generic functions |
|
U | | |
| used-buckets : | | Internal generic functions |
| used-buckets : | | Internal generic functions |
|
W | | |
| with-generic-hash-table-iterator : | | Internal macros |
|
A.3 Variables
| Index Entry | | Section |
|
* | | |
| *hash-test-designator-map* : | | Internal special variables |
| *initialized* : | | Internal special variables |
|
A | | |
| allocated-buckets : | | Internal classes |
|
B | | |
| buckets : | | Internal classes |
| builtin : | | Internal classes |
|
E | | |
| eq-test : | | Internal classes |
|
H | | |
| hash-function : | | Internal classes |
|
S | | |
| Slot, allocated-buckets : | | Internal classes |
| Slot, buckets : | | Internal classes |
| Slot, builtin : | | Internal classes |
| Slot, eq-test : | | Internal classes |
| Slot, hash-function : | | Internal classes |
| Slot, stored-items : | | Internal classes |
| Slot, test-designator : | | Internal classes |
| Slot, test-designator : | | Internal classes |
| Slot, used-buckets : | | Internal classes |
| Special Variable, *hash-test-designator-map* : | | Internal special variables |
| Special Variable, *initialized* : | | Internal special variables |
| stored-items : | | Internal classes |
|
T | | |
| test-designator : | | Internal classes |
| test-designator : | | Internal classes |
|
U | | |
| used-buckets : | | Internal classes |
|
A.4 Data types