{"slug": "poly-ml-a-standard-ml-implementation", "title": "Poly/ML – A Standard ML Implementation", "summary": "Poly/ML, a Standard ML implementation compatible with the ML97 standard since version 4.0, offers a fast compiler, foreign function interface, symbolic debugger, and thread library. It is the preferred implementation for large projects like Isabelle and HOL, and supports i386 and ARM architectures natively.", "body_md": "Poly/ML is a Standard ML implementation originally written in an experimental\nlanguage called [Poly](http://www.polyml.org/Doc.html#poly). It has been fully compatible with the [ML97 standard](http://sml-family.org/sml97-defn.pdf)\nsince version 4.0. For a full history, see [here](http://www.polyml.org/FAQ.html#history).\n\nPoly/ML takes a conservative approach to the Standard ML language and avoids incompatible extensions. It has added various library extensions particularly the thread library. Poly/ML's active development and unique features make it an exceptional implementation.\n\n- Fast compiler\n- Preferred implementation for large projects such as\n[Isabelle](https://isabelle.in.tum.de/)and[HOL](https://hol-theorem-prover.org/). [Foreign function interface](http://www.polyml.org/documentation/Tutorials/CInterface.html)- allows static and dynamic libraries to be loaded in Poly/ML and exposes their functions as Poly/ML functions. See[here](https://www.mail-archive.com/polyml@inf.ed.ac.uk/msg00940.html)for an example of static linking.[Symbolic debugger](http://www.polyml.org/documentation/Tutorials/Debugging.html)[Windows programming interface](http://www.polyml.org/documentation/Tutorials/WindowsProgramming.html)[Thread library](http://www.polyml.org/documentation/Reference/Thread.xml)- provides a simplified version of Posix threads modified for Standard ML and allows Poly/ML programs to make use of multiple cores. The garbage collector is also parallelised.\n\nThe documentation for the Poly/ML Basis library can be found [here](http://www.polyml.org/documentation/Reference/Basis.html)\nand includes information on global values and types as well as structures,\nsignatures and functors. More in-depth documentation can be found at\nthe SML Family website [here](http://sml-family.org/Basis/manpages.html).\n\nPoly/ML has native support for i386 (32- and 64-bit) and ARM (64-bit only). It will also work on other architectures using a byte-code interpreter. For more information, see the [download](http://www.polyml.org/download.html) page.\n\nThere is a [mailing list](https://lists.polyml.org/postorius/lists/polyml.lists.polyml.org/) for Poly/ML for questions and support.", "url": "https://wpnews.pro/news/poly-ml-a-standard-ml-implementation", "canonical_source": "https://github.com/polyml/polyml", "published_at": "2026-07-06 22:28:06+00:00", "updated_at": "2026-07-07 01:48:20.747460+00:00", "lang": "en", "topics": ["developer-tools"], "entities": ["Poly/ML", "Standard ML", "Isabelle", "HOL", "ML97"], "alternates": {"html": "https://wpnews.pro/news/poly-ml-a-standard-ml-implementation", "markdown": "https://wpnews.pro/news/poly-ml-a-standard-ml-implementation.md", "text": "https://wpnews.pro/news/poly-ml-a-standard-ml-implementation.txt", "jsonld": "https://wpnews.pro/news/poly-ml-a-standard-ml-implementation.jsonld"}}