Installation - MLton Standard ML Compiler (SML Compiler)

MLton MLTONWIKIVERSION | Installation |
Home Index

MLton runs on a variety of platforms and is distributed in both source and binary form. The format for the binary package depends on the platform. The binary package will install under `/usr` or `/usr/local`, depending on the platform. A `.tgz` or `.tbz` binary package should be extracted in the root directory. If you install MLton somewhere else, you must set the `lib` variable in the `/usr/bin/mlton` script to the directory that contains the libraries (`/usr/lib/mlton` by default).

MLton requires that you have the GNU multiprecision library installed on your machine. MLton must be able to find both the `gmp.h` include file and the `libgmp.a` (or `libgmp.so` or `libgmp.dylib`) library. If you see the error message `gmp.h: No such file or directory`, you should copy `gmp.h` to `/usr/lib/mlton/self/include`. If you see the error message `/usr/bin/ld: cannot find -lgmp`, you should add a `-link-opt -L` argument in the `/usr/bin/mlton` script so that the linker can find `libgmp`. If, for example, `libgmp.a` is in `/tmp`, then add `-link-opt -L/tmp`.

Installation of MLton creates the following files and directories.

- `/usr/bin/mllex`
  The MLLex lexer generator.

- `/usr/bin/mlnlffigen`
  The ML-NLFFI tool.

- `/usr/bin/mlprof`
  A Profiling tool.

- `/usr/bin/mlton`
  A script to call the compiler. This script may be moved anywhere, however, it makes use of files in `/usr/lib/mlton`.

- `/usr/bin/mlyacc`
  The MLYacc parser generator.

- `/usr/lib/mlton`
  Directory containing libraries and include files needed during compilation.

- `/usr/share/man/man1/mllex.1`, `mlnlffigen.1`, `mlprof.1`, `mlton.1`, `mlyacc.1`
  Man pages.

- `/usr/share/doc/mlton`
  Directory containing the user guide for MLton, mllex, and mlyacc, as well as example SML programs (in the `examples` dir), and license information.

## Hello, World!

Once you have installed MLton, create a file called `hello-world.sml` with the following contents.

    print "Hello, world!\n";

Now create an executable, `hello-world`, with the following command.

    mlton hello-world.sml

You can now run `hello-world` to verify that it works. There are more small examples in `/usr/share/doc/mlton/examples`.

## Installation on Cygwin

When installing the Cygwin `tgz`, you should use Cygwin's `bash` and `tar`. The use of an archiving tool that is not aware of Cygwin's mounts will put the files in the wrong place.

Last edited on 2007-08-30 20:06:41 by MatthewFluet.