Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | Bugs20041109 |
2 | ============ | |
3 | ||
4 | Here are the known bugs in <:Release20041109:MLton 20041109>, listed | |
5 | in reverse chronological order of date reported. | |
6 | ||
7 | * <!Anchor(bug17)> | |
8 | `MLton.Finalizable.touch` doesn't necessarily keep values alive | |
9 | long enough. Our SVN has a patch to the compiler. You must rebuild | |
10 | the compiler in order for the patch to take effect. | |
11 | + | |
12 | Thanks to Florian Weimer for reporting this bug. | |
13 | ||
14 | * <!Anchor(bug16)> | |
15 | A bug in an optimization pass may incorrectly transform a program | |
16 | to flatten ref cells into their containing data structure, yielding a | |
17 | type-error in the transformed program. Our CVS has a | |
18 | http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/mlton/ssa/ref-flatten.fun.diff?r1=1.35&r2=1.37[patch] | |
19 | to the compiler. You must rebuild the compiler in order for the | |
20 | patch to take effect. | |
21 | + | |
22 | Thanks to <:VesaKarvonen:> for reporting this bug. | |
23 | ||
24 | * <!Anchor(bug15)> | |
25 | A bug in the front end mistakenly allows unary constructors to be | |
26 | used without an argument in patterns. For example, the following | |
27 | program is accepted, and triggers a large internal error. | |
28 | + | |
29 | [source,sml] | |
30 | ---- | |
31 | fun f x = case x of SOME => true | _ => false | |
32 | ---- | |
33 | + | |
34 | We have fixed the problem in our CVS. | |
35 | + | |
36 | Thanks to William Lovas for reporting this bug. | |
37 | ||
38 | * <!Anchor(bug14)> | |
39 | A bug in `Posix.IO.{getlk,setlk,setlkw}` causes a link-time error: | |
40 | `undefined reference to Posix_IO_FLock_typ` | |
41 | Our CVS has a | |
42 | http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/basis-library/posix/primitive.sml.diff?r1=1.34&r2=1.35[patch] | |
43 | to the Basis Library implementation. | |
44 | + | |
45 | Thanks to Adam Chlipala for reporting this bug. | |
46 | ||
47 | * <!Anchor(bug13)> | |
48 | A bug can cause programs compiled with `-profile alloc` to | |
49 | segfault. Our CVS has a | |
50 | http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/mlton/backend/ssa-to-rssa.fun.diff?r1=1.106&r2=1.107[patch] | |
51 | to the compiler. You must rebuild the compiler in order for the | |
52 | patch to take effect. | |
53 | + | |
54 | Thanks to John Reppy for reporting this bug. | |
55 | ||
56 | * <!Anchor(bug12)> | |
57 | A bug in an optimization pass may incorrectly flatten ref cells | |
58 | into their containing data structure, breaking the sharing between | |
59 | the cells. Our CVS has a | |
60 | http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/mlton/ssa/ref-flatten.fun.diff?r1=1.32&r2=1.33[patch] | |
61 | to the compiler. You must rebuild the compiler in order for the | |
62 | patch to take effect. | |
63 | + | |
64 | Thanks to Paul Govereau for reporting this bug. | |
65 | ||
66 | * <!Anchor(bug11)> | |
67 | Some arrays or vectors, such as `(char * char) vector`, are | |
68 | incorrectly implemented, and will conflate the first and second | |
69 | components of each element. Our CVS has a | |
70 | http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/mlton/backend/packed-representation.fun.diff?r1=1.32&r2=1.33[patch] | |
71 | to the compiler. You must rebuild the compiler in order for the | |
72 | patch to take effect. | |
73 | + | |
74 | Thanks to Scott Cruzen for reporting this bug. | |
75 | ||
76 | * <!Anchor(bug10)> | |
77 | `Socket.Ctl.getLINGER` and `Socket.Ctl.setLINGER` | |
78 | mistakenly raise `Subscript`. | |
79 | Our CVS has a | |
80 | http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/basis-library/net/socket.sml.diff?r1=1.14&r2=1.15[patch] | |
81 | to the Basis Library implementation. | |
82 | + | |
83 | Thanks to Ray Racine for reporting the bug. | |
84 | ||
85 | * <!Anchor(bug09)> | |
86 | <:ConcurrentML: CML> `Mailbox.send` makes a call in the wrong atomic context. | |
87 | Our CVS has a http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/lib/cml/core-cml/mailbox.sml.diff?r1=1.3&r2=1.4[patch] | |
88 | to the CML implementation. | |
89 | ||
90 | * <!Anchor(bug08)> | |
91 | `OS.Path.joinDirFile` and `OS.Path.toString` did not | |
92 | raise `InvalidArc` when they were supposed to. They now do. | |
93 | Our CVS has a http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/basis-library/system/path.sml.diff?r1=1.8&r2=1.11[patch] | |
94 | to the Basis Library implementation. | |
95 | + | |
96 | Thanks to Andreas Rossberg for reporting the bug. | |
97 | ||
98 | * <!Anchor(bug07)> | |
99 | The front end incorrectly disallows sequences of expressions | |
100 | (separated by semicolons) after a topdec has already been processed. | |
101 | For example, the following is incorrectly rejected. | |
102 | + | |
103 | [source,sml] | |
104 | ---- | |
105 | val x = 0; | |
106 | ignore x; | |
107 | ignore x; | |
108 | ---- | |
109 | + | |
110 | We have fixed the problem in our CVS. | |
111 | + | |
112 | Thanks to Andreas Rossberg for reporting the bug. | |
113 | ||
114 | * <!Anchor(bug06)> | |
115 | The front end incorrectly disallows expansive `val` | |
116 | declarations that bind a type variable that doesn't occur in the | |
117 | type of the value being bound. For example, the following is | |
118 | incorrectly rejected. | |
119 | + | |
120 | [source,sml] | |
121 | ---- | |
122 | val 'a x = let exception E of 'a in () end | |
123 | ---- | |
124 | + | |
125 | We have fixed the problem in our CVS. | |
126 | + | |
127 | Thanks to Andreas Rossberg for reporting this bug. | |
128 | ||
129 | * <!Anchor(bug05)> | |
130 | The x86 codegen fails to account for the possibility that a 64-bit | |
131 | move could interfere with itself (as simulated by 32-bit moves). We | |
132 | have fixed the problem in our CVS. | |
133 | + | |
134 | Thanks to Scott Cruzen for reporting this bug. | |
135 | ||
136 | * <!Anchor(bug04)> | |
137 | `NetHostDB.scan` and `NetHostDB.fromString` incorrectly | |
138 | raise an exception on internet addresses whose last component is a | |
139 | zero, e.g `0.0.0.0`. Our CVS has a | |
140 | http://mlton.org/cgi-bin/viewcvs.cgi/mlton/mlton/basis-library/net/net-host-db.sml.diff?r1=1.12&r2=1.13[patch] to the Basis Library implementation. | |
141 | + | |
142 | Thanks to Scott Cruzen for reporting this bug. | |
143 | ||
144 | * <!Anchor(bug03)> | |
145 | `StreamIO.inputLine` has an off-by-one error causing it to drop | |
146 | the first character after a newline in some situations. Our CVS has a | |
147 | 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]. | |
148 | to the Basis Library implementation. | |
149 | + | |
150 | Thanks to Scott Cruzen for reporting this bug. | |
151 | ||
152 | * <!Anchor(bug02)> | |
153 | `BinIO.getInstream` and `TextIO.getInstream` are | |
154 | implemented incorrectly. This also impacts the behavior of | |
155 | `BinIO.scanStream` and `TextIO.scanStream`. If you (directly | |
156 | or indirectly) realize a `TextIO.StreamIO.instream` and do not | |
157 | (directly or indirectly) call `TextIO.setInstream` with a derived | |
158 | stream, you may lose input data. We have fixed the problem in our | |
159 | CVS. | |
160 | + | |
161 | Thanks to <:WesleyTerpstra:> for reporting this bug. | |
162 | ||
163 | * <!Anchor(bug01)> | |
164 | `Posix.ProcEnv.setpgid` doesn't work. If you compile a program | |
165 | that uses it, you will get a link time error | |
166 | + | |
167 | ---- | |
168 | undefined reference to `Posix_ProcEnv_setpgid' | |
169 | ---- | |
170 | + | |
171 | The bug is due to `Posix_ProcEnv_setpgid` being omitted from the | |
172 | MLton runtime. We fixed the problem in our CVS by adding the | |
173 | following definition to `runtime/Posix/ProcEnv/ProcEnv.c` | |
174 | + | |
175 | [source,c] | |
176 | ---- | |
177 | Int Posix_ProcEnv_setpgid (Pid p, Gid g) { | |
178 | return setpgid (p, g); | |
179 | } | |
180 | ---- | |
181 | + | |
182 | Thanks to Tom Murphy for reporting this bug. |