-
Some software resources for TINA developers and fellow MLton users
Last updated: Tue Aug 30 18:00:15 CEST 2022
Contact
MLton
MLton 20210117
-
Precompiled mlton compilers, release 20210117 (as built by make [TARGET_ARCH=amd64] && make binary-release).
As of release 20210117, 32bit binaries are no more provided here; they could still be built for some targets, but 32bit code tends to be deprecated by current operating systems.
GMP static
These versions are statically linked against gmp-6.2.0 and statically linking applications against it.
For portability, libgmp is compiled for generic processors (--build=x86_64 ABI=[64]), possibly at the cost of some performance.
libgmp is not compiled with -fpie, so, on platforms where gcc is configured with --enable-default-pie (e.g. Ubuntu 18),
mlton must be used with option -pi-style npi.
Installation: unpack archive under (say) /opt on linux (/c/opt on windows) then add /opt/mlton-20210117-XX/bin (/c/opt/mlton-20210117-XX/bin on windows) to your PATH variable.
If you prefer executables not statically linked against gmp, just remove libgmp.a and gmp.h from the archive. You may then have to specify variables GMP_INC_DIR and GMP_LIB_DIR in script mlton so the C compiler can find libgmp. Compiling with -pi-style npi is not mandatory then, and gmp performances may improve.
Check file README in distributions for installation alternatives.
mlton-20210117-1.amd64-linux-glibc2.19-gmp-static.tgz (Ubuntu 14)
mlton-20210117-1.amd64-darwin-16.7-gmp-static.tgz (10.12 Sierra)
mlton-20210117-1.arm64-darwin-21.6-gmp-static.tgz (12.4 Monterey Apple Silicon)
mlton-20210117-1.amd64-solaris-gmp-static.tgz (11.4)
mlton-20210117-1.amd64-mingw-gmp-static.tgz (msys2, gcc 10.1.0)
GMP dynamic
These versions are dynamically linked against an installed gmp (in compilers and applications).
To be used if the above compilers fail to work, or if pie is desired, or if your applications critically rely on IntInf performances.
Install as above; check instructions in file README for alternatives or if libgmp does not stand at a standard place.
mlton-20210117-1.amd64-linux-glibc2.19-gmp-dynamic.tgz (Ubuntu 14)
mlton-20210117-1.amd64-darwin-16.7-gmp-dynamic.tgz (10.12 Sierra)
mlton-20210117-1.arm64-darwin-21.6-gmp-dynamic.tgz (12.4 Monterey Apple Silicon)
mlton-20210117-1.amd64-solaris-gmp-dynamic.tgz (11.4)
mlton-20210117-1.amd64-mingw-gmp-dynamic.tgz (msys2, gcc 10.1.0)
NOTE: All these compilers can be bootstrapped from the MLton 20210117 sources and the 20201002 compilers below.
The details about bootstrapping the arm64-darwin versions for Apple Silicon can be found in page
howto-arm64-darwin
MLton 20201002
-
Precompiled mlton compilers, release 20201002 (as built by make [TARGET_ARCH=x86|amd64] && make binary-release).
GMP static
These versions are statically linked against gmp-6.2.0 and statically linking applications against it.
For portability, libgmp is compiled for generic processors (--build=x86_64 ABI=[32|64]), at the cost of some performance.
libgmp is not compiled with -fpie, so, on platforms where gcc is configured with --enable-default-pie (e.g. Ubuntu 18),
mlton must be used with option -pi-style npi.
Installation: unpack archive under (say) /opt on linux (/c/opt on windows) then add /opt/mlton-20201002-XX/bin (/c/opt/mlton-20201002-XX/bin on windows) to your PATH variable.
If you prefer executables not statically linked against gmp, just remove libgmp.a and gmp.h from the archive. You may then have to specify variables GMP_INC_DIR and GMP_LIB_DIR in script mlton so the C compiler can find libgmp. Compiling with -pi-style npi is not mandatory then, and gmp performances may improve.
Check file README in distributions for installation alternatives.
mlton-20201002-1.x86-linux-gmp-static.tgz (glibc 2.23, Ubuntu 16)
mlton-20201002-1.amd64-linux-gmp-static.tgz (glibc 2.19, Ubuntu 14)
mlton-20201002-1.amd64-darwin-16.7-gmp-static.tgz (10.12 Sierra)
mlton-20201002-1.x86-solaris-gmp-static.tgz (11.4)
mlton-20201002-1.amd64-solaris-gmp-static.tgz (11.4)
mlton-20201002-1.x86-mingw-gmp-static.tgz (msys2, gcc 10.1.0)
mlton-20201002-1.amd64-mingw-gmp-static.tgz (msys2, gcc 10.1.0)
GMP dynamic
These versions are dynamically linked against an installed gmp (in compilers and applications).
To be used if the above compilers fail to work, or if pie is desired, or if your applications critically rely on IntInf performances.
Install as above; check instructions in file README for alternatives or if libgmp does not stand at a standard place.
mlton-20201002-1.x86-linux-gmp-dynamic.tgz (glibc 2.23, Ubuntu 16)
mlton-20201002-1.amd64-linux-gmp-dynamic.tgz (glibc 2.19, Ubuntu 14)
mlton-20201002-1.amd64-darwin-16.7-gmp-dynamic.tgz (10.12 Sierra)
mlton-20201002-1.x86-solaris-gmp-dynamic.tgz (11.4)
mlton-20201002-1.amd64-solaris-gmp-dynamic.tgz (11.4)
mlton-20201002-1.x86-mingw-gmp-dynamic.tgz (msys2, gcc 10.1.0)
mlton-20201002-1.amd64-mingw-gmp-dynamic.tgz (msys2, gcc 10.1.0)
NOTE: All these compilers can be bootstrapped from the MLton 20201002 sources and the 20180207 compilers below.
Building the mingw versions requires to apply first
this patch to the file lib/mlton/sml/basis/mlton/mlton.sig, and
that patch to file lib/mlton/sml/basis/mlton/mlton.sml (both in the installed
binary distribution in use of mlton 20180207 for mingw).
MLton 20200817
MLton 20200722
(Superseded by above 20201002)
MLton 20180207
-
Precompiled mlton compilers, release 20180207 (as built by make [TARGET_ARCH=x86|amd64]).
All versions statically linked against gmp-6.0.0 and statically linking applications against it.
Installation: unpack archive under (say) /opt on linux (/c/opt on windows) then add /opt/mlton-20180207-XX/bin (/c/opt/mlton-20180207-XX/bin on windows) to your PATH variable.
mlton-20180207-x86-linux.tgz (glibc 2.19)
mlton-20180207-amd64-linux.tgz (glibc 2.19)
mlton-20180207-x86-darwin.tgz (10.12 Sierra)
mlton-20180207-amd64-darwin.tgz (10.12 Sierra)
mlton-20180207-x86-solaris.tgz (11.3)
mlton-20180207-amd64-solaris.tgz (11.3)
mlton-20180207-x86-mingw.tgz (msys2, gcc 10.1.0)
mlton-20180207-amd64-mingw.tgz msys2, (gcc 10.1.0)
NOTE: All these compilers can be bootstrapped from the MLton 201809207 sources and the 20150928 compilers below.
Building the mingw versions requires to apply that patch
to file runtime/util.c of the MLton 201809207 sources.
MLton 20150928
-
Precompiled mlton as of September 28, 2015 (as built by make-all-no-docs).
All versions statically linked against gmp-6.0.0 (unless otherwise mentioned) and statically linking applications against it.
Installation: unpack archive under (say) /opt on linux (/c/opt on windows) then add /opt/mlton-20150928/bin (/c/opt/mlton-20150109/bin on windows) to your PATH variable.
mlton-20150928-x86-linux.tgz
mlton-20150928-amd64-linux.tgz
mlton-20150928-x86-darwin.tgz
mlton-20150928-amd64-darwin.tgz
mlton-20150928-x86-solaris.tgz
mlton-20150928-amd64-solaris.tgz
mlton-20150928-all-mingw-443.tgz (32 bit default, 64 bit by -target x86_64-w64-mingw32)
use with gcc 4.4.3. Statically linked with gmp-4.3.1 and statically linking it with applications.
mlton-20150928-x86-mingw-492.tgz
mlton-20150928-amd64-mingw-492.tgz
mlton-20150928-all-mingw-492.tgz (32 bit default, 64 bit by -target x86_64-w64-mingw32)
use with gcc 4.9.2. Statically linked with gmp-6.0.0 and statically linking it with applications.
NOTE: Due to gcc changes in the Windows 64bit ABI, building mlton for Windows 64bit
on current mingw requires to apply that patch
to file mlton/main/main.fun in the mlton sources.
The patch disables generation of extra "_" in assembly labels for targetOS MinGW
and codegen AMD64Codegen.
MinGW
Installing MinGW with 32-bit and 64-bit support
Using the above mlton compilers for MinGW requires a proper installation of a MinGW compiler on your Windows machine.Thanks to msys2 shell and the pacman package manager, this is easier nowadays than it used to be.
The simplest is to proceed as explained in how-to-install-mingw-w64-and-msys2 (first answer). See also install guide for full details.
-
Install the Msys2 shell
-
An installer and installation instructions can be found at msys2.org.
-
pacman -S mingw-w64-i686-gcc (32 bits)
pacman -S mingw-w64-x86_64-gcc (64 bits)
-
pacman -S bison patch
-
pacman -S diffutils zip unzip curl
pacman -S emacs (or vim, or ...)
Setup user environment
-
add your prefered command aliases and configuration options to .bashrc
Installing mlton-20200817-x86-mingw (say) in /c/opt
In a msys2 32-bit shell, enter:-
mkdir -p /c/opt
cd /c/opt
curl -O http://projects.laas.fr/tina/software/mlton-20200817-x86-mingw.tgz
tar xzf mlton-20200817-x86-mingw.tgz
rm mlton-20200817-x86-mingw.tgz
cd
echo "export PATH=/c/opt/mlton-20200817-x86-mingw/bin:$PATH" >> .bashrc