mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 13:49:17 +02:00
28 lines
943 B
Scheme
28 lines
943 B
Scheme
|
|
;;> Library for weak data structures.
|
|
|
|
;;> \procedure{(make-ephemeron key value)}
|
|
|
|
;;> Returns a new ephemeron. This ephemeron holds a weak reference to
|
|
;;> \var{key}, such that \var{value} will only be traced by the GC if
|
|
;;> \var{key} is referenced from an external object.
|
|
|
|
;;> \procedure{(ephemeron? x)}
|
|
;;> Returns true iff \var{x} is an ephemeron.
|
|
|
|
;;> \procedure{(ephemeron-broken? ephemeron)}
|
|
;;> Returns true iff \var{ephemeron}s \var{key} has been GCed.
|
|
|
|
;;> \procedure{(ephemeron-key ephemeron)}
|
|
;;> Returns \var{ephemeron}s \var{key}, or \scheme{#f} if it has been GCed.
|
|
|
|
;;> \procedure{(ephemeron-value ephemeron)}
|
|
;;> Returns \var{ephemeron}s \var{value}.
|
|
|
|
(define-library (chibi weak)
|
|
(export make-ephemeron ephemeron? ephemeron-broken?
|
|
ephemeron-key ephemeron-value
|
|
;; make-weak-vector weak-vector? weak-vector-length
|
|
;; weak-vector-ref weak-vector-set!
|
|
)
|
|
(include-shared "weak"))
|