Import Upstream version 20180207
[hcoop/debian/mlton.git] / doc / guide / localhost / Release20180207
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
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">
9
10
11 <script type="text/javascript" src="./asciidoc.js"></script>
12 <script type="text/javascript">
13 /*<![CDATA[*/
14 asciidoc.install();
15 /*]]>*/
16 </script>
17 <link rel="stylesheet" href="./mlton.css" type="text/css">
18 </head>
19 <body class="article">
20 <div id="banner">
21 <div id="banner-home">
22 <a href="./Home">MLton 20180207</a>
23 </div>
24 </div>
25 <div id="header">
26 <h1>Release20180207</h1>
27 </div>
28 <div id="content">
29 <div id="preamble">
30 <div class="sectionbody">
31 <div class="paragraph"><p>Here you can download the latest public release of MLton, version 20180207.</p></div>
32 </div>
33 </div>
34 <div class="sect1">
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>
38 <li>
39 <p>
40 Compiler.
41 </p>
42 <div class="ulist"><ul>
43 <li>
44 <p>
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 &ge; 3.7.
47 </p>
48 </li>
49 <li>
50 <p>
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.
57 </p>
58 </li>
59 <li>
60 <p>
61 Fixed minor bugs with exception replication, precedence parsing of function
62 clauses, and simultaneous <span class="monospaced">sharing</span> of multiple structures.
63 </p>
64 </li>
65 <li>
66 <p>
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).
70 </p>
71 </li>
72 <li>
73 <p>
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).
77 </p>
78 </li>
79 <li>
80 <p>
81 Forced amd64 codegen to generate PIC on amd64-linux targets.
82 </p>
83 </li>
84 </ul></div>
85 </li>
86 <li>
87 <p>
88 Runtime.
89 </p>
90 <div class="ulist"><ul>
91 <li>
92 <p>
93 Added <span class="monospaced">gc-summary-file file</span> runtime option.
94 </p>
95 </li>
96 <li>
97 <p>
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.
100 </p>
101 </li>
102 <li>
103 <p>
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
106 sentinel value).
107 </p>
108 </li>
109 </ul></div>
110 </li>
111 <li>
112 <p>
113 Language.
114 </p>
115 <div class="ulist"><ul>
116 <li>
117 <p>
118 Added support for selected SuccessorML features; see
119 <a href="http://mlton.org/SuccessorML">http://mlton.org/SuccessorML</a> for details.
120 </p>
121 </li>
122 <li>
123 <p>
124 Added <span class="monospaced">(*#showBasis "file" *)</span> directive; see
125 <a href="http://mlton.org/ShowBasisDirective">http://mlton.org/ShowBasisDirective</a> for details.
126 </p>
127 </li>
128 <li>
129 <p>
130 FFI:
131 </p>
132 <div class="ulist"><ul>
133 <li>
134 <p>
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>.
141 </p>
142 </li>
143 </ul></div>
144 </li>
145 <li>
146 <p>
147 ML Basis annotations.
148 </p>
149 <div class="ulist"><ul>
150 <li>
151 <p>
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.
155 </p>
156 </li>
157 <li>
158 <p>
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)).
165 </p>
166 </li>
167 <li>
168 <p>
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
171 status.
172 </p>
173 </li>
174 </ul></div>
175 </li>
176 </ul></div>
177 </li>
178 <li>
179 <p>
180 Libraries.
181 </p>
182 <div class="ulist"><ul>
183 <li>
184 <p>
185 Basis Library.
186 </p>
187 <div class="ulist"><ul>
188 <li>
189 <p>
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.
193 </p>
194 </li>
195 </ul></div>
196 </li>
197 <li>
198 <p>
199 <span class="monospaced">Unsafe</span> structure.
200 </p>
201 <div class="ulist"><ul>
202 <li>
203 <p>
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.
206 </p>
207 </li>
208 </ul></div>
209 </li>
210 <li>
211 <p>
212 Other libraries.
213 </p>
214 <div class="ulist"><ul>
215 <li>
216 <p>
217 Updated: ckit library, MLLPT library, MLRISC library, SML/NJ library
218 </p>
219 </li>
220 </ul></div>
221 </li>
222 </ul></div>
223 </li>
224 <li>
225 <p>
226 Tools.
227 </p>
228 <div class="ulist"><ul>
229 <li>
230 <p>
231 mlnlffigen
232 </p>
233 <div class="ulist"><ul>
234 <li>
235 <p>
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.
238 </p>
239 </li>
240 </ul></div>
241 </li>
242 </ul></div>
243 </li>
244 </ul></div>
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>
249 </div>
250 </div>
251 <div class="sect1">
252 <h2 id="_20180207_binary_packages">20180207 binary packages</h2>
253 <div class="sectionbody">
254 <div class="ulist"><ul>
255 <li>
256 <p>
257 AMD64 (aka "x86-64" or "x64")
258 </p>
259 <div class="ulist"><ul>
260 <li>
261 <p>
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>)
263 </p>
264 </li>
265 <li>
266 <p>
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)
268 </p>
269 </li>
270 <li>
271 <p>
272 <a href="https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207-1.amd64-linux.tgz">Linux</a>, glibc 2.23
273
274
275
276
277
278 </p>
279 </li>
280 </ul></div>
281 </li>
282 </ul></div>
283 </div>
284 </div>
285 <div class="sect1">
286 <h2 id="_20180207_source_packages">20180207 source packages</h2>
287 <div class="sectionbody">
288 <div class="ulist"><ul>
289 <li>
290 <p>
291 <a href="https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207.src.tgz">mlton-20180207.src.tgz</a>
292 </p>
293 </li>
294 </ul></div>
295 </div>
296 </div>
297 <div class="sect1">
298 <h2 id="_also_see">Also see</h2>
299 <div class="sectionbody">
300 <div class="ulist"><ul>
301 <li>
302 <p>
303 <a href="Bugs20180207">Bugs20180207</a>
304 </p>
305 </li>
306 <li>
307 <p>
308 <a href="http://www.mlton.org/guide/20180207/">MLton Guide (20180207)</a>.
309 </p>
310 <div class="paragraph"><p>A snapshot of the MLton website at the time of release.</p></div>
311 </li>
312 </ul></div>
313 </div>
314 </div>
315 </div>
316 <div id="footnotes"><hr></div>
317 <div id="footer">
318 <div id="footer-text">
319 </div>
320 <div id="footer-badges">
321 </div>
322 </div>
323 </body>
324 </html>