This is an archived public release of MLton, version 20180207.
Changes since the last public release
-
Compiler.
-
Added an experimental LLVM codegen (
-codegen llvm
); requires LLVM tools (llvm-as
,opt
,llc
) version ≥ 3.7. -
Made many substantial cosmetic improvements to front-end diagnostic messages, especially with respect to source location regions, type inference for
fun
andval rec
declarations, signature constraints applied to a structure,sharing type
specifications andwhere type
signature expressions, type constructor or type variable escaping scope, and nonexhaustive pattern matching. -
Fixed minor bugs with exception replication, precedence parsing of function clauses, and simultaneous
sharing
of multiple structures. -
Made compilation deterministic (eliminate output executable name from compile-time specified
@MLton
runtime arguments; deterministically generate magic constant for executable). -
Updated
-show-basis
(recursively expand structures in environments, displaying components with long identifiers; append(* @ region *)
annotations to items shown in environment). -
Forced amd64 codegen to generate PIC on amd64-linux targets.
-
-
Runtime.
-
Added
gc-summary-file file
runtime option. -
Reorganized runtime support for
IntInf
operations so that programs that do not useIntInf
compile to executables with no residual dependency on GMP. -
Changed heap representation to store forwarding pointer for an object in the object header (rather than in the object data and setting the header to a sentinel value).
-
-
Language.
-
Added support for selected SuccessorML features; see http://mlton.org/SuccessorML for details.
-
Added
(*#showBasis "file" *)
directive; see http://mlton.org/ShowBasisDirective for details. -
FFI:
-
Added
pure
,impure
, andreentrant
attributes to_import
. An unattributed_import
is treated asimpure
. Apure
_import
may be subject to more aggressive optimizations (common subexpression elimination, dead-code elimination). An_import
-ed C function that (directly or indirectly) calls an_export
-ed SML function should be attributedreentrant
.
-
-
ML Basis annotations.
-
Added
allowSuccessorML {false|true}
to enable all SuccessorML features and other annotations to enable specific SuccessorML features; see http://mlton.org/SuccessorML for details. -
Split
nonexhaustiveMatch {warn|error|igore}
andredundantMatch {warn|error|ignore}
intononexhaustiveMatch
andredundantMatch
(controls diagnostics forcase
expressions,fn
expressions, andfun
declarations (which may raiseMatch
on failure)) andnonexhaustiveBind
andredundantBind
(controls diagnostics forval
declarations (which may raiseBind
on failure)). -
Added
valrecConstr {warn|error|ignore}
to report when aval rec
(orfun
) declaration redefines an identifier that previously had constructor status.
-
-
-
Libraries.
-
Basis Library.
-
Improved performance of
Array.copy
,Array.copyVec
,Vector.append
,String.^
,String.concat
,String.concatWith
, and other related functions by usingmemmove
rather than element-by-element constructions.
-
-
Unsafe
structure.-
Added unsafe operations for array uninitialization and raw arrays; see https://github.com/MLton/mlton/pull/207 for details.
-
-
Other libraries.
-
Updated: ckit library, MLLPT library, MLRISC library, SML/NJ library
-
-
-
Tools.
-
mlnlffigen
-
Updated to warn and skip (rather than abort) when encountering functions with
struct
/union
argument or return type.
-
-
For a complete list of changes and bug fixes since
Release20130715, see the
CHANGELOG.adoc
and
Bugs20130715.
20180207 binary packages
-
AMD64 (aka "x86-64" or "x64")
-
Darwin (.tgz) 16.7 (Mac OS X Sierra), dynamically linked against GMP in
/usr/local/lib
(suitable for Homebrew install of GMP) -
Darwin (.tgz) 16.7 (Mac OS X Sierra), statically linked against GMP (but requires GMP for generated executables)
-
Linux, glibc 2.23
-
20180207 source packages
Also see
-
A snapshot of the MLton website at the time of release.