Distributed Channels and Threads in SML

We have incorporated the Mach operating system interprocess communication facilities into the runtime system of SML/NJ and provided a clean ML interface to them. To shield the user from the complexities of writing IPC interfaces, we have also supplied a program generator based on Mach's MIG. Using these tools along with Greg Morrisett's ML threads, we have built a distributed implementation of synchronous channels and threads based on the Facile language model. A key feature is that a "select" or "choice" operator is provided, allowing a thread to attempt sends or receives to several channels at once, with only one succeeding. Implementing this in a distributed environment is non-trivial.
Fritz Knabe <knabe@cs.virginia.edu>
Last modified: Thu Jan 30 11:30:03 EST 2003