Overview
µFork is a novel machine architecture
based on the Actor Model of computation.
Actors are stateful objects that react to message-events.
Each actor has a unique address.
Each event designates the address of the actor to which it will be delivered.
An actor handles events one-at-a-time,
accumulating a set of effects which include:
- Creating new actors (create)
- Generating new message-events (send)
- Defining the actor's future behavior (become)
Actor creation is very cheap,
just one instruction and one memory cell.
Message send is equally cheap,
and can extend the connectivity graph
by transmitting actor addresses.
All data values in µFork are immutable.
This makes them safe to share in message-events.
The only mutation allowed is actor behavior replacement (become),
which designates the code and data that will be used to handle future message-events.
Event handling ends with either a commit or abort.
If the actor commits, the accumulated effects are applied to the system.
If the actor aborts, the effects are discarded.
µFork is a realization of the ideas described in
"Memory Safety
Simplifies Microprocessor Design",
which explains the motivation and rationale in more detail.