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 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.smlYou 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.