actors: Switch over to using wrap-rmeta-slot for build-actions.
[8sync.git] / 8sync / rmeta-slot.scm
index de85ee9cae7d179b17ee6b04ca0a71a7036d899e..6c4ef6d49b7d21d7a0265c900fb77112a2657765 100644 (file)
@@ -21,7 +21,8 @@
   #:use-module (srfi srfi-9)
   #:use-module (ice-9 match)
 
-  #:export (make-rmeta-slot
+  #:export (wrap-rmeta-slot
+            rmeta-slot-table rmeta-slot-cache
             maybe-build-rmeta-slot-cache!
             class-rmeta-ref))
 
@@ -40,8 +41,8 @@
 ;;;   ;; Define a class with a meta-slot
 ;;;   (define-class <kah-lassy> ()
 ;;;     (entries #:allocation #:each-subclass
-;;;              #:init-value
-;;;              (make-rmeta-slot
+;;;              #:init-thunk
+;;;              (wrap-rmeta-slot
 ;;;               `((foo . "bar")
 ;;;                 (baz . "basil")))))
 ;;;
@@ -52,8 +53,8 @@
 ;;;   ;; Define a subclass
 ;;;   (define-class <sub-lassy> (<kah-lassy>)
 ;;;     (entries #:allocation #:each-subclass
-;;;              #:init-value
-;;;              (make-rmeta-slot
+;;;              #:init-thunk
+;;;              (wrap-rmeta-slot
 ;;;               `((foo . "foo2")
 ;;;                 (peanut . "gallery")))))
 ;;;
 (define (make-rmeta-slot table)
   (%make-rmeta-slot table #f))
 
+(define (wrap-rmeta-slot table)
+  "In general, using wrap-rmeta-slot in combination with "
+  (lambda ()
+    (make-rmeta-slot table)))
+
 ;; Immutable and unique
 (define %the-nothing (cons '*the* '*nothing*))
 
     (set-rmeta-slot-cache! rmeta-slot (build-cache))))
 
 (define* (class-rmeta-ref class slot-name key
-                          #:key (equals? eq?)
-                          (cache-set! hashq-set!)
-                          (cache-ref hashq-ref)
+                          #:key (equals? equal?)
+                          (cache-set! hash-set!)
+                          (cache-ref hash-ref)
                           dflt)
   "Search heirarchy of CLASS through the rmeta-slot named SLOT-NAME for
 value matching KEY.  This also calls maybe-build-rmeta-slot-cache! as a side