File: Bugs20041109

package info (click to toggle)
mlton 20130715-3
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 60,900 kB
  • ctags: 69,386
  • sloc: xml: 34,418; ansic: 17,399; lisp: 2,879; makefile: 1,605; sh: 1,254; pascal: 256; python: 143; asm: 97
file content (246 lines) | stat: -rw-r--r-- 12,125 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="generator" content="AsciiDoc 8.6.8">
<title>Bugs20041109</title>
<link rel="stylesheet" href="./asciidoc.css" type="text/css">
<link rel="stylesheet" href="./pygments.css" type="text/css">


<script type="text/javascript" src="./asciidoc.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
asciidoc.install();
/*]]>*/
</script>
<link rel="stylesheet" href="./mlton.css" type="text/css"/>
</head>
<body class="article">
<div id="banner">
<div id="banner-home">
<a href="./Home">MLton 20130715</a>
</div>
</div>
<div id="header">
<h1>Bugs20041109</h1>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph"><p>Here are the known bugs in <a href="Release20041109">MLton 20041109</a>, listed
in reverse chronological order of date reported.</p></div>
<div class="ulist"><ul>
<li>
<p>
<a id="bug17"></a>
 <span class="monospaced">MLton.Finalizable.touch</span> doesn&#8217;t necessarily keep values alive
 long enough.  Our SVN has a patch to the compiler.  You must rebuild
 the compiler in order for the patch to take effect.
</p>
<div class="paragraph"><p>Thanks to Florian Weimer for reporting this bug.</p></div>
</li>
<li>
<p>
<a id="bug16"></a>
 A bug in an optimization pass may incorrectly transform a program
 to flatten ref cells into their containing data structure, yielding a
 type-error in the transformed program.  Our CVS has a
 <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>
 to the compiler.  You must rebuild the compiler in order for the
 patch to take effect.
</p>
<div class="paragraph"><p>Thanks to <a href="VesaKarvonen">VesaKarvonen</a> for reporting this bug.</p></div>
</li>
<li>
<p>
<a id="bug15"></a>
 A bug in the front end mistakenly allows unary constructors to be
 used without an argument in patterns.  For example, the following
 program is accepted, and triggers a large internal error.
</p>
<div class="listingblock">
<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>
</pre></div></div></div>
<div class="paragraph"><p>We have fixed the problem in our CVS.</p></div>
<div class="paragraph"><p>Thanks to William Lovas for reporting this bug.</p></div>
</li>
<li>
<p>
<a id="bug14"></a>
 A bug in <span class="monospaced">Posix.IO.{getlk,setlk,setlkw}</span> causes a link-time error:
 <span class="monospaced">undefined reference to Posix_IO_FLock_typ</span>
 Our CVS has a
 <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>
 to the Basis Library implementation.
</p>
<div class="paragraph"><p>Thanks to Adam Chlipala for reporting this bug.</p></div>
</li>
<li>
<p>
<a id="bug13"></a>
 A bug can cause programs compiled with <span class="monospaced">-profile alloc</span> to
 segfault.  Our CVS has a
 <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>
 to the compiler.  You must rebuild the compiler in order for the
 patch to take effect.
</p>
<div class="paragraph"><p>Thanks to John Reppy for reporting this bug.</p></div>
</li>
<li>
<p>
<a id="bug12"></a>
 A bug in an optimization pass may incorrectly flatten ref cells
 into their containing data structure, breaking the sharing between
 the cells.  Our CVS has a
 <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>
 to the compiler.  You must rebuild the compiler in order for the
 patch to take effect.
</p>
<div class="paragraph"><p>Thanks to Paul Govereau for reporting this bug.</p></div>
</li>
<li>
<p>
<a id="bug11"></a>
 Some arrays or vectors, such as <span class="monospaced">(char * char) vector</span>, are
 incorrectly implemented, and will conflate the first and second
 components of each element.  Our CVS has a
 <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>
 to the compiler.  You must rebuild the compiler in order for the
 patch to take effect.
</p>
<div class="paragraph"><p>Thanks to Scott Cruzen for reporting this bug.</p></div>
</li>
<li>
<p>
<a id="bug10"></a>
 <span class="monospaced">Socket.Ctl.getLINGER</span> and <span class="monospaced">Socket.Ctl.setLINGER</span>
 mistakenly raise <span class="monospaced">Subscript</span>.
 Our CVS has a
 <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>
 to the Basis Library implementation.
</p>
<div class="paragraph"><p>Thanks to Ray Racine for reporting the bug.</p></div>
</li>
<li>
<p>
<a id="bug09"></a>
 <a href="ConcurrentML"> CML</a> <span class="monospaced">Mailbox.send</span> makes a call in the wrong atomic context.
 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>
 to the CML implementation.
