Poly/ML – A Standard ML Implementation
这条记录涉及编程工具或代码能力更新,适合开发者评估工作流变化和可复用价值。
Poly/ML 是一个最初用实验性语言 Poly 编写的 Standard ML 实现,自 4.0 版本以来完全兼容 ML97 标准。它对 Standard ML 语言采取保守方法,避免不兼容的扩展,并增加了线程库等多种库扩展。…
Poly/ML is a Standard ML implementation originally written in an experimental language called Poly . It has been fully compatible with the ML97 standard since version 4.0. For a full history, see here .
Poly/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.
- Features
- Basis
- Installation
- Mailing List
Features
- Fast compiler
- Preferred implementation for large projects such as Isabelle and HOL .
- Foreign function interface - allows static and dynamic libraries to be loaded in Poly/ML and exposes their functions as Poly/ML functions. See here for an example of static linking.
- Symbolic debugger
- Windows programming interface
- Thread library - 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.
Basis
The documentation for the Poly/ML Basis library can be found here and includes information on global values and types as well as structures, signatures and functors. More in-depth documentation can be found at the SML Family website here .
Installation
Poly/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 page.
Mailing List
There is a mailing list for Poly/ML for questions and support.