Here you can download the latest public release of MLton, version 20201002.
Changes since MLton 20200817
-
Compiler.
-
Fixed bug in handling of weak objects during mark-compact GC.
-
-
Other.
-
Fixes for Solaris and MinGW platforms.
-
For a complete list of changes and bug fixes since
Release20180207, see the
CHANGELOG.adoc
and
Bugs20180207.
Changes since MLton 20200722
-
Compiler.
-
Fixed bug in
RssaShrink
optimization that would result in an unbound variable and an internal compiler error.
-
-
Other.
-
Fixes for Solaris and MinGW platforms.
-
For a complete list of changes and bug fixes since
Release20180207, see the
CHANGELOG.adoc
and
Bugs20180207.
Changes since MLton 20180207
-
Compiler.
-
Added expert
-pi-style {default|npi|pic|pie}
and-native-pic {false|true}
options, which can be used to override a target-determined default. -
Fix a number of instances of excessive live data during compilation.
-
Disable
Zone
SSA optimization pass by default; theZone
pass is known to not be safe-for-space. -
Statically allocate and initialize some global objects.
-
Many updates and improvements to C and LLVM codegens.
-
Add new
BounceVars
RSSA optimization pass to split the live ranges of RSSA variables. -
Improve
RssaShrink
optimization. -
Add support for alternate globalization strategies in
ConstantPropagation
. -
Strengthen
Useless
optimization with respect to a number of primitives. -
Add new
DuplicateGlobals
andSplitTypes
SSA optimization passes. -
Introduce new
Overflow
-checking primitives and remove oldOverflow
-checking primitives and special-case code required (e.g.,Arith
transfers in IRs) to support them. -
Add parsers for XML, SXML, SSA, and SSA2 IRs.
-
-
Runtime.
-
Detect and report incompatible use of ASLR/PIE on
load-world
. -
Added support for RISC-V architecture.
-
-
Language.
-
Libraries.
-
Basis Library.
-
Change
OS.IO.poll
to not be restarted when interrupted by a signal. (This is consistent withSocket.select
.) -
Add
MLton.sizeAll: unit -> IntInf.int
that returns the size of reachable live data. -
Change type of
MLton.size
from'a -> int
to'a -> IntInf.int
, because with 64-bit systems, the size of a single object can exceed that representable by a signed 32-bit integer.
-
-
Other libraries.
-
Updated: ckit library, MLLPT library, MLRISC library, SML/NJ library
-
-
-
Tools.
-
Other.
-
Updates to simplify porting MLton.
-
Support parallel build (i.e.,
make -j
). This mainly supports platforms/packagers that use a parallelmake
by default; it does not obtain significant build speedups. -
Various updates to
Makefile
-s. SeeMakefile.config
for common and user-customizable configuration. -
Characterize MLton-LICENSE as an instance of the Historical Permission Notice and Disclaimer (HPND) license, rather than BSD-style.
-
For a complete list of changes and bug fixes since
Release20180207, see the
CHANGELOG.adoc
and
Bugs20180207.
20201002 binary packages
-
AMD64 (aka "x86-64" or "x64")
-
Darwin (.tgz) 19.6 (Mac OS X Catalina), dynamically linked against GMP in
/usr/local/lib
(suitable for Homebrew install of GMP) -
Darwin (.tgz) 19.6 (Mac OS X Catalina), statically linked against GMP (but requires GMP for generated executables)
-
Darwin (.tgz) 17.7 (Mac OS X High Sierra), dynamically linked against GMP in
/usr/local/lib
(suitable for Homebrew install of GMP) -
Darwin (.tgz) 17.7 (Mac OS X High Sierra), statically linked against GMP (but requires GMP for generated executables)
-
Linux (.tgz), glibc 2.27 (Ubuntu 18.04)
-
20201002 source packages
Also see
-
A snapshot of the MLton website at the time of release.