Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / doc / guide / localhost / Bugs20041109
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>Bugs20041109</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>Bugs20041109</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 are the known bugs in <a href="Release20041109">MLton 20041109</a>, listed\r
32in reverse chronological order of date reported.</p></div>\r
33<div class="ulist"><ul>\r
34<li>\r
35<p>\r
36<a id="bug17"></a>\r
37 <span class="monospaced">MLton.Finalizable.touch</span> doesn&#8217;t necessarily keep values alive\r
38 long enough. Our SVN has a patch to the compiler. You must rebuild\r
39 the compiler in order for the patch to take effect.\r
40</p>\r
41<div class="paragraph"><p>Thanks to Florian Weimer for reporting this bug.</p></div>\r
42</li>\r
43<li>\r
44<p>\r
45<a id="bug16"></a>\r
46 A bug in an optimization pass may incorrectly transform a program\r
47 to flatten ref cells into their containing data structure, yielding a\r
48 type-error in the transformed program. Our CVS has a\r
49 <a href="http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/mlton/ssa/ref-flatten.fun.diff?r1=1.35&amp;r2=1.37">patch</a>\r
50 to the compiler. You must rebuild the compiler in order for the\r
51 patch to take effect.\r
52</p>\r
53<div class="paragraph"><p>Thanks to <a href="VesaKarvonen">VesaKarvonen</a> for reporting this bug.</p></div>\r
54</li>\r
55<li>\r
56<p>\r
57<a id="bug15"></a>\r
58 A bug in the front end mistakenly allows unary constructors to be\r
59 used without an argument in patterns. For example, the following\r
60 program is accepted, and triggers a large internal error.\r
61</p>\r
62<div class="listingblock">\r
63<div class="content"><div class="highlight"><pre><span class="k">fun</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="n">SOME</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="n">true</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="p">_</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="n">false</span><span class="w"></span>\r
64</pre></div></div></div>\r
65<div class="paragraph"><p>We have fixed the problem in our CVS.</p></div>\r
66<div class="paragraph"><p>Thanks to William Lovas for reporting this bug.</p></div>\r
67</li>\r
68<li>\r
69<p>\r
70<a id="bug14"></a>\r
71 A bug in <span class="monospaced">Posix.IO.{getlk,setlk,setlkw}</span> causes a link-time error:\r
72 <span class="monospaced">undefined reference to Posix_IO_FLock_typ</span>\r
73 Our CVS has a\r
74 <a href="http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/basis-library/posix/primitive.sml.diff?r1=1.34&amp;r2=1.35">patch</a>\r
75 to the Basis Library implementation.\r
76</p>\r
77<div class="paragraph"><p>Thanks to Adam Chlipala for reporting this bug.</p></div>\r
78</li>\r
79<li>\r
80<p>\r
81<a id="bug13"></a>\r
82 A bug can cause programs compiled with <span class="monospaced">-profile alloc</span> to\r
83 segfault. Our CVS has a\r
84 <a href="http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/mlton/backend/ssa-to-rssa.fun.diff?r1=1.106&amp;r2=1.107">patch</a>\r
85 to the compiler. You must rebuild the compiler in order for the\r
86 patch to take effect.\r
87</p>\r
88<div class="paragraph"><p>Thanks to John Reppy for reporting this bug.</p></div>\r
89</li>\r
90<li>\r
91<p>\r
92<a id="bug12"></a>\r
93 A bug in an optimization pass may incorrectly flatten ref cells\r
94 into their containing data structure, breaking the sharing between\r
95 the cells. Our CVS has a\r
96 <a href="http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/mlton/ssa/ref-flatten.fun.diff?r1=1.32&amp;r2=1.33">patch</a>\r
97 to the compiler. You must rebuild the compiler in order for the\r
98 patch to take effect.\r
99</p>\r
100<div class="paragraph"><p>Thanks to Paul Govereau for reporting this bug.</p></div>\r
101</li>\r
102<li>\r
103<p>\r
104<a id="bug11"></a>\r
105 Some arrays or vectors, such as <span class="monospaced">(char * char) vector</span>, are\r
106 incorrectly implemented, and will conflate the first and second\r
107 components of each element. Our CVS has a\r
108 <a href="http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/mlton/backend/packed-representation.fun.diff?r1=1.32&amp;r2=1.33">patch</a>\r
109 to the compiler. You must rebuild the compiler in order for the\r
110 patch to take effect.\r
111</p>\r
112<div class="paragraph"><p>Thanks to Scott Cruzen for reporting this bug.</p></div>\r
113</li>\r
114<li>\r
115<p>\r
116<a id="bug10"></a>\r
117 <span class="monospaced">Socket.Ctl.getLINGER</span> and <span class="monospaced">Socket.Ctl.setLINGER</span>\r
118 mistakenly raise <span class="monospaced">Subscript</span>.\r
119 Our CVS has a\r
120 <a href="http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/basis-library/net/socket.sml.diff?r1=1.14&amp;r2=1.15">patch</a>\r
121 to the Basis Library implementation.\r
122</p>\r
123<div class="paragraph"><p>Thanks to Ray Racine for reporting the bug.</p></div>\r
124</li>\r
125<li>\r
126<p>\r
127<a id="bug09"></a>\r
128 <a href="ConcurrentML"> CML</a> <span class="monospaced">Mailbox.send</span> makes a call in the wrong atomic context.\r
129 Our CVS has a <a href="http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/lib/cml/core-cml/mailbox.sml.diff?r1=1.3&amp;r2=1.4">patch</a>\r
130 to the CML implementation.\r
131</p>\r
132</li>\r
133<li>\r
134<p>\r
135<a id="bug08"></a>\r
136 <span class="monospaced">OS.Path.joinDirFile</span> and <span class="monospaced">OS.Path.toString</span> did not\r
137 raise <span class="monospaced">InvalidArc</span> when they were supposed to. They now do.\r
138 Our CVS has a <a href="http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/basis-library/system/path.sml.diff?r1=1.8&amp;r2=1.11">patch</a>\r
139 to the Basis Library implementation.\r
140</p>\r
141<div class="paragraph"><p>Thanks to Andreas Rossberg for reporting the bug.</p></div>\r
142</li>\r
143<li>\r
144<p>\r
145<a id="bug07"></a>\r
146 The front end incorrectly disallows sequences of expressions\r
147 (separated by semicolons) after a topdec has already been processed.\r
148 For example, the following is incorrectly rejected.\r
149</p>\r
150<div class="listingblock">\r
151<div class="content"><div class="highlight"><pre><span class="k">val</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"></span>\r
152<span class="n">ignore</span><span class="w"> </span><span class="n">x</span><span class="p">;</span><span class="w"></span>\r
153<span class="n">ignore</span><span class="w"> </span><span class="n">x</span><span class="p">;</span><span class="w"></span>\r
154</pre></div></div></div>\r
155<div class="paragraph"><p>We have fixed the problem in our CVS.</p></div>\r
156<div class="paragraph"><p>Thanks to Andreas Rossberg for reporting the bug.</p></div>\r
157</li>\r
158<li>\r
159<p>\r
160<a id="bug06"></a>\r
161 The front end incorrectly disallows expansive <span class="monospaced">val</span>\r
162 declarations that bind a type variable that doesn&#8217;t occur in the\r
163 type of the value being bound. For example, the following is\r
164 incorrectly rejected.\r
165</p>\r
166<div class="listingblock">\r
167<div class="content"><div class="highlight"><pre><span class="k">val</span><span class="w"> </span><span class="n">&#39;a</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">let</span><span class="w"> </span><span class="k">exception</span><span class="w"> </span><span class="n">E</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="n">&#39;a</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="p">()</span><span class="w"> </span><span class="k">end</span><span class="w"></span>\r
168</pre></div></div></div>\r
169<div class="paragraph"><p>We have fixed the problem in our CVS.</p></div>\r
170<div class="paragraph"><p>Thanks to Andreas Rossberg for reporting this bug.</p></div>\r
171</li>\r
172<li>\r
173<p>\r
174<a id="bug05"></a>\r
175 The x86 codegen fails to account for the possibility that a 64-bit\r
176 move could interfere with itself (as simulated by 32-bit moves). We\r
177 have fixed the problem in our CVS.\r
178</p>\r
179<div class="paragraph"><p>Thanks to Scott Cruzen for reporting this bug.</p></div>\r
180</li>\r
181<li>\r
182<p>\r
183<a id="bug04"></a>\r
184 <span class="monospaced">NetHostDB.scan</span> and <span class="monospaced">NetHostDB.fromString</span> incorrectly\r
185 raise an exception on internet addresses whose last component is a\r
186 zero, e.g <span class="monospaced">0.0.0.0</span>. Our CVS has a\r
187 <a href="http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/basis-library/net/net-host-db.sml.diff?r1=1.12&amp;r2=1.13">patch</a> to the Basis Library implementation.\r
188</p>\r
189<div class="paragraph"><p>Thanks to Scott Cruzen for reporting this bug.</p></div>\r
190</li>\r
191<li>\r
192<p>\r
193<a id="bug03"></a>\r
194 <span class="monospaced">StreamIO.inputLine</span> has an off-by-one error causing it to drop\r
195 the first character after a newline in some situations. Our CVS has a\r
196 <a href="http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/basis-library/io/stream-io.fun.diff?r1=text&amp;tr1=1.29&amp;r2=text&amp;tr2=1.30&amp;diff_format=h">patch</a>.\r
197 to the Basis Library implementation.\r
198</p>\r
199<div class="paragraph"><p>Thanks to Scott Cruzen for reporting this bug.</p></div>\r
200</li>\r
201<li>\r
202<p>\r
203<a id="bug02"></a>\r
204 <span class="monospaced">BinIO.getInstream</span> and <span class="monospaced">TextIO.getInstream</span> are\r
205 implemented incorrectly. This also impacts the behavior of\r
206 <span class="monospaced">BinIO.scanStream</span> and <span class="monospaced">TextIO.scanStream</span>. If you (directly\r
207 or indirectly) realize a <span class="monospaced">TextIO.StreamIO.instream</span> and do not\r
208 (directly or indirectly) call <span class="monospaced">TextIO.setInstream</span> with a derived\r
209 stream, you may lose input data. We have fixed the problem in our\r
210 CVS.\r
211</p>\r
212<div class="paragraph"><p>Thanks to <a href="WesleyTerpstra">WesleyTerpstra</a> for reporting this bug.</p></div>\r
213</li>\r
214<li>\r
215<p>\r
216<a id="bug01"></a>\r
217 <span class="monospaced">Posix.ProcEnv.setpgid</span> doesn&#8217;t work. If you compile a program\r
218 that uses it, you will get a link time error\r
219</p>\r
220<div class="listingblock">\r
221<div class="content monospaced">\r
222<pre>undefined reference to `Posix_ProcEnv_setpgid'</pre>\r
223</div></div>\r
224<div class="paragraph"><p>The bug is due to <span class="monospaced">Posix_ProcEnv_setpgid</span> being omitted from the\r
225 MLton runtime. We fixed the problem in our CVS by adding the\r
226 following definition to <span class="monospaced">runtime/Posix/ProcEnv/ProcEnv.c</span></p></div>\r
227<div class="listingblock">\r
228<div class="content"><div class="highlight"><pre><span class="n">Int</span> <span class="nf">Posix_ProcEnv_setpgid</span> <span class="p">(</span><span class="n">Pid</span> <span class="n">p</span><span class="p">,</span> <span class="n">Gid</span> <span class="n">g</span><span class="p">)</span> <span class="p">{</span>\r
229 <span class="k">return</span> <span class="n">setpgid</span> <span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">g</span><span class="p">);</span>\r
230<span class="p">}</span>\r
231</pre></div></div></div>\r
232<div class="paragraph"><p>Thanks to Tom Murphy for reporting this bug.</p></div>\r
233</li>\r
234</ul></div>\r
235</div>\r
236</div>\r
237</div>\r
238<div id="footnotes"><hr></div>\r
239<div id="footer">\r
240<div id="footer-text">\r
241</div>\r
242<div id="footer-badges">\r
243</div>\r
244</div>\r
245</body>\r
246</html>\r