Releases: MLton/mlton
Releases · MLton/mlton
MLton 20241230
http://mlton.org/Release20241230
- Compiler.
- Enhance and fix bugs in
UselessandConstantPropagationSSA optimization passes. - Update LLVM codegen; using the LLVM codegen requires LLVM 15 (or higher).
- Update elaboration error messages involving constants and infix patterns and expressions.
- Accept a non-semicolon terminated final expression in the syntax of programs.
- Eliminate (expert)
-profile time-labelcompile-time option. - Fix
-pi-style piecompile-time option.
- Enhance and fix bugs in
- Runtime.
- Fix bug in heap resizing that could lead to a segmentation fault.
- Fix bug with
-align 4and mark-compact GC. - Fix bug in
GC_sequenceCopyfailing to update card map when
copying object pointers.
- Libraries.
- Basis Library.
- Fix bug in
ImperativeIO.getInstream. - Fix bug in
Date.localOffsetfor time zones east of prime meridian. - Fix bugs in
WORD.scanwhen0is followed byworxorwxbut not by more digits.
- Fix bug in
- Other libraries.
- Updated: ckit library, MLLPT library, MLRISC library, SML/NJ library
- Basis Library.
- Other.
- Add preliminary support for
wasm32-wasi. - Add support for
loongarch64architecture. - Update
Makefiles to simplify bootstrapping.
- Add preliminary support for
Binary packages available at other sites
- https://github.com/ii8/mlton-builds/releases/tag/20241230: Linux builds for many architectures as well as musl libc
MLton 20210107
http://mlton.org/Release20210117
- Compiler.
- Fix bug in
SimplifyTypesSSA optimization pass.
- Fix bug in
- Libraries.
- Other libraries.
- Updated: ckit library, MLLPT library, MLRISC library, SML/NJ library
- Other libraries.
- Other.
- Preliminary support for
arm64-darwin. - Fix bug in
Makefile.binarydetecting default position-independent style.
- Preliminary support for
Binary packages available at other sites
TINA toolbox: Includes binary releases for:
- amd64-darwin macOS Sierra 10.12 (both statically and dynamically linked against GMP),
- amd64-linux Ubuntu 14 (both statically and dynamically linked against GMP)
- amd64-mingw MSys2 (both statically and dynamically linked against GMP)
- amd64-solaris Solaris 11.4 (both statically and dynamically linked against GMP)
- arm64-darwin macOS Monterey 12.4 (Apple Silicon) (both statically and dynamically linked against GMP)
MLton 20201002
http://mlton.org/Release20201002
- Compiler
- Fixed bug in handling of weak objects during mark-compact GC.
MLton 20200817
http://mlton.org/Release20200817
- Compiler
- Fixed bug in
RssaShrinkoptimization that would result in an unbound variable and an internal compiler error.
- Fixed bug in
- Other.
- Fixes for Solaris and MinGW platforms.
MLton 20200722
http://mlton.org/Release20200722
- 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
ZoneSSA optimization pass by default; theZonepass 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
BounceVarsRSSA optimization pass to split the live ranges of RSSA variables. - Improve
RssaShrinkoptimization. - Add support for alternate globalization strategies in
ConstantPropagation. - Strengthen
Uselessoptimization with respect to a number of primitives. - Add new
DuplicateGlobalsandSplitTypesSSA optimization passes. - Introduce new
Overflow-checking primitives and remove oldOverflow-checking primitives and special-case code required (e.g.,Arithtransfers in IRs) to support them. - Add parsers for XML, SXML, SSA, and SSA2 IRs.
- Added expert
- Runtime.
- Detect and report incompatible use of ASLR/PIE on
load-world. - Added support for RISC-V architecture.
- Detect and report incompatible use of ASLR/PIE on
- Language.
- Libraries.
- Basis Library.
- Change
OS.IO.pollto not be restarted when interrupted by a signal. (This is consistent withSocket.select.) - Add
MLton.sizeAll: unit -> IntInf.intthat returns the size of reachable live data. - Change type of
MLton.sizefrom'a -> intto'a -> IntInf.int, because with 64-bit systems, the size of a single object can exceed that representable by a signed 32-bit integer.
- Change
- Other libraries.
- Updated: ckit library, MLLPT library, MLRISC library, SML/NJ library
- Basis Library.
- Tools.
- Other.
- Updates to simplify porting MLton.
- Support parallel build (i.e.,
make -j). This mainly supports platforms/packagers that use a parallelmakeby default; it does not obtain significant build speedups. - Various updates to
Makefiles. SeeMakefile.configfor common and user-customizable configuration. - Characterize MLton-LICENSE as an instance of the Historical Permission Notice and Disclaimer (HPND) license, rather than BSD-style.
MLton 20180207
http://mlton.org/Release20180207
- 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.
- Added an experimental LLVM codegen (
- 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).
- Added
- 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.
- Added
- 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.
- Added
- 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.
- Improved performance of
Unsafestructure.- Added unsafe operations for array uninitialization and raw arrays; see #207 for details.
- Other libraries.
- Updated: ckit library, MLLPT library, MLRISC library, SML/NJ library
- Basis Library.
- Tools.
- mlnlffigen
- Updated to warn and skip (rather than abort) when encountering functions with
struct/unionargument or return type.
- Updated to warn and skip (rather than abort) when encountering functions with
- mlnlffigen
For a complete list of changes and bug fixes since Release20130715, see the CHANGELOG and Bugs20130715.