75 lines
2.4 KiB
Scheme
75 lines
2.4 KiB
Scheme
|
;;;;;; Riatables: alternative hash tables -*- Scheme -*-
|
||
|
;;;;;; Interface and package definitions
|
||
|
|
||
|
;;; Taylor Campbell wrote this code; he places it in the public domain.
|
||
|
|
||
|
(define-interface riatables-interface
|
||
|
(export table-template?
|
||
|
make-table-template
|
||
|
make-weak-table-template
|
||
|
make-strong-table-template
|
||
|
|
||
|
weaken-table-template strengthen-table-template
|
||
|
head-weaken-table-template head-strengthen-table-template
|
||
|
tail-weaken-table-template tail-strengthen-table-template
|
||
|
modify-table-template-weakness
|
||
|
|
||
|
table-template-key-predicate
|
||
|
table-template-key-comparator
|
||
|
table-template-key-hasher
|
||
|
table-template-gc-sensitive?
|
||
|
table-template-head-weak?
|
||
|
table-template-tail-weak?
|
||
|
|
||
|
table-constructor
|
||
|
|
||
|
table?
|
||
|
make-table-from-template
|
||
|
|
||
|
table-size
|
||
|
table-entry
|
||
|
set-table-entry!
|
||
|
modify-table-entry!
|
||
|
pop-table-entry!
|
||
|
walk-table
|
||
|
|
||
|
table-template
|
||
|
|
||
|
descriptor-hash modular-descriptor-hash
|
||
|
string-hash modular-string-hash
|
||
|
string-ci-hash modular-string-ci-hash
|
||
|
integer-hash modular-integer-hash
|
||
|
|
||
|
make-object-table object-table-template
|
||
|
make-weak-object-table weak-object-table-template
|
||
|
make-string-table string-table-template
|
||
|
make-string-ci-table string-ci-table-template
|
||
|
make-integer-table integer-table-template
|
||
|
make-symbol-table symbol-table-template))
|
||
|
|
||
|
(define-interface riatables-support-interface
|
||
|
(export gc-stamp
|
||
|
descriptor-hash modular-descriptor-hash
|
||
|
string-hash modular-string-hash
|
||
|
string-ci-hash modular-string-ci-hash
|
||
|
integer-hash modular-integer-hash
|
||
|
exact-integer?))
|
||
|
|
||
|
(define-structure riatables riatables-interface
|
||
|
(open scheme
|
||
|
receiving
|
||
|
weak
|
||
|
(subset signals (error call-error))
|
||
|
define-record-types
|
||
|
riatables-support)
|
||
|
(optimize auto-integrate)
|
||
|
(files riatable))
|
||
|
|
||
|
(define-structure riatables-support riatables-support-interface
|
||
|
(open scheme
|
||
|
(subset primitives (memory-status string-hash))
|
||
|
(subset architecture (memory-status-option))
|
||
|
enumerated)
|
||
|
(optimize auto-integrate)
|
||
|
(files support))
|