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.