</p>
</li>
<li>
<p>
<a id="bug08"></a>
 <span class="monospaced">OS.Path.joinDirFile</span> and <span class="monospaced">OS.Path.toString</span> did not
 raise <span class="monospaced">InvalidArc</span> when they were supposed to.  They now do.
 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>
 to the Basis Library implementation.
</p>
<div class="paragraph"><p>Thanks to Andreas Rossberg for reporting the bug.</p></div>
</li>
<li>
<p>
<a id="bug07"></a>
 The front end incorrectly disallows sequences of expressions
 (separated by semicolons) after a topdec has already been processed.
 For example, the following is incorrectly rejected.
</p>
<div class="listingblock">
<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>
<span class="n">ignore</span><span class="w"> </span><span class="n">x</span><span class="p">;</span><span class="w"></span>
<span class="n">ignore</span><span class="w"> </span><span class="n">x</span><span class="p">;</span><span class="w"></span>
</pre></div></div></div>
<div class="paragraph"><p>We have fixed the problem in our CVS.</p></div>
<div class="paragraph"><p>Thanks to Andreas Rossberg for reporting the bug.</p></div>
</li>
<li>
<p>
<a id="bug06"></a>
 The front end incorrectly disallows expansive <span class="monospaced">val</span>
 declarations that bind a type variable that doesn&#8217;t occur in the
 type of the value being bound.   For example, the following is
 incorrectly rejected.
</p>
<div class="listingblock">
<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>
</pre></div></div></div>
<div class="paragraph"><p>We have fixed the problem in our CVS.</p></div>
<div class="paragraph"><p>Thanks to Andreas Rossberg for reporting this bug.</p></div>
</li>
<li>
<p>
<a id="bug05"></a>
 The x86 codegen fails to account for the possibility that a 64-bit
 move could interfere with itself (as simulated by 32-bit moves).  We
 have fixed the problem in our CVS.
</p>
<div class="paragraph"><p>Thanks to Scott Cruzen for reporting this bug.</p></div>
</li>
<li>
<p>
<a id="bug04"></a>
 <span class="monospaced">NetHostDB.scan</span> and <span class="monospaced">NetHostDB.fromString</span> incorrectly
 raise an exception on internet addresses whose last component is a
 zero, e.g <span class="monospaced">0.0.0.0</span>.  Our CVS has a
 <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.
</p>
<div class="paragraph"><p>Thanks to Scott Cruzen for reporting this bug.</p></div>
</li>
<li>
<p>
<a id="bug03"></a>
 <span class="monospaced">StreamIO.inputLine</span> has an off-by-one error causing it to drop
 the first character after a newline in some situations.  Our CVS has a
 <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>.
 to the Basis Library implementation.
</p>
<div class="paragraph"><p>Thanks to Scott Cruzen for reporting this bug.</p></div>
</li>
<li>
<p>
<a id="bug02"></a>
 <span class="monospaced">BinIO.getInstream</span> and <span class="monospaced">TextIO.getInstream</span> are
 implemented incorrectly.  This also impacts the behavior of
 <span class="monospaced">BinIO.scanStream</span> and <span class="monospaced">TextIO.scanStream</span>.  If you (directly
 or indirectly) realize a <span class="monospaced">TextIO.StreamIO.instream</span> and do not
 (directly or indirectly) call <span class="monospaced">TextIO.setInstream</span> with a derived
 stream, you may lose input data.  We have fixed the problem in our
 CVS.
</p>
<div class="paragraph"><p>Thanks to <a href="WesleyTerpstra">WesleyTerpstra</a> for reporting this bug.</p></div>
</li>
<li>
<p>
<a id="bug01"></a>
 <span class="monospaced">Posix.ProcEnv.setpgid</span> doesn&#8217;t work.  If you compile a program
 that uses it, you will get a link time error
</p>
<div class="listingblock">
<div class="content monospaced">
<pre>undefined reference to `Posix_ProcEnv_setpgid'</pre>
</div></div>
<div class="paragraph"><p>The bug is due to <span class="monospaced">Posix_ProcEnv_setpgid</span> being omitted from the
 MLton runtime.  We fixed the problem in our CVS by adding the
 following definition to <span class="monospaced">runtime/Posix/ProcEnv/ProcEnv.c</span></p></div>
<div class="listingblock">
<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>
        <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>
<span class="p">}</span>
</pre></div></div></div>
<div class="paragraph"><p>Thanks to Tom Murphy for reporting this bug.</p></div>
</li>
</ul></div>
</div>
</div>
</div>
<div id="footnotes"><hr></div>
<div id="footer">
<div id="footer-text">
</div>
<div id="footer-badges">
</div>
</div>
</body>
</html>