File: README.md

package info (click to toggle)
polyml 5.7.1-5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid
  • size: 40,616 kB
  • sloc: cpp: 44,142; ansic: 26,963; sh: 22,002; asm: 13,486; makefile: 602; exp: 525; python: 253; awk: 91
file content (88 lines) | stat: -rw-r--r-- 2,990 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<img src="http://www.polyml.org/images/Poly_Parrot3.gif" alt="Poly/ML logo" height="100" >

# Poly/ML

Poly/ML is a Standard ML implementation originally written in an experimental
language 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)
since version 4.0. For a full history, see [here](http://www.polyml.org/FAQ.html#history).

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.

## Table of Contents
* [Features](#features)
* [Basis](#basis)
* [Platforms and Installation](#platforms-and-installation)
* [Support](#support)

## Features

* Fast compiler
* Preferred implementation for large projects such as [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/Threads.html) - 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](http://www.polyml.org/documentation/Reference/Basis.html)
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](http://sml-family.org/Basis/manpages.html).

## Platforms and Installation

Poly/ML has native support for i386 (32- and 64-bit) and bytecode support for unsupported
architectures. For more information, see the [download](http://www.polyml.org/download.html)
page.

### Debian/Ubuntu

```bash
$ apt-get install polyml
```

### OS X

```bash
$ brew install polyml
```

### FreeBSD

```bash
$ cd /usr/ports/lang/polyml && make install
```

### Git

To build:

```bash
$ ./configure
$ make
$ make compiler
$ make install
```

To clean:
```bash
$ make clean-local clean distclean
```

## Support 

Support for Poly/ML can be found on Stackoverflow using the [polyml](http://stackoverflow.com/questions/tagged/polyml)
and [sml](http://stackoverflow.com/questions/tagged/sml) tags or on the Poly/ML
[mailing list](http://lists.inf.ed.ac.uk/mailman/listinfo/polyml) provided by the University of Edinburgh.