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
funandval recdeclarations, signature constraints applied to a structure,sharing typespecifications andwhere typesignature 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
sharingof multiple structures. - 
Made compilation deterministic (eliminate output executable name from compile-time specified
@MLtonruntime 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 fileruntime option. - 
Reorganized runtime support for
IntInfoperations so that programs that do not useIntInfcompile 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, andreentrantattributes to_import. An unattributed_importis treated asimpure. Apure_importmay 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}intononexhaustiveMatchandredundantMatch(controls diagnostics forcaseexpressions,fnexpressions, andfundeclarations (which may raiseMatchon failure)) andnonexhaustiveBindandredundantBind(controls diagnostics forvaldeclarations (which may raiseBindon 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 usingmemmoverather than element-by-element constructions. 
 - 
 - 
Unsafestructure.- 
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/unionargument 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.