Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /doc/trunk/src/release-notes/110.80-README.html
ViewVC logotype

Annotation of /doc/trunk/src/release-notes/110.80-README.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4268 - (view) (download) (as text)

1 : jhr 4199 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 :     <html>
3 :     <head>
4 : jhr 4222 <title>SML/NJ 110.80 Release Notes</title>
5 : jhr 4199 <style type="text/css">
6 :     body {
7 :     font-size: 12pt;
8 :     }
9 :     div.smlnj-banner {
10 :     font-weight: bold;
11 :     font-size: 200%;
12 :     text-align: center;
13 :     margin-top: 1.5em;
14 :     margin-bottom: 1.5em;
15 :     }
16 :     h3 {
17 :     font-size: 140%;
18 :     }
19 :     dt.component {
20 :     font-size: 120%;
21 :     font-weight: bold;
22 :     }
23 :     dd {
24 :     margin-left: 2em;
25 :     margin-bottom: 0.5em;
26 :     }
27 :     ul.buglist {
28 :     margin-left: 1em;
29 :     }
30 :     li {
31 :     margin-bottom: 0.5em;
32 :     }
33 :     span.important {
34 :     color: red;
35 :     text-weight: bold;
36 :     }
37 : jhr 4260 span.tt {
38 :     font-family: "Courier", monospace;
39 :     }
40 : jhr 4199 .code {
41 :     font-family: "Courier", monospace;
42 :     white-space: pre;
43 :     color: darkblue;
44 :     }
45 :     span.kw {
46 :     font-family: "Courier", monospace;
47 :     font-weight: bold;
48 :     color: darkgreen;
49 :     }
50 :     span.com {
51 :     font-style: italic;
52 :     color: indianred;
53 :     }
54 :     span.exe {
55 :     font-weight: bold;
56 :     }
57 :     table.buglist {
58 :     margin-left: 2em;
59 :     font-size: 100%;
60 :     }
61 :     td.bugid {
62 :     font-weight: bold;
63 :     padding-right: 1em;
64 :     padding-left: 0px;
65 :     margin-left: 0px;
66 :     }
67 :     p.compact {
68 :     margin-top: 0pt;
69 :     margin-bottom: 0pt;
70 :     }
71 :     </style>
72 :     </head>
73 :    
74 :     <body>
75 :     <div class="smlnj-banner">
76 :     Standard ML of New Jersey
77 :     <br>
78 :     Version 110.80 NEWS
79 :     <br>
80 : jhr 4255 August 19, 2016
81 : jhr 4199 </div>
82 :    
83 :     <hr>
84 :     <dl>
85 :     <dt>SML/NJ HOME:</dt>
86 : jhr 4260 <dd><a href="http://www.smlnj.org/index.html"><span class="tt">http://www.smlnj.org/index.html</span></a></dd>
87 : jhr 4199 <dt>FILES:</dt>
88 : jhr 4222 <dd><a href="http://smlnj.cs.uchicago.edu/dist/working/110.80/index.html">
89 : jhr 4260 <span class="tt">http://smlnj.cs.uchicago.edu/dist/working/110.80/</span></a>
90 : jhr 4199 </dd>
91 :     </dl>
92 :     <hr>
93 :    
94 :     <h3>Summary:</h3>
95 :     <p>
96 : jhr 4260 This release incudes further additions to the
97 :     <a href="https://github.com/SMLFamily/BasisLibrary/wiki/Home"><b>Basis Library</b></a>
98 :     and many bug fixes.
99 :     As did 110.79, it includes some initial support for
100 : jhr 4199 <a href="https://github.com/SMLFamily/Proposed-Definition-of-Successor-ML"><b>Successor ML</b></a>,
101 :     which is an evolution of the Standard ML language.
102 : jhr 4260 It also has support for the upcoming version of macOS Sierra.
103 : jhr 4199 </p>
104 :    
105 :     <h3>Details:</h3>
106 :    
107 :     <dl>
108 :     <dt class="component">Basis Library:</dt>
109 :     <dd>
110 :     <p>
111 :     This version continues to track proposed Basis Library improvements.
112 :     <span class="important">Note that these improvements are <i>proposals</i>
113 :     that have not yet been ratified and are subject to change!</span>
114 :     Specifically, the following proposals are supported by this version of SML/NJ:
115 :     </p>
116 :     <dl>
117 : jhr 4255 <dt><a href="https://github.com/SMLFamily/BasisLibrary/wiki/2015-001-Correction-to-ListPair">
118 :     <b>[2015-001]</b> Correction to ListPair</a></dt>
119 : jhr 4199 <dd>SML/NJ already implemented the semantics described in this proposal.
120 :     </dd>
121 : jhr 4255 <dt><a href="https://github.com/SMLFamily/BasisLibrary/wiki/2015-002-Addition-of-Either-module">
122 :     <b>[2015-002]</b> Addition of Either module</a></dt>
123 : jhr 4260 <dd>This change adds the <span class="code">Either</span> structure to the Basis Library.<br>
124 : jhr 4255 In version 110.80, we have added the functions <span class="code">mapLeft</span>,
125 :     <span class="code">mapRight</span>, <span class="code">appLeft</span>, and
126 :     <span class="code">appRight</span> functions to the <span class="code">Either</span>
127 :     module.
128 : jhr 4199 </dd>
129 : jhr 4255 <dt><a href="https://github.com/SMLFamily/BasisLibrary/wiki/2015-003-Additional-operations-on-sequences">
130 :     <b>[2015-003]</b> Additional operations on sequences</a></dt>
131 :     <dd>
132 :     This change adds operations to the <span class="code">Array</span>,
133 : jhr 4199 <span class="code">List</span>, <span class="code">ListPair</span>, <span class="code">Option</span>,
134 :     and <span class="code">Vector</span> structures, and to the <span class="code">MONO_ARRAY</span>
135 : jhr 4260 and <span class="code">MONO_VECTOR</span> signatures.<br>
136 : jhr 4255 In version 110.80, we have added the functions <span class="code">unzipMap</span>,
137 :     <span class="code">unzipMapi</span>, <span class="code">find</span>, and
138 :     <span class="code">findi</span> functions to the <span class="code">ListPair</span>
139 :     module.
140 : jhr 4199 </dd>
141 : jhr 4255 <dt><a href="https://github.com/SMLFamily/BasisLibrary/wiki/2015-005-Addition-of-Fn-module">
142 :     <b>[2015-005]</b> Addition of Fn module</a></dt>
143 : jhr 4199 <dd>This change adds the <span class="code">Fn</span> structure to the Basis Library.
144 :     </dd>
145 : jhr 4255 <dt><a href="https://github.com/SMLFamily/BasisLibrary/wiki/2015-007-Addition-of-Ref-module">
146 :     <b>[2015-007]</b> Addition of Ref module</a></dt>
147 : jhr 4199 <dd>This change adds the <span class="code">Ref</span> structure to the Basis Library.
148 :     </dd>
149 : jhr 4255 <dt><a href="https://github.com/SMLFamily/BasisLibrary/wiki/2015-009-Policy-for-exceptions-and-partial-applications">
150 :     <b>[2015-009]</b> Policy for exceptions and partial applications</a></dt>
151 : jhr 4199 <dd>This change standardizes the generation of exceptions when partially applying curried basis functions.
152 :     The change fixed bug <b>136</b>.
153 :     </dd>
154 : jhr 4255 <dt><a href="https://github.com/SMLFamily/BasisLibrary/wiki/2016-001-Add-popCount-to-WORD-signature">
155 :     <b>[2016-001]</b> Add popCount to WORD signature</a></dt>
156 : jhr 4230 <dd>This change adds the <span class="code">popCount</span> function to the <span class="code">WORD</span>
157 :     signature.
158 :     </dd>
159 : jhr 4199 </dl>
160 :     <p style="margin-bottom: 0pt;">
161 :     It is very unlikely that these changes will break existing code, but there are
162 :     a couple of scenarios in which the code might break. The first is conflicts created
163 :     by the use of <span class="kw">open</span>. For example, the implementation
164 :     of <span class="exe">ml-yacc</span> had declarations of the form
165 : jhr 4222 </p>
166 :     <div class="code">
167 : jhr 4199 <span class="kw">open</span> Array List
168 : jhr 4222 </div>
169 :     <p>
170 : jhr 4199 which created a type error because <span class="code">List.sub</span> shadowed
171 :     <span class="code">Array.sub</span>.
172 :     </p>
173 :     <p>
174 :     The second class of problem is when a module implements one of the affected Basis
175 :     signatures. For example, the <b>MLRISC</b> library had two modules that implemented
176 :     extensions of the <span class="code">ARRAY</span> signature and which required
177 :     modification to compile.
178 :     </p>
179 :     <p>
180 :     In such cases, we recommend updating the source code, but it is also possible to compile
181 :     against the old version of the <b>Basis Library</b> by changing the line
182 :     </p>
183 :     <div class="code">
184 :     $/basis.cm
185 :     </div>
186 :     <p class="compact">
187 :     to
188 :     </p>
189 :     <div class="code">
190 :     $/basis-2004.cm
191 :     </div>
192 :     <p style="margin-top: 0pt;">
193 :     in your CM files. Note that backward-compatible version of the <b>Basis Library</b> is only
194 : jhr 4260 available if the <span class="tt">old-basis</span> target in <span class="tt">config/targets</span>
195 : jhr 4199 was requested when <b>SML/NJ</b> was built (this target is requested
196 :     by default).
197 :     </p>
198 :     </dd>
199 :     </dl>
200 :    
201 :     <dl>
202 :     <dt class="component">Successor ML:</dt>
203 :     <dd>
204 :     <p style="margin-bottom: 0pt;">
205 :     <a href="https://github.com/SMLFamily/Proposed-Definition-of-Successor-ML"><b>Successor ML</b></a>
206 :     is collection of proposed enhancements to the <b>Standard ML</b> language.
207 :     In collaboration with the <a href="http://mlton.org"><b>MLton</b></a> implementors, we are
208 :     starting to add support for these features the <b>SML/NJ</b>.
209 : jhr 4260 This release does not include any new features over what was supported in version 110.79
210 :     (<i>i.e.</i>, lexical extensions).
211 :     We plan to start adding syntactic extensions to the core language in the next release.
212 : jhr 4199 </p>
213 :     <p class="compact">
214 :     The <b>Successor ML</b> features can be enabled using the command-line
215 : jhr 4260 option <span class="tt">-Cparser.succ-ml=true</span> or by using the assignment
216 : jhr 4199 </p>
217 :     <div class=code>
218 :     Control.succML := true;
219 :     </div>
220 :     <p style="margin-top: 0pt; margin-bottom: 0pt;">
221 : jhr 4260 at the REPL.
222 :     There is a known bug (#153) that you man encounter when enabling <b>Successor ML</b>
223 :     features from the REPL; namely, there is some latency from when you set the
224 :     <span class="code">Control.succML</span> flag and when the lexer switches mode.
225 :     </p>
226 :     <p>
227 :     It is also possible to mark individual source files as
228 : jhr 4199 being &quot;<b>Successor ML</b>&quot; sources in a CM file. There are
229 :     several ways to do so; the easiest is to specify that they should be
230 : jhr 4260 handled by the &quot;<span class="tt">succ-ml</span>&quot; tool:
231 : jhr 4199 </p>
232 :     <div class="code">
233 :     foo.sml : succ-ml
234 :     </div>
235 : jhr 4222 <p style="margin-top: 0pt; margin-bottom: 0pt;">
236 : jhr 4260 Alternatively, one can give the &quot;<span class="tt">succ-ml</span>&quot; argument to the
237 :     &quot;<span class="tt">sml</span>&quot; tool:
238 : jhr 4199 </p>
239 :     <div class="code">
240 :     foo.sml : sml (succ-ml)
241 :     foo.sml (succ-ml)
242 :     </div>
243 : jhr 4222 <p style="margin-top: 0pt; margin-bottom: 0pt;">
244 : jhr 4199 It is also possible to enable them by setting the control flag
245 :     using the <span class="kw">with</span> keyword in a CM file as
246 :     illustrated by the following equivalent forms:
247 : jhr 4222 </p>
248 : jhr 4199 <div class="code">
249 :     foo.sml (<span class="kw">with</span>: parser.succ-ml)
250 :     foo.sml (<span class="kw">with</span>: parser.succ-ml=true)
251 :     foo.sml (<span class="kw">with</span>:(<span class="kw">name</span>:parser.succ-ml))
252 :     foo.sml (<span class="kw">with</span>:(<span class="kw">name</span>:parser.succ-ml <span class="kw">value</span>:true))
253 :     </div>
254 :     </dd>
255 :     </dl>
256 :    
257 : jhr 4260 <dl>
258 :     <dt class="component">SML/NJ Library:</dt>
259 :     <dd>
260 :     <p style="margin-bottom: 0pt;">
261 :     A number of changes to the <span class="code">ORD_SET</span> signature.
262 :     The following functions were added:
263 :     </p>
264 :     <div class="code">
265 :     <span class="kw">val</span> minItem <span class="kw">:</span> set <span class="kw">-></span> item
266 :     <span class="kw">val</span> maxItem <span class="kw">:</span> set <span class="kw">-></span> item
267 :     <span class="kw">val</span> toList <span class="kw">:</span> set <span class="kw">-></span> item list
268 :     </div>
269 :     <p style="margin-top: 0pt;">
270 :     In addition, the function <span class="code">listItems</span> is now considered deprecated.
271 :     </p>
272 :     <p>
273 :     Added the function <span class="code">Controls.help</span> for getting the help
274 :     string from a control.
275 :     </p>
276 :     <p>
277 :     Added the functions <span class="code">mkOption</span>, <span class="code">mkOptionReqArg</span>,
278 :     and <span class="code">mkOptionFlag</span> to the <span class="code">Controls</span> module.
279 :     These functions make it easier to package controls as command-line options.
280 :     They provide an alternative to the usual approach of using a
281 :     &quot;<span class="tt">--C</span>&lt;ctl&gt;<span class="tt">=</span>&lt;value&gt;&quot;
282 :     form for all of the controls.
283 :     </p>
284 :     <p>
285 :     Fixed a bug (#144) in the implementation of the <span class="code">all</span> function in the
286 :     splay-tree implementation of sets
287 :     (<span class="kw">functor</span> <span class="code">SplaySetFn</span>).
288 :     </p>
289 :     <p>
290 :     Fixed a bug (#167) in the way that the <span class="code">GetOpt</span> module handles long
291 :     arguments.
292 :     Previously, it was not possible to have one long argument that was a prefix of another
293 :     (<i>e.g.</i>, &quot;<span class="tt">--foo</span>&quot; and &quot;<span class="tt">--foobar</span>&quot;).
294 :     The new behavior is to allow long-option prefixes to overlap with other long options, but to
295 :     favor an exact match over prefix matches.
296 :     For example, if the long options are &quot;<span class="tt">--foo</span>,&quot;
297 :     &quot;<span class="tt">--foobar</span>,&quot; and &quot;<span class="tt">--foobaz</span>,&quot; then
298 :     &quot;<span class="tt">--foo</span>&quot; will match the first, but &quot;<span class="tt">--foob</span>&quot;
299 :     will be flagged as ambiguous.
300 :     </p>
301 :     </dd>
302 :     </dl>
303 :    
304 : jhr 4199 <h3>Bugs:</h3>
305 :     <p>
306 :     Here is a list of tracked bugs fixed (or closed) with this release, please see the
307 :     <a href="https://smlnj-gforge.cs.uchicago.edu/projects/smlnj-bugs/">bug tracker</a>
308 :     for more details.
309 :     </p>
310 :     <table class="buglist">
311 : jhr 4206 <tr><td class="bugid">144</td><td>Splay sets are broken</td></tr>
312 : jhr 4252 <tr><td class="bugid">145</td><td>Internal exception occurs on bogus annotation instead of typechecking diagnostic</td></tr>
313 : jhr 4236 <tr><td class="bugid">146</td><td>Problems building on recent versions of 64-bit Ubuntu</td></tr>
314 : jhr 4206 <tr><td class="bugid">147</td><td>Hexadecimal escapes in strings are not supported</td></tr>
315 : jhr 4235 <tr><td class="bugid">150</td><td>Add title to batch script</td></tr>
316 : jhr 4256 <tr><td class="bugid">151</td><td>Error installing from source on Mac OS X</td></tr>
317 : jhr 4222 <tr><td class="bugid">154</td><td>Return code for ml-ulex when there is an error</td></tr>
318 :     <tr><td class="bugid">155</td><td>Misleading printing of word literals in error messages</td></tr>
319 : jhr 4226 <tr><td class="bugid">156</td><td>SML resumes after SIGSTOP with bogus exception report</td></tr>
320 : jhr 4241 <tr><td class="bugid">161</td><td>MLRISC incorrect dividend sign extension before 32-bit divide in x86_64</td></tr>
321 : jhr 4233 <tr><td class="bugid">164</td><td>Inaccurate install instructions, ia32-libs have been deprecated</td></tr>
322 : jhr 4248 <tr><td class="bugid">166</td><td>Can't install SML/NJ in directories containing spaces</td></tr>
323 : jhr 4245 <tr><td class="bugid">167</td><td>Bug in handling of long options in GetOpt</td></tr>
324 : jhr 4199 <!-- <tr><td class="bugid">XXX</td><td>DESCRIPTION</td></tr> -->
325 :     </table>
326 :     <p>The following unnumbered bugs were also fixed:
327 :     </p>
328 :     <ul class="buglist">
329 : jhr 4201 <li class="bug">
330 :     Fixed the handling of the <span class="code">Error</span> exception
331 :     in the interactive loop so that we no longer get an exception traceback
332 :     from syntax and type errors in user code.
333 :     </li>
334 : jhr 4222 <li class="bug">
335 :     Fixed a bug in the implementation of <i>ml-lex-mode</i> in <b>ml-ulex</b>.
336 :     The '<span class="code">\h</span>' escape was not supported (it is supposed to match
337 :     the character range <span class="code">[\128-\255]</span>).
338 :     </li>
339 :     </ul>
340 : jhr 4199
341 :     <h3>Supported systems:</h3>
342 :     <blockquote>
343 :     <p>
344 :     We have verified that the system builds and runs on the following systems.
345 :     </p>
346 :     <div>
347 :     <table>
348 :     <tr><th>Architecture</th> <th>Operating System</th></tr>
349 :     <tr><td>PowerPC</td> <td>Mac OS X 10.5 (Leopard)</td></tr>
350 :     <tr><td>&nbsp;</td> <td>&nbsp;</td></tr>
351 :     <tr><td>x86</td> <td>Mac OS X 10.6 (Snow Leopard)</td></tr>
352 :     <tr><td></td> <td>Mac OS X 10.7 (Lion)</td></tr>
353 :     <tr><td></td> <td>Mac OS X 10.8 (Mountain Lion)</td></tr>
354 :     <tr><td></td> <td>Mac OS X 10.9 (Mavericks)</td></tr>
355 :     <tr><td></td> <td>Mac OS X 10.10 (Yosemite)</td></tr>
356 :     <tr><td></td> <td>Mac OS X 10.11 (El Capitan)</td></tr>
357 : jhr 4260 <tr><td></td> <td>macOS Sierra</td></tr>
358 : jhr 4199 <tr><td></td> <td>Ubuntu 14.04.3 (GNU/Linux 3.13.0)</td></tr>
359 :     <tr><td></td> <td>Windows 7</td></tr>
360 :     <tr><td></td> <td>Cygwin (hosted on Windows 7)</td></tr>
361 :     </table>
362 :     </div>
363 :     <p>
364 :     We believe that it runs on any recent Linux distribution that has support for 32-bit
365 :     executables, as well as on BSD variants, SPARC/Solaris, and PPC/AIX, but we have not
366 :     tested these systems.
367 :     </p>
368 :     </blockquote>
369 :    
370 :     </body>
371 :     </html>

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0