MultiMLton is a compiler and runtime environment that targets scalable multicore platforms. It is an extension of MLton, an open-source, whole-program, optimizing Standard ML compiler. It combines new language abstractions and associated compiler analyses for expressing and implementing various kinds of fine-grained parallelism (safe futures, speculation, transactions, etc.), along with a sophisticated runtime system tuned to efficiently handle large numbers of lightweight threads.   

    MultiMLton, like Erlang and Concurrent ML (CML), among others, defines a programming model in which threads primarily communicate via message-passing. It differs from these and other related efforts insofar as the abstractions it provides permit

  1. Expression of isolation of communication effects among groups of communicating threads

  2. Composable speculative actions that are message-passing aware

  3. Construction of asynchronous events that seamlessly integrate abstract asynchronous communication protocols with abstract CML-style events

  4. Deterministic concurrency within threads to enable the extraction of additional parallelism when feasible and profitable

    MultiMLton can be downloaded from here.