* 8sync/actors.scm: Remove (8sync agenda) as an import.
(wrap-apply): Added, ported from agenda.scm, and which is necessary
for actors.scm to function without it.
#:use-module (fibers channels)
#:use-module (fibers conditions)
#:use-module (fibers operations)
#:use-module (fibers channels)
#:use-module (fibers conditions)
#:use-module (fibers operations)
- #:use-module (8sync agenda)
#:use-module (8sync inbox)
#:use-module (8sync rmeta-slot)
#:export (;; utilities... ought to go in their own module
#:use-module (8sync inbox)
#:use-module (8sync rmeta-slot)
#:export (;; utilities... ought to go in their own module
#:message message))
(apply method actor message (message-body message)))
#:message message))
(apply method actor message (message-body message)))
+(define-syntax-rule (wrap-apply body)
+ "Wrap possibly multi-value function in a procedure, applies all arguments"
+ (lambda args
+ (apply body args)))
+
(define-syntax-rule (build-actions (symbol method) ...)
"Construct an alist of (symbol . method), where the method is wrapped
with wrap-apply to facilitate live hacking and allow the method definition
(define-syntax-rule (build-actions (symbol method) ...)
"Construct an alist of (symbol . method), where the method is wrapped
with wrap-apply to facilitate live hacking and allow the method definition