Import Upstream version 20180207
[hcoop/debian/mlton.git] / doc / guide / localhost / Release20180207
CommitLineData
7f918cf1
CE
1<!DOCTYPE html>\r
2<html lang="en">\r
3<head>\r
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\r
5<meta name="generator" content="AsciiDoc 8.6.9">\r
6<title>Release20180207</title>\r
7<link rel="stylesheet" href="./asciidoc.css" type="text/css">\r
8<link rel="stylesheet" href="./pygments.css" type="text/css">\r
9\r
10\r
11<script type="text/javascript" src="./asciidoc.js"></script>\r
12<script type="text/javascript">\r
13/*<![CDATA[*/\r
14asciidoc.install();\r
15/*]]>*/\r
16</script>\r
17<link rel="stylesheet" href="./mlton.css" type="text/css">\r
18</head>\r
19<body class="article">\r
20<div id="banner">\r
21<div id="banner-home">\r
22<a href="./Home">MLton 20180207</a>\r
23</div>\r
24</div>\r
25<div id="header">\r
26<h1>Release20180207</h1>\r
27</div>\r
28<div id="content">\r
29<div id="preamble">\r
30<div class="sectionbody">\r
31<div class="paragraph"><p>Here you can download the latest public release of MLton, version 20180207.</p></div>\r
32</div>\r
33</div>\r
34<div class="sect1">\r
35<h2 id="_changes_since_the_last_public_release">Changes since the last public release</h2>\r
36<div class="sectionbody">\r
37<div class="ulist"><ul>\r
38<li>\r
39<p>\r
40Compiler.\r
41</p>\r
42<div class="ulist"><ul>\r
43<li>\r
44<p>\r
45Added an experimental LLVM codegen (<span class="monospaced">-codegen llvm</span>); requires LLVM tools\r
46 (<span class="monospaced">llvm-as</span>, <span class="monospaced">opt</span>, <span class="monospaced">llc</span>) version &ge; 3.7.\r
47</p>\r
48</li>\r
49<li>\r
50<p>\r
51Made many substantial cosmetic improvements to front-end diagnostic\r
52 messages, especially with respect to source location regions, type inference\r
53 for <span class="monospaced">fun</span> and <span class="monospaced">val rec</span> declarations, signature constraints applied to a\r
54 structure, <span class="monospaced">sharing type</span> specifications and <span class="monospaced">where type</span> signature\r
55 expressions, type constructor or type variable escaping scope, and\r
56 nonexhaustive pattern matching.\r
57</p>\r
58</li>\r
59<li>\r
60<p>\r
61Fixed minor bugs with exception replication, precedence parsing of function\r
62 clauses, and simultaneous <span class="monospaced">sharing</span> of multiple structures.\r
63</p>\r
64</li>\r
65<li>\r
66<p>\r
67Made compilation deterministic (eliminate output executable name from\r
68 compile-time specified <span class="monospaced">@MLton</span> runtime arguments; deterministically generate\r
69 magic constant for executable).\r
70</p>\r
71</li>\r
72<li>\r
73<p>\r
74Updated <span class="monospaced">-show-basis</span> (recursively expand structures in environments,\r
75 displaying components with long identifiers; append <span class="monospaced">(* @ region *)</span>\r
76 annotations to items shown in environment).\r
77</p>\r
78</li>\r
79<li>\r
80<p>\r
81Forced amd64 codegen to generate PIC on amd64-linux targets.\r
82</p>\r
83</li>\r
84</ul></div>\r
85</li>\r
86<li>\r
87<p>\r
88Runtime.\r
89</p>\r
90<div class="ulist"><ul>\r
91<li>\r
92<p>\r
93Added <span class="monospaced">gc-summary-file file</span> runtime option.\r
94</p>\r
95</li>\r
96<li>\r
97<p>\r
98Reorganized runtime support for <span class="monospaced">IntInf</span> operations so that programs that\r
99 do not use <span class="monospaced">IntInf</span> compile to executables with no residual dependency on GMP.\r
100</p>\r
101</li>\r
102<li>\r
103<p>\r
104Changed heap representation to store forwarding pointer for an object in\r
105 the object header (rather than in the object data and setting the header to a\r
106 sentinel value).\r
107</p>\r
108</li>\r
109</ul></div>\r
110</li>\r
111<li>\r
112<p>\r
113Language.\r
114</p>\r
115<div class="ulist"><ul>\r
116<li>\r
117<p>\r
118Added support for selected SuccessorML features; see\r
119 <a href="http://mlton.org/SuccessorML">http://mlton.org/SuccessorML</a> for details.\r
120</p>\r
121</li>\r
122<li>\r
123<p>\r
124Added <span class="monospaced">(*#showBasis "file" *)</span> directive; see\r
125 <a href="http://mlton.org/ShowBasisDirective">http://mlton.org/ShowBasisDirective</a> for details.\r
126</p>\r
127</li>\r
128<li>\r
129<p>\r
130FFI:\r
131</p>\r
132<div class="ulist"><ul>\r
133<li>\r
134<p>\r
135Added <span class="monospaced">pure</span>, <span class="monospaced">impure</span>, and <span class="monospaced">reentrant</span> attributes to <span class="monospaced">_import</span>. An\r
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\r
137 subject to more aggressive optimizations (common subexpression elimination,\r
138 dead-code elimination). An <span class="monospaced">_import</span>-ed C function that (directly or\r
139 indirectly) calls an <span class="monospaced">_export</span>-ed SML function should be attributed\r
140 <span class="monospaced">reentrant</span>.\r
141</p>\r
142</li>\r
143</ul></div>\r
144</li>\r
145<li>\r
146<p>\r
147ML Basis annotations.\r
148</p>\r
149<div class="ulist"><ul>\r
150<li>\r
151<p>\r
152Added <span class="monospaced">allowSuccessorML {false|true}</span> to enable all SuccessorML features\r
153 and other annotations to enable specific SuccessorML features; see\r
154 <a href="http://mlton.org/SuccessorML">http://mlton.org/SuccessorML</a> for details.\r
155</p>\r
156</li>\r
157<li>\r
158<p>\r
159Split <span class="monospaced">nonexhaustiveMatch {warn|error|igore}</span> and <span class="monospaced">redundantMatch\r
160 {warn|error|ignore}</span> into <span class="monospaced">nonexhaustiveMatch</span> and <span class="monospaced">redundantMatch</span>\r
161 (controls diagnostics for <span class="monospaced">case</span> expressions, <span class="monospaced">fn</span> expressions, and <span class="monospaced">fun</span>\r
162 declarations (which may raise <span class="monospaced">Match</span> on failure)) and <span class="monospaced">nonexhaustiveBind</span>\r
163 and <span class="monospaced">redundantBind</span> (controls diagnostics for <span class="monospaced">val</span> declarations (which may\r
164 raise <span class="monospaced">Bind</span> on failure)).\r
165</p>\r
166</li>\r
167<li>\r
168<p>\r
169Added <span class="monospaced">valrecConstr {warn|error|ignore}</span> to report when a <span class="monospaced">val rec</span> (or\r
170 <span class="monospaced">fun</span>) declaration redefines an identifier that previously had constructor\r
171 status.\r
172</p>\r
173</li>\r
174</ul></div>\r
175</li>\r
176</ul></div>\r
177</li>\r
178<li>\r
179<p>\r
180Libraries.\r
181</p>\r
182<div class="ulist"><ul>\r
183<li>\r
184<p>\r
185Basis Library.\r
186</p>\r
187<div class="ulist"><ul>\r
188<li>\r
189<p>\r
190Improved performance of <span class="monospaced">Array.copy</span>, <span class="monospaced">Array.copyVec</span>, <span class="monospaced">Vector.append</span>,\r
191 <span class="monospaced">String.^</span>, <span class="monospaced">String.concat</span>, <span class="monospaced">String.concatWith</span>, and other related\r
192 functions by using <span class="monospaced">memmove</span> rather than element-by-element constructions.\r
193</p>\r
194</li>\r
195</ul></div>\r
196</li>\r
197<li>\r
198<p>\r
199<span class="monospaced">Unsafe</span> structure.\r
200</p>\r
201<div class="ulist"><ul>\r
202<li>\r
203<p>\r
204Added unsafe operations for array uninitialization and raw arrays; see\r
205 <a href="https://github.com/MLton/mlton/pull/207">https://github.com/MLton/mlton/pull/207</a> for details.\r
206</p>\r
207</li>\r
208</ul></div>\r
209</li>\r
210<li>\r
211<p>\r
212Other libraries.\r
213</p>\r
214<div class="ulist"><ul>\r
215<li>\r
216<p>\r
217Updated: ckit library, MLLPT library, MLRISC library, SML/NJ library\r
218</p>\r
219</li>\r
220</ul></div>\r
221</li>\r
222</ul></div>\r
223</li>\r
224<li>\r
225<p>\r
226Tools.\r
227</p>\r
228<div class="ulist"><ul>\r
229<li>\r
230<p>\r
231mlnlffigen\r
232</p>\r
233<div class="ulist"><ul>\r
234<li>\r
235<p>\r
236Updated to warn and skip (rather than abort) when encountering functions\r
237 with <span class="monospaced">struct</span>/<span class="monospaced">union</span> argument or return type.\r
238</p>\r
239</li>\r
240</ul></div>\r
241</li>\r
242</ul></div>\r
243</li>\r
244</ul></div>\r
245<div class="paragraph"><p>For a complete list of changes and bug fixes since\r
246<a href="Release20130715">Release20130715</a>, see the\r
247<a href="https://github.com/MLton/mlton/blob/on-20180207-release/CHANGELOG.adoc"><span class="monospaced">CHANGELOG.adoc</span></a> and\r
248<a href="Bugs20130715">Bugs20130715</a>.</p></div>\r
249</div>\r
250</div>\r
251<div class="sect1">\r
252<h2 id="_20180207_binary_packages">20180207 binary packages</h2>\r
253<div class="sectionbody">\r
254<div class="ulist"><ul>\r
255<li>\r
256<p>\r
257AMD64 (aka "x86-64" or "x64")\r
258</p>\r
259<div class="ulist"><ul>\r
260<li>\r
261<p>\r
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>)\r
263</p>\r
264</li>\r
265<li>\r
266<p>\r
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)\r
268</p>\r
269</li>\r
270<li>\r
271<p>\r
272<a href="https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207-1.amd64-linux.tgz">Linux</a>, glibc 2.23\r
273\r
274\r
275\r
276\r
277\r
278</p>\r
279</li>\r
280</ul></div>\r
281</li>\r
282</ul></div>\r
283</div>\r
284</div>\r
285<div class="sect1">\r
286<h2 id="_20180207_source_packages">20180207 source packages</h2>\r
287<div class="sectionbody">\r
288<div class="ulist"><ul>\r
289<li>\r
290<p>\r
291<a href="https://sourceforge.net/projects/mlton/files/mlton/20180207/mlton-20180207.src.tgz">mlton-20180207.src.tgz</a>\r
292</p>\r
293</li>\r
294</ul></div>\r
295</div>\r
296</div>\r
297<div class="sect1">\r
298<h2 id="_also_see">Also see</h2>\r
299<div class="sectionbody">\r
300<div class="ulist"><ul>\r
301<li>\r
302<p>\r
303<a href="Bugs20180207">Bugs20180207</a>\r
304</p>\r
305</li>\r
306<li>\r
307<p>\r
308<a href="http://www.mlton.org/guide/20180207/">MLton Guide (20180207)</a>.\r
309</p>\r
310<div class="paragraph"><p>A snapshot of the MLton website at the time of release.</p></div>\r
311</li>\r
312</ul></div>\r
313</div>\r
314</div>\r
315</div>\r
316<div id="footnotes"><hr></div>\r
317<div id="footer">\r
318<div id="footer-text">\r
319</div>\r
320<div id="footer-badges">\r
321</div>\r
322</div>\r
323</body>\r
324</html>\r