Skip to content

Releases: MLton/mlton

MLton 20210107

17 Jan 15:46
b1f1f0f
Compare
Choose a tag to compare

http://mlton.org/Release20210117

  • Compiler.
    • Fix bug in SimplifyTypes SSA optimization pass.
  • Libraries.
    • Other libraries.
      • Updated: ckit library, MLLPT library, MLRISC library, SML/NJ library
  • Other.
    • Preliminary support for arm64-darwin.
    • Fix bug in Makefile.binary detecting default position-independent style.

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

02 Oct 13:35
5ff3855
Compare
Choose a tag to compare

http://mlton.org/Release20201002

  • Compiler
    • Fixed bug in handling of weak objects during mark-compact GC.

MLton 20200817

17 Aug 09:57
4ba3671
Compare
Choose a tag to compare

http://mlton.org/Release20200817

  • 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.

MLton 20200722

22 Jul 17:39
6c6e239
Compare
Choose a tag to compare

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 Zone SSA optimization pass by default; the Zone 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 and SplitTypes SSA optimization passes.
    • Introduce new Overflow-checking primitives and remove old Overflow-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 with Socket.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 parallel make by default; it does not obtain significant build speedups.
    • Various updates to Makefiles. See Makefile.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.

MLton 20180207

07 Feb 11:12
dc01cdc
Compare
Choose a tag to compare

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 fun and val rec declarations, signature constraints applied to a structure, sharing type specifications and where 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 use IntInf 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, and reentrant attributes to _import. An unattributed _import is treated as impure. A pure _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 attributed reentrant.
    • 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} and redundantMatch {warn|error|ignore} into nonexhaustiveMatch and redundantMatch (controls diagnostics for case expressions, fn expressions, and fun declarations (which may raise Match on failure)) and nonexhaustiveBind and redundantBind (controls diagnostics for val declarations (which may raise Bind on failure)).
      • Added valrecConstr {warn|error|ignore} to report when a val rec (or fun) 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 using memmove rather than element-by-element constructions.
    • Unsafe structure.
      • 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
  • 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 and Bugs20130715.