guix: Use guile-3.0.
[8sync.git] / tests / test-actors.scm
index 4d7ec4b3d1a2fc6f99cedfbdcb1d82e594cce960..eb3a2de5d20835971af81b840c4786cbfaea387f 100644 (file)
@@ -1,5 +1,6 @@
 ;;; 8sync --- Asynchronous programming for Guile
 ;;; Copyright (C) 2016 Christopher Allan Webber <cwebber@dustycloud.org>
+;;; Copyright (C) 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of 8sync.
 ;;;
@@ -74,8 +75,8 @@
 ;;; Test reply / autoreply
 ;;; ======================
 
-(define-simple-actor <antsy-caller>
-  (pester-rep (wrap-apply antsy-caller-pester-rep)))
+(define-actor <antsy-caller> (<actor>)
+  ((pester-rep (wrap-apply antsy-caller-pester-rep))))
 
 (define* (antsy-caller-pester-rep actor message #:key who-to-call)
   (~display "customer> I'm calling customer service about this!\n")
@@ -92,8 +93,8 @@
                 (~display "customer> Well then!  Harumph.\n")
                 (error "Not an autoreply?  What's going on here...")))))))
 
-(define-simple-actor <diligent-rep>
-  (field-call (wrap-apply rep-field-call)))
+(define-actor <diligent-rep> (<actor>)
+  ((field-call (wrap-apply rep-field-call))))
 
 (define (rep-field-call actor message)
   (~display "good-rep> Hm, another call from a customer...\n")
     (~format "*rep hears*: ~a\n" msg)
     (~display "good-rep> I'm sorry, that's all I can do for you.\n")))
 
-(define-simple-actor <lazy-rep>
-  (field-call
-   (lambda (actor message)
-     (~display "lazy-rep> I'm not answering that.\n"))))
+(define-actor <lazy-rep> (<actor>)
+  ((field-call
+    (lambda (actor message)
+      (~display "lazy-rep> I'm not answering that.\n")))))
 
 (let* ((hive (make-hive))
        (customer (bootstrap-actor* hive <antsy-caller> "antsy-caller"))
@@ -140,8 +141,8 @@ customer> Whaaaaat?  I can't believe I got voice mail!\n"
 \f
 ;;; Cleanup tests
 
-(define-simple-actor <cleanly>
-  (*cleanup* test-call-cleanup))
+(define-actor <cleanly> (<actor>)
+  ((*cleanup* test-call-cleanup)))
 
 (define (test-call-cleanup actor message)
   (speak "Hey, I'm cleanin' up here!\n"))
@@ -165,11 +166,11 @@ customer> Whaaaaat?  I can't believe I got voice mail!\n"
 ;; The exploder self-destructs, even though run-hive has cleanup
 ;; disabled, because it cleans up on self-destruct.
 
-(define-simple-actor <exploder>
-  (explode (lambda (exploder message)
-             (speak "POOF\n")
-             (self-destruct exploder)))
-  (*cleanup* (lambda _ (speak "Cleaning up post-explosion\n"))))
+(define-actor <exploder> (<actor>)
+  ((explode (lambda (exploder message)
+              (speak "POOF\n")
+              (self-destruct exploder)))
+   (*cleanup* (lambda _ (speak "Cleaning up post-explosion\n")))))
 
 (with-fresh-speaker
  (let ((hive (make-hive)))
@@ -184,7 +185,7 @@ customer> Whaaaaat?  I can't believe I got voice mail!\n"
   (create-friend #:init-value #f
                  #:init-keyword #:create-friend)
   (actions #:allocation #:each-subclass
-           #:init-value (build-actions
+           #:init-thunk (build-actions
                          (*init* hi-on-init-init))))
 
 (define (hi-on-init-init actor message)
@@ -203,5 +204,5 @@ customer> Whaaaaat?  I can't believe I got voice mail!\n"
  (test-equal (get-spoken)
    '("Hi! jack inits now.\n" "Hi! jill inits now.\n")))
 
-(test-end "test-actors")
 (test-exit)
+(test-end "test-actors")