Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | Release20180207 |
2 | =============== | |
3 | ||
4 | Here you can download the latest public release of MLton, version 20180207. | |
5 | ||
6 | == Changes since the last public release == | |
7 | ||
8 | * Compiler. | |
9 | ** Added an experimental LLVM codegen (`-codegen llvm`); requires LLVM tools | |
10 | (`llvm-as`, `opt`, `llc`) version ≥ 3.7. | |
11 | ** Made many substantial cosmetic improvements to front-end diagnostic | |
12 | messages, especially with respect to source location regions, type inference | |
13 | for `fun` and `val rec` declarations, signature constraints applied to a | |
14 | structure, `sharing type` specifications and `where type` signature | |
15 | expressions, type constructor or type variable escaping scope, and | |
16 | nonexhaustive pattern matching. | |
17 | ** Fixed minor bugs with exception replication, precedence parsing of function | |
18 | clauses, and simultaneous `sharing` of multiple structures. | |
19 | ** Made compilation deterministic (eliminate output executable name from | |
20 | compile-time specified `@MLton` runtime arguments; deterministically generate | |
21 | magic constant for executable). | |
22 | ** Updated `-show-basis` (recursively expand structures in environments, | |
23 | displaying components with long identifiers; append `(* @ region *)` | |
24 | annotations to items shown in environment). | |
25 | ** Forced amd64 codegen to generate PIC on amd64-linux targets. | |
26 | * Runtime. | |
27 | ** Added `gc-summary-file file` runtime option. | |
28 | ** Reorganized runtime support for `IntInf` operations so that programs that | |
29 | do not use `IntInf` compile to executables with no residual dependency on GMP. | |
30 | ** Changed heap representation to store forwarding pointer for an object in | |
31 | the object header (rather than in the object data and setting the header to a | |
32 | sentinel value). | |
33 | * Language. | |
34 | ** Added support for selected SuccessorML features; see | |
35 | http://mlton.org/SuccessorML for details. | |
36 | ** Added `(*#showBasis "file" *)` directive; see | |
37 | http://mlton.org/ShowBasisDirective for details. | |
38 | ** FFI: | |
39 | *** Added `pure`, `impure`, and `reentrant` attributes to `_import`. An | |
40 | unattributed `_import` is treated as `impure`. A `pure` `_import` may be | |
41 | subject to more aggressive optimizations (common subexpression elimination, | |
42 | dead-code elimination). An `_import`-ed C function that (directly or | |
43 | indirectly) calls an `_export`-ed SML function should be attributed | |
44 | `reentrant`. | |
45 | ** ML Basis annotations. | |
46 | *** Added `allowSuccessorML {false|true}` to enable all SuccessorML features | |
47 | and other annotations to enable specific SuccessorML features; see | |
48 | http://mlton.org/SuccessorML for details. | |
49 | *** Split `nonexhaustiveMatch {warn|error|igore}` and `redundantMatch | |
50 | {warn|error|ignore}` into `nonexhaustiveMatch` and `redundantMatch` | |
51 | (controls diagnostics for `case` expressions, `fn` expressions, and `fun` | |
52 | declarations (which may raise `Match` on failure)) and `nonexhaustiveBind` | |
53 | and `redundantBind` (controls diagnostics for `val` declarations (which may | |
54 | raise `Bind` on failure)). | |
55 | *** Added `valrecConstr {warn|error|ignore}` to report when a `val rec` (or | |
56 | `fun`) declaration redefines an identifier that previously had constructor | |
57 | status. | |
58 | * Libraries. | |
59 | ** Basis Library. | |
60 | *** Improved performance of `Array.copy`, `Array.copyVec`, `Vector.append`, | |
61 | `String.^`, `String.concat`, `String.concatWith`, and other related | |
62 | functions by using `memmove` rather than element-by-element constructions. | |
63 | ** `Unsafe` structure. | |
64 | *** Added unsafe operations for array uninitialization and raw arrays; see | |
65 | https://github.com/MLton/mlton/pull/207 for details. | |
66 | ** Other libraries. | |
67 | *** Updated: ckit library, MLLPT library, MLRISC library, SML/NJ library | |
68 | * Tools. | |
69 | ** mlnlffigen | |
70 | *** Updated to warn and skip (rather than abort) when encountering functions | |
71 | with `struct`/`union` argument or return type. | |
72 | ||
73 | For a complete list of changes and bug fixes since | |
74 | <:Release20130715:>, see the | |
75 | <!ViewGitFile(mlton,on-20180207-release,CHANGELOG.adoc)> and | |
76 | <:Bugs20130715:>. | |
77 | ||
78 | == 20180207 binary packages == | |
79 | ||
80 | * AMD64 (aka "x86-64" or "x64") | |
81 | ** https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207-1.amd64-darwin.gmp-homebrew.tgz[Darwin (.tgz)] 16.7 (Mac OS X Sierra), dynamically linked against <:GnuMP:> in `/usr/local/lib` (suitable for https://brew.sh/[Homebrew] install of <:GnuMP:>) | |
82 | ** https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207-1.amd64-darwin.gmp-static.tgz[Darwin (.tgz)] 16.7 (Mac OS X Sierra), statically linked against <:GnuMP:> (but requires <:GnuMP:> for generated executables) | |
83 | ** https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207-1.amd64-linux.tgz[Linux], glibc 2.23 | |
84 | // ** Windows MinGW 32/64 https://sourceforge.net/projects/mlton/files/mlton/20180207/MLton-20180207-1.exe[self-extracting] (28MB) or https://sourceforge.net/projects/mlton/files/mlton/20180207/MLton-20180207-1.msi[MSI] (61MB) installer | |
85 | // * X86 | |
86 | // ** https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207-1.x86-cygwin.tgz[Cygwin] 1.7.5 | |
87 | // ** https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207-1.x86-linux.tgz[Linux], glibc 2.23 | |
88 | // ** https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207-1.x86-linux.static.tgz[Linux], statically linked | |
89 | // ** Windows MinGW 32/64 https://sourceforge.net/projects/mlton/files/mlton/20180207/MLton-20180207-1.exe[self-extracting] (28MB) or https://sourceforge.net/projects/mlton/files/mlton/20180207/MLton-20180207-1.msi[MSI] (61MB) installer | |
90 | ||
91 | == 20180207 source packages == | |
92 | ||
93 | * https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207.src.tgz[mlton-20180207.src.tgz] | |
94 | ||
95 | == Also see == | |
96 | ||
97 | * <:Bugs20180207:> | |
98 | * http://www.mlton.org/guide/20180207/[MLton Guide (20180207)]. | |
99 | + | |
100 | A snapshot of the MLton website at the time of release. |