Poly/ML
The Poly/ML implementation of Standard ML – full multiprocessor support in the thread library and garbage collector, interactive debugger, fast compiler.
Cost / License
- Free
- Open Source
Platforms
- Mac
- Windows
- Linux
Features
Tags
- functional-programming
- parallel-programming
Poly/ML News & Activities
Recent activities
Poly/ML information
What is Poly/ML?
Poly/ML is an advanced (but little known) implementation of Standard ML.
It has a fast compiler that produces fast machine code at runtime: i.e. a running program can "eval" new SML source on the spot. Multicore hardware is supportted via native threads, mutexes and condition variables. Its runtime system performs parallel garbage collection and online sharing of immutable substructures. The debugger works via the command-line by default, but may be integrated into existing IDEs. The static phase of the compiler can produce markup for IDEs, e.g. warnings, errors, identifier scopes, inferred types of subexpressions.
Poly/ML is the preferred SML implementation for large theorem prover projects, notably Isabelle and HOL4.


Comments and Reviews
Poly/ML is the only StandardML implementation that offers both a native code compiler and an interactive REPL. I always use it when I want SML, and I think it's the most practical SML implementation right now.
My only issue with it is that the documentation often lacks explanations and usage examples.