The example of implementing a queue (using a serializer) is definitely part of a meta-circular definition of actor behavior. Serializers are one of the critical mechanisms identified by Hewitt, et. al. long ago. I believe that maintaining multiple virtual configurations of actors provides another important way to partition actor systems.
In either case, I don't see the problem in composing actors, especially if they have limited interactions. Since concurrency is mediated by message delivery, and message handling generally represents small finite amounts of computation, independent actor behaviors are interleaved at a very fine granularity. And they can't interfere with each other because they don't have shared mutable state. Of course, when working with traditional threaded systems, the cost of context switching encourages us to do a lot more work between context switches. I think the key to effective actor implementations is a dramatically lower context switching cost, which I have achieved in my prototype. The big mental shift in working with actors is to think in terms of concurrent, rather than sequential, composition. When I start describing the meta-circular definition of Humus, in terms of actors, the inherent pervasive fine-grained concurrency will be more clearly exposed. _______________________________________________ fonc mailing list [email protected] http://vpri.org/mailman/listinfo/fonc
