4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <meta name="generator" content="AsciiDoc 8.6.9">
6 <title>Release20180207</title>
7 <link rel="stylesheet" href="./asciidoc.css" type="text/css">
8 <link rel="stylesheet" href="./pygments.css" type="text/css">
11 <script type="text/javascript" src="./asciidoc.js"></script>
12 <script type="text/javascript">
17 <link rel="stylesheet" href="./mlton.css" type="text/css">
19 <body class="article">
21 <div id="banner-home">
22 <a href="./Home">MLton 20180207</a>
26 <h1>Release20180207</h1>
30 <div class="sectionbody">
31 <div class="paragraph"><p>Here you can download the latest public release of MLton, version 20180207.</p></div>
35 <h2 id="_changes_since_the_last_public_release">Changes since the last public release</h2>
36 <div class="sectionbody">
37 <div class="ulist"><ul>
42 <div class="ulist"><ul>
45 Added an experimental LLVM codegen (<span class="monospaced">-codegen llvm</span>); requires LLVM tools
46 (<span class="monospaced">llvm-as</span>, <span class="monospaced">opt</span>, <span class="monospaced">llc</span>) version ≥ 3.7.
51 Made many substantial cosmetic improvements to front-end diagnostic
52 messages, especially with respect to source location regions, type inference
53 for <span class="monospaced">fun</span> and <span class="monospaced">val rec</span> declarations, signature constraints applied to a
54 structure, <span class="monospaced">sharing type</span> specifications and <span class="monospaced">where type</span> signature
55 expressions, type constructor or type variable escaping scope, and
56 nonexhaustive pattern matching.
61 Fixed minor bugs with exception replication, precedence parsing of function
62 clauses, and simultaneous <span class="monospaced">sharing</span> of multiple structures.
67 Made compilation deterministic (eliminate output executable name from
68 compile-time specified <span class="monospaced">@MLton</span> runtime arguments; deterministically generate
69 magic constant for executable).
74 Updated <span class="monospaced">-show-basis</span> (recursively expand structures in environments,
75 displaying components with long identifiers; append <span class="monospaced">(* @ region *)</span>
76 annotations to items shown in environment).
81 Forced amd64 codegen to generate PIC on amd64-linux targets.
90 <div class="ulist"><ul>
93 Added <span class="monospaced">gc-summary-file file</span> runtime option.
98 Reorganized runtime support for <span class="monospaced">IntInf</span> operations so that programs that
99 do not use <span class="monospaced">IntInf</span> compile to executables with no residual dependency on GMP.
104 Changed heap representation to store forwarding pointer for an object in
105 the object header (rather than in the object data and setting the header to a
115 <div class="ulist"><ul>
118 Added support for selected SuccessorML features; see
119 <a href="http://mlton.org/SuccessorML">http://mlton.org/SuccessorML</a> for details.
124 Added <span class="monospaced">(*#showBasis "file" *)</span> directive; see
125 <a href="http://mlton.org/ShowBasisDirective">http://mlton.org/ShowBasisDirective</a> for details.
132 <div class="ulist"><ul>
135 Added <span class="monospaced">pure</span>, <span class="monospaced">impure</span>, and <span class="monospaced">reentrant</span> attributes to <span class="monospaced">_import</span>. An
136 unattributed <span class="monospaced">_import</span> is treated as <span class="monospaced">impure</span>. A <span class="monospaced">pure</span> <span class="monospaced">_import</span> may be
137 subject to more aggressive optimizations (common subexpression elimination,
138 dead-code elimination). An <span class="monospaced">_import</span>-ed C function that (directly or
139 indirectly) calls an <span class="monospaced">_export</span>-ed SML function should be attributed
140 <span class="monospaced">reentrant</span>.
147 ML Basis annotations.
149 <div class="ulist"><ul>
152 Added <span class="monospaced">allowSuccessorML {false|true}</span> to enable all SuccessorML features
153 and other annotations to enable specific SuccessorML features; see
154 <a href="http://mlton.org/SuccessorML">http://mlton.org/SuccessorML</a> for details.
159 Split <span class="monospaced">nonexhaustiveMatch {warn|error|igore}</span> and <span class="monospaced">redundantMatch
160 {warn|error|ignore}</span> into <span class="monospaced">nonexhaustiveMatch</span> and <span class="monospaced">redundantMatch</span>
161 (controls diagnostics for <span class="monospaced">case</span> expressions, <span class="monospaced">fn</span> expressions, and <span class="monospaced">fun</span>
162 declarations (which may raise <span class="monospaced">Match</span> on failure)) and <span class="monospaced">nonexhaustiveBind</span>
163 and <span class="monospaced">redundantBind</span> (controls diagnostics for <span class="monospaced">val</span> declarations (which may
164 raise <span class="monospaced">Bind</span> on failure)).
169 Added <span class="monospaced">valrecConstr {warn|error|ignore}</span> to report when a <span class="monospaced">val rec</span> (or
170 <span class="monospaced">fun</span>) declaration redefines an identifier that previously had constructor
182 <div class="ulist"><ul>
187 <div class="ulist"><ul>
190 Improved performance of <span class="monospaced">Array.copy</span>, <span class="monospaced">Array.copyVec</span>, <span class="monospaced">Vector.append</span>,
191 <span class="monospaced">String.^</span>, <span class="monospaced">String.concat</span>, <span class="monospaced">String.concatWith</span>, and other related
192 functions by using <span class="monospaced">memmove</span> rather than element-by-element constructions.
199 <span class="monospaced">Unsafe</span> structure.
201 <div class="ulist"><ul>
204 Added unsafe operations for array uninitialization and raw arrays; see
205 <a href="https://github.com/MLton/mlton/pull/207">https://github.com/MLton/mlton/pull/207</a> for details.
214 <div class="ulist"><ul>
217 Updated: ckit library, MLLPT library, MLRISC library, SML/NJ library
228 <div class="ulist"><ul>
233 <div class="ulist"><ul>
236 Updated to warn and skip (rather than abort) when encountering functions
237 with <span class="monospaced">struct</span>/<span class="monospaced">union</span> argument or return type.
245 <div class="paragraph"><p>For a complete list of changes and bug fixes since
246 <a href="Release20130715">Release20130715</a>, see the
247 <a href="https://github.com/MLton/mlton/blob/on-20180207-release/CHANGELOG.adoc"><span class="monospaced">CHANGELOG.adoc</span></a> and
248 <a href="Bugs20130715">Bugs20130715</a>.</p></div>
252 <h2 id="_20180207_binary_packages">20180207 binary packages</h2>
253 <div class="sectionbody">
254 <div class="ulist"><ul>
257 AMD64 (aka "x86-64" or "x64")
259 <div class="ulist"><ul>
262 <a href="https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207-1.amd64-darwin.gmp-homebrew.tgz">Darwin (.tgz)</a> 16.7 (Mac OS X Sierra), dynamically linked against <a href="GnuMP">GnuMP</a> in <span class="monospaced">/usr/local/lib</span> (suitable for <a href="https://brew.sh/">Homebrew</a> install of <a href="GnuMP">GnuMP</a>)
267 <a href="https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207-1.amd64-darwin.gmp-static.tgz">Darwin (.tgz)</a> 16.7 (Mac OS X Sierra), statically linked against <a href="GnuMP">GnuMP</a> (but requires <a href="GnuMP">GnuMP</a> for generated executables)
272 <a href="https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207-1.amd64-linux.tgz">Linux</a>, glibc 2.23
286 <h2 id="_20180207_source_packages">20180207 source packages</h2>
287 <div class="sectionbody">
288 <div class="ulist"><ul>
291 <a href="https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207.src.tgz">mlton-20180207.src.tgz</a>
298 <h2 id="_also_see">Also see</h2>
299 <div class="sectionbody">
300 <div class="ulist"><ul>
303 <a href="Bugs20180207">Bugs20180207</a>
308 <a href="http://www.mlton.org/guide/20180207/">MLton Guide (20180207)</a>.
310 <div class="paragraph"><p>A snapshot of the MLton website at the time of release.</p></div>
316 <div id="footnotes"><hr></div>
318 <div id="footer-text">
320 <div id="footer-badges">