Commit | Line | Data |
---|---|---|
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 | |
14 | asciidoc.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 | |
32 | in 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’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&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">=></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">=></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&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&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&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&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&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&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&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’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">'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">'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&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&tr1=1.29&r2=text&tr2=1.30&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’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 |