SCM Repository
Annotation of /doc/trunk/src/changelog/HISTORY.txt
Parent Directory
|
Revision Log
Revision 6038 - (view) (download)
1 : | jhr | 4603 | = Standard ML of New Jersey Change Log |
2 : | jhr | 3992 | The Fellowship of SML/NJ |
3 : | jhr | 4603 | :revnumber: {version} |
4 : | jhr | 5967 | :revdate: {release-date} |
5 : | jhr | 4603 | :source-highlighter: pygments |
6 : | jhr | 3992 | |
7 : | jhr | 4468 | This file documents changes to the *Standard ML of New Jersey* system since |
8 : | jhr | 4002 | March of 2000 (around Version 110.26). The change log primarily covers |
9 : | the compiler, the compilation manager (*CM*), the *MLRISC* library, and | ||
10 : | the runtime system. There are occasional entries about other components | ||
11 : | (_e.g._, the *SML/NJ Library* and *ML-LPT*), but these components have | ||
12 : | their own change logs that should be consulted. | ||
13 : | |||
14 : | jhr | 3992 | ////////////////////////////////////////////////////////////////////// |
15 : | This change log is in ASCII doc format. An HTML version of the | ||
16 : | change log can be generated using the command | ||
17 : | |||
18 : | jhr | 4049 | make html |
19 : | jhr | 3992 | |
20 : | An entry should be made for _every_ commit to the repository. | ||
21 : | The entries in this file will be used when creating the README | ||
22 : | for new versions, so keep that in mind when writing the | ||
23 : | description. | ||
24 : | |||
25 : | jhr | 4603 | Also note that we now use Asciidoctor (asciidoctor.org) to process the |
26 : | file, since the original Asciidoc is no longer under active development | ||
27 : | and asciidoctor is also faster. | ||
28 : | jhr | 3992 | The structure of the HISTORY is that there is a section for |
29 : | each release, which starts with a section header of the form | ||
30 : | |||
31 : | == Version xxx.yy; yyyy/mm/dd | ||
32 : | |||
33 : | The content of a section is a list of entries. The form of an | ||
34 : | entry should be: | ||
35 : | |||
36 : | [yyy/mm/dd]:: | ||
37 : | + | ||
38 : | jhr | 3995 | Description ... |
39 : | jhr | 3992 | + |
40 : | jhr | 4603 | owner:URL[Your Name] |
41 : | jhr | 3992 | |
42 : | jhr | 3995 | Note that we put "+" at the beginning of blank lines. Entries are items |
43 : | in a labeled list and the "+" character keeps eveything in the same list | ||
44 : | element. | ||
45 : | |||
46 : | jhr | 3992 | Here is a quick asciidoc cheat sheet: |
47 : | |||
48 : | + new paragraph | ||
49 : | *foo* bold "foo" | ||
50 : | _foo_ italic "foo" | ||
51 : | jhr | 4603 | `foo` teletype "foo" |
52 : | jhr | 3992 | http:/some.website.org/path[] URL |
53 : | jhr | 4603 | bugref:123[] displays as "#123" with |
54 : | jhr | 3992 | a link to the bug report. |
55 : | jhr | 4603 | bugref:123[feature] displays as "#123" with a |
56 : | jhr | 4134 | link to the feature request. |
57 : | jhr | 4603 | owner:url[name] displays name with URL link. |
58 : | jhr | 3992 | |
59 : | jhr | 3995 | Sub lists should be bracketed with lines containing just "--". |
60 : | jhr | 3992 | Bulleted list items start with a single dash or one to five |
61 : | dbm | 4298 | asterisks followed by some white space then some text. Numbered |
62 : | jhr | 3992 | list items begin one to five period characters, followed by |
63 : | some white space then the item text. | ||
64 : | |||
65 : | jhr | 3995 | Literal (verbatim) blocks are delimited by |
66 : | ..................... | ||
67 : | stuff | ||
68 : | ..................... | ||
69 : | |||
70 : | jhr | 3992 | Superscripts and subscripts are denoted by putting ^ (or ~) |
71 : | around the text to superscripted (superscripted). For example, | ||
72 : | the number 256 can be written as 2^8^. | ||
73 : | |||
74 : | SML source code displays can be included as source blocks: | ||
75 : | |||
76 : | [source,sml] | ||
77 : | ------------ | ||
78 : | structure Foo = struct val x = 1 end | ||
79 : | ------------ | ||
80 : | |||
81 : | jhr | 4603 | To process the file, you will need asciidoctor and the pygments.rb gem |
82 : | installed. See the Asciidoctor manual at https://asciidoctor.org/docs/user-manual | ||
83 : | for more information. | ||
84 : | jhr | 3992 | |
85 : | jhr | 4002 | NOTE: the original HISTORY file was converted to ASCIIDOC using a Perl |
86 : | script. This script gets the basic structure for entries correct, | ||
87 : | but there still needs to be a fair bit of editing to add ASCIIDOC | ||
88 : | markup, fix indentation issues, nested lists, etc. Working from most | ||
89 : | recent to oldest, I've edited back to release 110.46 (2004/06/17). | ||
90 : | |||
91 : | jhr | 3992 | ////////////////////////////////////////////////////////////////////// |
92 : | |||
93 : | jhr | 4157 | //==================================================================== |
94 : | jhr | 6032 | //== Recent updates |
95 : | jhr | 4220 | |
96 : | jhr | 6032 | //==================================================================== |
97 : | == Version 110.96; 2019/12/13 | ||
98 : | |||
99 : | jhr | 6006 | //-------------------------------------------------------------------- |
100 : | jhr | 6032 | [2019/12/12]:: |
101 : | + | ||
102 : | jhr | 6038 | Bug fix for a problem where ^C (and other signals might be ignored). |
103 : | The fix was to use word-sized fields in VProc state vector so that | ||
104 : | the word-sized move operations in the assembly code do not clobber | ||
105 : | adjacent fields. | ||
106 : | + | ||
107 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
108 : | |||
109 : | //-------------------------------------------------------------------- | ||
110 : | [2019/12/12]:: | ||
111 : | + | ||
112 : | jhr | 6032 | Fix for bug bugref:234[] (Converting NaN to a string causes an infinite |
113 : | loop on 64-bit machines). The problem was in `MLRISC/amd64/mltree/amd64-gen.sml`, | ||
114 : | which was not generating comparisons that work correctly when the | ||
115 : | arguments are unordered. | ||
116 : | + | ||
117 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
118 : | |||
119 : | //-------------------------------------------------------------------- | ||
120 : | [2019/12/12]:: | ||
121 : | + | ||
122 : | Removed assertion checking from the **amd64** runtime makefiles. It | ||
123 : | has not turned up any errors since 110.94 was released, so we will | ||
124 : | assume that things are working the way that they should. | ||
125 : | + | ||
126 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
127 : | |||
128 : | //-------------------------------------------------------------------- | ||
129 : | [2019/12/01]:: | ||
130 : | + | ||
131 : | Bugfix for bug bugref:237[] (**heap2exec** script fails on 110.95). | ||
132 : | The fix was provided by Kirill Boltaev. | ||
133 : | + | ||
134 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
135 : | |||
136 : | //-------------------------------------------------------------------- | ||
137 : | jhr | 6024 | [2019/11/23]:: |
138 : | + | ||
139 : | Changed the default installation size to 64 bits on **macOS** 10.14 | ||
140 : | Mojave and later. | ||
141 : | + | ||
142 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
143 : | |||
144 : | //-------------------------------------------------------------------- | ||
145 : | jhr | 6021 | [2019/11/14]:: |
146 : | + | ||
147 : | Fixed some code rot in the *eXene* sources (bug bugref:233[]). With | ||
148 : | the `LargeWord` module changing from `Word32` to `Word64`, there were | ||
149 : | a few places were things broke. | ||
150 : | + | ||
151 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
152 : | |||
153 : | //-------------------------------------------------------------------- | ||
154 : | [2019/11/14]:: | ||
155 : | + | ||
156 : | Added support for 64-bit executables on **FreeBSD**. As part of this | ||
157 : | effort, we fixed a couple of regressions (makefile issues) for the | ||
158 : | 32-bit version on **FreeBSD** that were introduced when the `X86.prim.asm` | ||
159 : | file was rewritten. We also switch from *BSD* signal handling to | ||
160 : | *POSIX* signal handling, since that is what we use for most other systems. | ||
161 : | + | ||
162 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
163 : | |||
164 : | //-------------------------------------------------------------------- | ||
165 : | jhr | 6032 | [2019/11/12]:: |
166 : | + | ||
167 : | Fixed `config/install.sh` script, which was not passing the size | ||
168 : | option to the `.link-sml`, which caused confusion for the "**-64**" | ||
169 : | flag. This problem was later reported as bugs bugref:235[] and | ||
170 : | bugref:236[]. | ||
171 : | + | ||
172 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
173 : | |||
174 : | //-------------------------------------------------------------------- | ||
175 : | jhr | 6006 | [2019/11/10]:: |
176 : | + | ||
177 : | Many years ago, *SML/NJ* had a bytecode interpreter, but it was mostly | ||
178 : | removed from the system a long time ago. There were, however, some | ||
179 : | remnants of it in the runtime system. These have now been removed. | ||
180 : | + | ||
181 : | Having made this change, the distinction between the "target" and | ||
182 : | "host" architectures is no longer necessary. Therefore, these have | ||
183 : | been merged into a single architecture property. The effects of this | ||
184 : | merge are as follows: | ||
185 : | + | ||
186 : | -- | ||
187 : | * the `TARGET_xxx` and `HOST_xxx` C-preprocessor symbols have been | ||
188 : | replaced with a single `ARCH_xxx` symbol in the runtime system. | ||
189 : | + | ||
190 : | * The `SMLofNJ.SysInfo` structure now provides `getArchName` and | ||
191 : | `getArchSize` functions. | ||
192 : | + | ||
193 : | * The following `SMLofNJ.SysInfo` functions are deprecated and will | ||
194 : | be removed in 110.97: `getHostSize`, `getHostArch`, and | ||
195 : | `getTargetArch`. | ||
196 : | -- | ||
197 : | + | ||
198 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
199 : | |||
200 : | jhr | 5975 | //==================================================================== |
201 : | == Version 110.95; 2019/11/09 | ||
202 : | |||
203 : | jhr | 5961 | //-------------------------------------------------------------------- |
204 : | jhr | 5975 | [2019/11/09]:: |
205 : | + | ||
206 : | jhr | 6003 | Fix for bug bugref:230[] (New literals-lifting code does not handle |
207 : | pair of reals). | ||
208 : | + | ||
209 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
210 : | |||
211 : | //-------------------------------------------------------------------- | ||
212 : | [2019/11/09]:: | ||
213 : | + | ||
214 : | jhr | 5975 | Simplified the runtime-system build rules for Cygwin. |
215 : | + | ||
216 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
217 : | |||
218 : | //-------------------------------------------------------------------- | ||
219 : | jhr | 5965 | [2019/11/08]:: |
220 : | + | ||
221 : | Created the script `config/prepare-win-install.sh`, which implements | ||
222 : | the fetching and unbundling of source and bin files in preparation | ||
223 : | for a Windows installation. | ||
224 : | + | ||
225 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
226 : | |||
227 : | //-------------------------------------------------------------------- | ||
228 : | jhr | 5961 | [2019/11/07]:: |
229 : | + | ||
230 : | Fix for bug bugref:229[] (`Real.fromString` errors). This bug was | ||
231 : | actually two unrelated issues. The problem that `Real.toString` | ||
232 : | returns `Real.posInf` for `0.0e123213213123213123123` has been | ||
233 : | fixed in the `RealScan` module (`system/basis/Implementation/real-scan.sml`). | ||
234 : | The second bug was a regression introduced in 110.93, where the | ||
235 : | `SIGFPE` signal was specified as the result of the `into` instruction, | ||
236 : | whereas **Linux** actually signals `SIGSEGV` for `into`. Note that | ||
237 : | there may be a related issue of **BSD** systems, where `SIGBUS` might | ||
238 : | be the signal, but we need access to a test machine to verify. | ||
239 : | + | ||
240 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
241 : | jhr | 5959 | |
242 : | //-------------------------------------------------------------------- | ||
243 : | [2019/11/07]:: | ||
244 : | + | ||
245 : | Fix for bug bugref:230[] (segmentation fault when compiling MLton sources | ||
246 : | with SML/NJ 64-bit). The problem was that when a large vector was | ||
247 : | being created, the assembly code did not correctly restore the stack | ||
248 : | state before trying to call the runtime system to do the allocation. | ||
249 : | + | ||
250 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
251 : | |||
252 : | //-------------------------------------------------------------------- | ||
253 : | [2019/11/04]:: | ||
254 : | + | ||
255 : | The runtime now uses `MAP_ANON` for allocating memory on 64-bit Linux. | ||
256 : | This change fixes a problem with versions of Linux that do not allow | ||
257 : | jhr | 6006 | access to `/dev/zero` (such as on **ChromeBooks**). |
258 : | jhr | 5959 | + |
259 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
260 : | |||
261 : | jhr | 5910 | //==================================================================== |
262 : | == Version 110.94; 2019/10/31 | ||
263 : | jhr | 5907 | |
264 : | jhr | 5875 | //-------------------------------------------------------------------- |
265 : | jhr | 5907 | [2019/10/23]:: |
266 : | + | ||
267 : | Modified the generic installed (`base/system/smlnj/installer/generic-install.sml`) | ||
268 : | to support conditional targets. You can now write tests like | ||
269 : | + | ||
270 : | [source] | ||
271 : | -------- | ||
272 : | if UNIX | ||
273 : | unix-utils | ||
274 : | endif | ||
275 : | -------- | ||
276 : | + | ||
277 : | The symbols that can currently be tested for are `SIZE_32`, `SIZE_64`, | ||
278 : | `UNIX`, and `WINDOWS`. See the `config/targets` file for more details. | ||
279 : | + | ||
280 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
281 : | |||
282 : | //-------------------------------------------------------------------- | ||
283 : | [2019/10/23]:: | ||
284 : | + | ||
285 : | Fixed bug bugref:227[] (CPS contraction is taking an excessive amount | ||
286 : | of time on word8 basis test). | ||
287 : | + | ||
288 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
289 : | |||
290 : | //-------------------------------------------------------------------- | ||
291 : | [2019/10/22]:: | ||
292 : | + | ||
293 : | Modified the CPS contraction phase to optimize the case where a | ||
294 : | numeric conversion is applied to a constant value. | ||
295 : | + | ||
296 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
297 : | |||
298 : | //-------------------------------------------------------------------- | ||
299 : | jhr | 5875 | [2019/10/21]:: |
300 : | + | ||
301 : | Modified the Unix installer script (`base/system/smlnj/installer/nix-install.sml`) | ||
302 : | to pass a size argument to the configuration script. This argument is used | ||
303 : | by the **ASDL** configuration. | ||
304 : | + | ||
305 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
306 : | jhr | 5843 | |
307 : | jhr | 5725 | //-------------------------------------------------------------------- |
308 : | jhr | 5875 | [2019/10/21]:: |
309 : | + | ||
310 : | Overhauled the installation script (`config/install.sh`) and various | ||
311 : | script templates (__e.g.__, `config/_run-sml`) to allow setting the | ||
312 : | default size. The `config/install.sh` script now supports the following | ||
313 : | arguments: | ||
314 : | + | ||
315 : | -- | ||
316 : | **-default** __size__:: | ||
317 : | specify the default size for the **sml** and other commands, where | ||
318 : | __size__ is either **32** or **64**. | ||
319 : | |||
320 : | **-32**:: | ||
321 : | install the 32-bit version of the system. | ||
322 : | |||
323 : | **-64**:: | ||
324 : | install the 64-bit version of the system. | ||
325 : | -- | ||
326 : | + | ||
327 : | It is possible to install both versions in the same location by running | ||
328 : | the `install.sh` script twice. For example, the commands | ||
329 : | + | ||
330 : | [source,shell] | ||
331 : | -------------- | ||
332 : | jhr | 5910 | % config/install.sh -32 |
333 : | jhr | 5875 | % config/install.sh -default 64 |
334 : | -------------- | ||
335 : | + | ||
336 : | will install both versions with the 64-bit version as default. One | ||
337 : | would then use the command **sml -32** to run the 32-bit version of | ||
338 : | jhr | 5910 | the system. Note that the default version must be installed second. |
339 : | jhr | 5875 | + |
340 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
341 : | |||
342 : | //-------------------------------------------------------------------- | ||
343 : | [2019/10/21]:: | ||
344 : | + | ||
345 : | Added support for the **-64** flag to the `fixpt` script in `base/system`. | ||
346 : | + | ||
347 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
348 : | |||
349 : | //-------------------------------------------------------------------- | ||
350 : | jhr | 5843 | [2019/10/17]:: |
351 : | + | ||
352 : | jhr | 5858 | Added support for the **-64** flag to the `cmb-make` script in `base/system`. |
353 : | + | ||
354 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
355 : | |||
356 : | //-------------------------------------------------------------------- | ||
357 : | [2019/10/17]:: | ||
358 : | + | ||
359 : | jhr | 5843 | Renamed the `REAL` representation constructor to `Raw64`, which matches |
360 : | what is going on in the runtime system. Also renamed the `toReal` function | ||
361 : | to `toReal64`. | ||
362 : | + | ||
363 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
364 : | |||
365 : | //-------------------------------------------------------------------- | ||
366 : | jhr | 5858 | [2019/10/15]:: |
367 : | + | ||
368 : | Updated the `SMLofNJ.SysInfo` structure by removing constructors from the | ||
369 : | `oskind` datatype that correspond to obsolete systems. Also added a | ||
370 : | `getHostSize` function that returns the host architecture's native word | ||
371 : | size in bits (__e.g.__, 32 or 64). | ||
372 : | + | ||
373 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
374 : | |||
375 : | //-------------------------------------------------------------------- | ||
376 : | jhr | 5795 | [2019/10/13]:: |
377 : | + | ||
378 : | jhr | 5858 | Added the **-64** flag to the `testml` script in `base/system` and |
379 : | jhr | 5795 | to the `.run-sml` script. Thus, one will be able to specify the |
380 : | 32-bit version of SML/NJ using the command **sml -32** and the | ||
381 : | 64-bit version using the command **sml -64**. Currently, 32-bits | ||
382 : | is the default, since the 64-bit system is unstable. | ||
383 : | + | ||
384 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
385 : | |||
386 : | //-------------------------------------------------------------------- | ||
387 : | [2019/10/13]:: | ||
388 : | + | ||
389 : | Removed obsolete operating systems from the `SMLofNJ.SysInfo.os_kind` | ||
390 : | datatype. This change reduces the type to two constructors: `UNIX` | ||
391 : | and `WIN32`. Also added a function `getHostSize` to the `SysInfo` | ||
392 : | structure, which returns the host word size in bits (*i.e.*, either | ||
393 : | `32` or `64`). The word size is now reported in the compiler's | ||
394 : | banner message at startup. | ||
395 : | + | ||
396 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
397 : | |||
398 : | //-------------------------------------------------------------------- | ||
399 : | dbm | 5783 | [2019/10/12]:: |
400 : | + | ||
401 : | jhr | 5858 | Fixed bug bugref:130[] (failure to raise `Bind` exception). Added |
402 : | jhr | 5795 | a function `refutable` to `ElabData/types/typesutil.{sig,sml}` and |
403 : | used it to limit type generalization of val bindings in | ||
404 : | `Elaborator/types/typecheck.sml`. | ||
405 : | The fix does not deal properly with refutability of OR patterns, but | ||
406 : | dbm | 5783 | OR patterns in val bindings is a dubious feature. |
407 : | + | ||
408 : | jhr | 6021 | This change also fixes bug bugref:188[] (Missing warning for |
409 : | jhr | 6022 | nonexhaustive valbind patterns) and bugref:199[] (Compiler bug in |
410 : | pretty printing of result). | ||
411 : | jhr | 6021 | + |
412 : | dbm | 5783 | owner:cs.uchicago.edu/~dbm[David MacQueen] |
413 : | |||
414 : | //-------------------------------------------------------------------- | ||
415 : | jhr | 5725 | [2019/10/04]:: |
416 : | + | ||
417 : | jhr | 5743 | Modified the **cmb-make** script to support passing compiler control |
418 : | flags to the build command. The flags should be specified after the | ||
419 : | path to **sml** command (if it is given). | ||
420 : | + | ||
421 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
422 : | |||
423 : | //-------------------------------------------------------------------- | ||
424 : | [2019/10/04]:: | ||
425 : | + | ||
426 : | Finished the implementation of the new literal bytecode engine. | ||
427 : | There is a control flag (`Control.CG.newLiterals` that allows | ||
428 : | switching between the old and new bytecodes). | ||
429 : | + | ||
430 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
431 : | |||
432 : | //-------------------------------------------------------------------- | ||
433 : | [2019/10/04]:: | ||
434 : | + | ||
435 : | jhr | 5858 | Fix for bug bugref:225[] (`Math.ln` giving erroneous answers on Windows). |
436 : | jhr | 5725 | The problem was an inconsistency in the way the Unix and Microsoft |
437 : | assemblers interpreted the addressing mode for the `FLD` instruction. | ||
438 : | + | ||
439 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
440 : | |||
441 : | jhr | 5743 | //-------------------------------------------------------------------- |
442 : | [2019/10/03]:: | ||
443 : | + | ||
444 : | Clean up in the Basis Posix library code (both SML and runtime) to | ||
445 : | be consistent about when the `SysWord.word` type is being used to | ||
446 : | communicate information between SML code and the runtime system. | ||
447 : | + | ||
448 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
449 : | |||
450 : | jhr | 5629 | //==================================================================== |
451 : | == Version 110.93; 2019/09/05 | ||
452 : | |||
453 : | jhr | 5622 | //-------------------------------------------------------------------- |
454 : | jhr | 5647 | [2019/09/04]:: |
455 : | + | ||
456 : | Add support for specifying a 32 or 64-bit target as command-line option | ||
457 : | to the `.arch-n-opsys` and `.link-sml` scripts. The default size is | ||
458 : | currently 32-bits, but that will change once 64-bit support is solid. | ||
459 : | + | ||
460 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
461 : | |||
462 : | //-------------------------------------------------------------------- | ||
463 : | jhr | 5629 | [2019/09/03]:: |
464 : | + | ||
465 : | Generalize code generation for conversions involving tagged integers/words, | ||
466 : | where the size is _not_ the default integer size. This situation only | ||
467 : | occurred for `Word8.word` values on 32-bit targets, but also occurs for | ||
468 : | 32-bit values on 64-bit targets. | ||
469 : | + | ||
470 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
471 : | |||
472 : | //-------------------------------------------------------------------- | ||
473 : | jhr | 5622 | [2019/09/02]:: |
474 : | + | ||
475 : | Rewrote the expansion of the `INLLSHIFT`, `INLRSHIFTL`, and `INLRSHIFT` | ||
476 : | primops (`compiler/FLINT/trans/transprim.sml`). The expansion process | ||
477 : | now correctly handles shift operations on types that are smaller than | ||
478 : | jhr | 5629 | the default tagged-integer size. This change also allows the `Word8` |
479 : | shift operations to be inlined. | ||
480 : | jhr | 5622 | + |
481 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
482 : | jhr | 5617 | |
483 : | jhr | 5595 | //-------------------------------------------------------------------- |
484 : | jhr | 5617 | [2019/09/02]:: |
485 : | + | ||
486 : | Fixed a bug in the constant folding of arithmetic-right-shift operations. | ||
487 : | The sign was not getting extended for words when the most-significant-bit | ||
488 : | was set. | ||
489 : | + | ||
490 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
491 : | |||
492 : | //-------------------------------------------------------------------- | ||
493 : | jhr | 5611 | [2019/08/25]:: |
494 : | + | ||
495 : | Fixed a bug in the `Real.toManExp` function (the exponent was off | ||
496 : | by one, which meant that the mantissa was two times its expected | ||
497 : | value). This fix also fixes a problem in `Real.toLargeInt`, where | ||
498 : | the function would go into an infinite loop in some cases. | ||
499 : | + | ||
500 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
501 : | |||
502 : | //-------------------------------------------------------------------- | ||
503 : | jhr | 5607 | [2019/08/24]:: |
504 : | + | ||
505 : | jhr | 5858 | Fixed bug bugref:173[] (`OS.Process.sleep` only works with whole numbers). |
506 : | jhr | 5607 | For systems that have finer-grain sleep function, such as the |
507 : | `nanosleep`(2) system call, the `OS.Process.sleep` and `Posix.Process.sleep` | ||
508 : | functions now support sub-second granularity. | ||
509 : | + | ||
510 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
511 : | |||
512 : | //-------------------------------------------------------------------- | ||
513 : | jhr | 5604 | [2019/08/18]:: |
514 : | + | ||
515 : | Restructured the CPS contraction phase to make the fusion of | ||
516 : | integer/word conversions more uniform. Also fixed a bug | ||
517 : | where `Int32.fromLarge(Word32.toLargeInt 0wxffffffff)` would | ||
518 : | return `~1` instead of raising `Overflow`. The problem was | ||
519 : | that `TEST(m,n) o COPY(n,p)` was getting fused to `COPY(m,p)` | ||
520 : | when `m = p`, instead of `TRUNC(m,p)`. | ||
521 : | + | ||
522 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
523 : | |||
524 : | //-------------------------------------------------------------------- | ||
525 : | jhr | 5602 | [2019/08/14]:: |
526 : | + | ||
527 : | Int64 comparisons were not always correct, which lead to some positive | ||
528 : | values being printed as negative numbers (basically when the sign | ||
529 : | bit of the lower word was set). | ||
530 : | + | ||
531 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
532 : | |||
533 : | //-------------------------------------------------------------------- | ||
534 : | jhr | 5595 | [2019/08/13]:: |
535 : | + | ||
536 : | Added `Unsafe.IntInf` structure, which provides access to the | ||
537 : | internal representation of the `IntInf.int` type. Note that | ||
538 : | this representation may change in the future. | ||
539 : | + | ||
540 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
541 : | |||
542 : | jhr | 5602 | //-------------------------------------------------------------------- |
543 : | [2019/08/12]:: | ||
544 : | + | ||
545 : | jhr | 5858 | Fixed bug bugref:223[] (Incremental Build fails on Windows). There was |
546 : | jhr | 5602 | a missing `CloseHandle()` when getting a file's timestamp. |
547 : | + | ||
548 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
549 : | |||
550 : | jhr | 5571 | //==================================================================== |
551 : | jhr | 5629 | == Version 110.92; 2019/08/10 |
552 : | jhr | 5571 | |
553 : | jhr | 5526 | //-------------------------------------------------------------------- |
554 : | jhr | 5571 | [2019/08/08]:: |
555 : | + | ||
556 : | Changed `base/system/allcross` script to use `cmb-cross` script. | ||
557 : | Also modified the `cmb-cross` script to build compressed tar | ||
558 : | files, when given the `-z` option, and to clean up intermediate | ||
559 : | files. | ||
560 : | + | ||
561 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
562 : | |||
563 : | //-------------------------------------------------------------------- | ||
564 : | jhr | 5565 | [2019/07/16]:: |
565 : | + | ||
566 : | Restructured the **amd64** machine-code generation implementation and | ||
567 : | filled in many of the missing encodings. It should be complete for | ||
568 : | **SML/NJ** code generation, but needs more work to support the full set | ||
569 : | of operations described in the `amd64.mdl` file. | ||
570 : | + | ||
571 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
572 : | |||
573 : | //-------------------------------------------------------------------- | ||
574 : | [2019/07/16]:: | ||
575 : | + | ||
576 : | Some cleanup in the **x86** MLRISC backend. Removed the `MULB`, | ||
577 : | `MULW`, and `MULL` unsigned-multiplication instructions, since they | ||
578 : | are not binary operations. The `MULL` instruction is covered by | ||
579 : | the `MULL1` constructor in the `multDivOp` datatype. The same change | ||
580 : | was applied to the **amd64** backend. | ||
581 : | + | ||
582 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
583 : | |||
584 : | //-------------------------------------------------------------------- | ||
585 : | [2019/07/15]:: | ||
586 : | + | ||
587 : | Many changes to the **amd64** machine description: | ||
588 : | + | ||
589 : | -- | ||
590 : | * Removed the `PUSHB`, `PUSHW`, and `PUSHL` instructions, since the matching | ||
591 : | `POP` operations are not supported. | ||
592 : | * Removed the `CALLQ` operation, since it is the same as `CALL`. | ||
593 : | * Removed the `CLTD` and `CQTO` operations, since those names are just | ||
594 : | synonyms for `CDQ` and `CDO`. | ||
595 : | * Replaced the `INTO` operation (which is not valid in 64-bit mode) with | ||
596 : | `INT of byte`. | ||
597 : | -- | ||
598 : | + | ||
599 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
600 : | |||
601 : | //-------------------------------------------------------------------- | ||
602 : | jhr | 5571 | [2019/07/13]:: |
603 : | + | ||
604 : | New script for cross compiling to other architectures; the script | ||
605 : | is still called `cmb-make`, but now supports target-specific | ||
606 : | dependencies in the front-end (i.e., representation of numeric | ||
607 : | types and endianess). The cross compilation scheme was developed | ||
608 : | by Matthias Blume and then encoded in a script. | ||
609 : | + | ||
610 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
611 : | |||
612 : | //-------------------------------------------------------------------- | ||
613 : | jhr | 5548 | [2019/07/11]:: |
614 : | + | ||
615 : | The runtime system now builds for the amd64 architecture. Most of | ||
616 : | the changes relate to the difference between the flat BIBOP on 32-bit | ||
617 : | platforms and the two-level BIBOP on 64-bit platforms. | ||
618 : | + | ||
619 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
620 : | |||
621 : | //-------------------------------------------------------------------- | ||
622 : | jhr | 5536 | [2019/07/09]:: |
623 : | + | ||
624 : | Fix bug bugref:224[] (`Word64.fromLargeInt` fails). The problem was | ||
625 : | an incorrect record kind in `CPS/opt/infcnv.sml` (it was `RK_RECORD` | ||
626 : | instead of `RK_RAWBLOCK`). | ||
627 : | + | ||
628 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
629 : | |||
630 : | //-------------------------------------------------------------------- | ||
631 : | [2019/07/08]:: | ||
632 : | + | ||
633 : | Changed the `rep` datatype constructor `Word32` to `Raw` (which | ||
634 : | covers both 32 and 64-bit numbers on 32-bit platforms). We now | ||
635 : | check the length of the raw object when converting to an | ||
636 : | concrete numeric type. | ||
637 : | + | ||
638 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
639 : | |||
640 : | //-------------------------------------------------------------------- | ||
641 : | jhr | 5526 | [2019/06/28]:: |
642 : | + | ||
643 : | Removed the use of runtime-type passing for polymorphic arrays. | ||
644 : | The effect of this change is that code that uses the `Array.array` | ||
645 : | type will be faster when the element type is **not** `real` (__e.g.__, | ||
646 : | sorting an `Int32.int array` was 1.2 times faster), but | ||
647 : | slower when the type is `real`. Use the monomorphic type | ||
648 : | `RealArray.array` for best performance on arrays of reals. | ||
649 : | + | ||
650 : | jhr | 5527 | owner:cs.uchicago.edu/~dbm[Dave MacQueen] and |
651 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
652 : | jhr | 5526 | |
653 : | jhr | 5485 | //==================================================================== |
654 : | == Version 110.91; 2019/06/20 | ||
655 : | |||
656 : | jhr | 5449 | //-------------------------------------------------------------------- |
657 : | jhr | 5475 | [2019/06/20]:: |
658 : | + | ||
659 : | We added a new primop, `REAL_TO_BITS` that casts a floating-point value to the | ||
660 : | same-size word value. This primop allows the Assembly.logb function to be | ||
661 : | implemented in *SML*. + | ||
662 : | + | ||
663 : | We have also refactored the implementation of the `Math` structure to share | ||
664 : | common code across the versions that are specialized for different levels of | ||
665 : | hardware support. | ||
666 : | + | ||
667 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
668 : | |||
669 : | //-------------------------------------------------------------------- | ||
670 : | jhr | 5471 | [2019/06/19]:: |
671 : | + | ||
672 : | Rewrote the assembly code for the x86 and AMD64 targets. Previously, there | ||
673 : | were separate source files for Unix and Windows; these have been replaced | ||
674 : | by a single common file (one for each architecture). The `assyntax.h` file | ||
675 : | has also been replaced by `x86-syntax.h`, which covers both the x86 | ||
676 : | and AMD64 on both UNIX and Windows. + | ||
677 : | + | ||
678 : | The `AMD64.prim.asm` file now compiles, although there are a few minor | ||
679 : | issues that will have to be fixed once we have a working code generator. | ||
680 : | jhr | 5475 | We have also fixed a number of issues in the garbage collector related |
681 : | to the use of the 2-level BIBOP on 64-bit targets. | ||
682 : | jhr | 5471 | + |
683 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
684 : | |||
685 : | //-------------------------------------------------------------------- | ||
686 : | jhr | 5453 | [2019/06/18]:: |
687 : | + | ||
688 : | Some cleanup in the interval-timer code. In keeping with the other | ||
689 : | time-specific functions, I have switched the runtime-system API to | ||
690 : | use unsigned 64-bit nanoseconds to specify time values. I have also | ||
691 : | added an implementation for `c-libs/smlnj-runtime/itick.c`, which | ||
692 : | was missing. Lastly, moved the Windows-specific file `win32-timers.c` | ||
693 : | from `runtime/kernel` to `runtime/mach-dep`. | ||
694 : | + | ||
695 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
696 : | |||
697 : | //-------------------------------------------------------------------- | ||
698 : | jhr | 5449 | [2019/06/16]:: |
699 : | + | ||
700 : | jhr | 5485 | Added 64-bit implementations of the target-specific **Basis Library** |
701 : | modules in directory `Basis/Implementation/Target64Bit`. | ||
702 : | jhr | 5449 | + |
703 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
704 : | |||
705 : | //-------------------------------------------------------------------- | ||
706 : | [2019/06/16]:: | ||
707 : | + | ||
708 : | Added `PackWord64Big` and `PackWord64Little` structures to Basis Library. | ||
709 : | jhr | 5485 | Note that the implementation of these is target-specific. |
710 : | jhr | 5449 | + |
711 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
712 : | |||
713 : | //-------------------------------------------------------------------- | ||
714 : | [2019/06/16]:: | ||
715 : | + | ||
716 : | Added `bigEndian` flag to the `TARGET` signature. | ||
717 : | + | ||
718 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
719 : | |||
720 : | jhr | 5405 | //==================================================================== |
721 : | == Version 110.90; 2019/06/12 | ||
722 : | |||
723 : | blume | 5355 | //-------------------------------------------------------------------- |
724 : | jhr | 5405 | [2019/06/12]:: |
725 : | + | ||
726 : | Fixed the Concurrent ML library to use 64-bit positions (both Unix | ||
727 : | and Windows) versions. | ||
728 : | + | ||
729 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
730 : | |||
731 : | //-------------------------------------------------------------------- | ||
732 : | jhr | 5401 | [2019/06/11]:: |
733 : | + | ||
734 : | Moved the year offset from SML to the runtime system. This change is | ||
735 : | necessary because Windows uses 1601 as year 0, whereas UNIX uses 1900. | ||
736 : | We have also switched to using unsigned 64-bit times in nanoseconds as | ||
737 : | the interface between the Basis code and runtime system. This change | ||
738 : | is consistent with the other places where time values are communicated | ||
739 : | between the runtime and SML code. | ||
740 : | + | ||
741 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
742 : | |||
743 : | //-------------------------------------------------------------------- | ||
744 : | blume | 5355 | [2019/06/07]:: |
745 : | + | ||
746 : | jhr | 5365 | Fixed a problem with CM's symbol filtering (see bug bugref:222[]). |
747 : | blume | 5355 | + |
748 : | jhr | 5401 | The problem could manifest itself when a library `l2.cm` imported two |
749 : | symbols `A` and `B` from `l1.cm` and then exported the same `A` but a | ||
750 : | different `B` (which could have been defined in terms of the imported | ||
751 : | blume | 5355 | `B`). Moreover, for the problem to occur both `A` and `B` within |
752 : | `l1.cm` must have come from the same SML source file. | ||
753 : | + | ||
754 : | With the above setup, when running | ||
755 : | [source,sml] | ||
756 : | ------------ | ||
757 : | CM.make "l2.cm"; | ||
758 : | ------------ | ||
759 : | jhr | 5401 | it was possible that instead of seeing the new `A` defined within |
760 : | `l2.cm` one would still see the original version that came from | ||
761 : | blume | 5355 | `l1.cm`. |
762 : | + | ||
763 : | owner:people.cs.uchicago.edu/~blume[Matthias Blume] | ||
764 : | |||
765 : | jhr | 5401 | //-------------------------------------------------------------------- |
766 : | [2019/06/04]:: | ||
767 : | + | ||
768 : | Various 64-bit porting changes to the **Windows** implementation of | ||
769 : | the **Basis Library** and runtime system: | ||
770 : | -- | ||
771 : | * Add a target-specific `Handle` structure to support the `HANDLE` type, | ||
772 : | which is a pointer-sized word value. | ||
773 : | * Changes to support the use of 64-bit file positions. | ||
774 : | * Replaced pairs of argumnents representing time values (seconds and | ||
775 : | microseconds) with a single 64-bit count of microseconds. | ||
776 : | -- | ||
777 : | + | ||
778 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
779 : | |||
780 : | //-------------------------------------------------------------------- | ||
781 : | [2019/06/04]:: | ||
782 : | + | ||
783 : | Implemented https://github.com/SMLFamily/BasisLibrary/wiki/2019-001-Correction-to-PRIM_IO[ | ||
784 : | Basis Library proposal 2019-001 (Correction to the PRIM_IO signature)]. | ||
785 : | jhr | 5405 | This proposal changes the return type of the `avail` function in a reader to |
786 : | be `Position.int option`, which is necessary to support large files. | ||
787 : | jhr | 5401 | + |
788 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
789 : | |||
790 : | //-------------------------------------------------------------------- | ||
791 : | [2019/06/03]:: | ||
792 : | + | ||
793 : | Added primop support (`PTR_TO_WORD` and `WORD_TO_PTR`) for the | ||
794 : | `c_pointer` type that was added in 110.89. These primops are | ||
795 : | exposed in the new `InlineT.Pointer` structure. We define a | ||
796 : | `PointerImp` structure that is used inside the Basis implementation | ||
797 : | and a `Unsafe.Pointer` structure that is visible to users. | ||
798 : | + | ||
799 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
800 : | |||
801 : | jhr | 5261 | //==================================================================== |
802 : | == Version 110.89; 2019/06/01 | ||
803 : | |||
804 : | jhr | 5211 | //-------------------------------------------------------------------- |
805 : | jhr | 5261 | [2019/06/01]:: |
806 : | + | ||
807 : | Switched the `Position` structure to be bound to `Int64` and updated | ||
808 : | the runtime system to use 64-bit integers for file offsets and | ||
809 : | time values (in nanoseconds). This change fixes bugs bugref:33[] | ||
810 : | (Overflow exception with inputLine function) and bugref:36[] (Can't | ||
811 : | open very large file). | ||
812 : | + | ||
813 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
814 : | |||
815 : | //-------------------------------------------------------------------- | ||
816 : | [2019/06/01]:: | ||
817 : | + | ||
818 : | Added abstract `c_pointer` type to the primitive types. This type | ||
819 : | will be used to represent runtime-system pointers (__e.g.__, the | ||
820 : | `HANDLE` values in the Windows implementation). | ||
821 : | + | ||
822 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
823 : | |||
824 : | //-------------------------------------------------------------------- | ||
825 : | [2019/05/31]:: | ||
826 : | + | ||
827 : | Removed makefiles and code for architectures and operating systems | ||
828 : | that are no longer supported (__e.g.__, the DEC Alpha and HPPA | ||
829 : | architectures). | ||
830 : | + | ||
831 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
832 : | |||
833 : | //-------------------------------------------------------------------- | ||
834 : | [2019/05/31]:: | ||
835 : | + | ||
836 : | Switched the `FixedInt` and `LargeWord` structure aliases to be 64-bits | ||
837 : | (__i.e.__, `FixedInt` is now bound to `Int64` and `LargeWord` is bound | ||
838 : | to `Word64`). | ||
839 : | + | ||
840 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
841 : | |||
842 : | //-------------------------------------------------------------------- | ||
843 : | jhr | 5228 | [2019/05/30]:: |
844 : | + | ||
845 : | We are now assuming that we have at least **C99** support (for | ||
846 : | practical purposes, this assumption is even true on Windows). | ||
847 : | With this assumption, the allocation of small objects in the | ||
848 : | runtime has been switched from macros to inline functions | ||
849 : | (see `runtime/include/ml-objects.h`). This change allows a | ||
850 : | graceful handling of 32-bit integers, which are heap allocated | ||
851 : | on 32-bit machines, but tagged on 64-bit machines. | ||
852 : | + | ||
853 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
854 : | |||
855 : | //-------------------------------------------------------------------- | ||
856 : | jhr | 5211 | [2019/05/29]:: |
857 : | + | ||
858 : | Fixed various bugs in the implementation of the `Word64` operations. | ||
859 : | The addition and subtraction operators were using arithmetic right | ||
860 : | shifts, instead of logical right shifts. Also, the translation | ||
861 : | of 64-bit shift operations was incorrect because of a typo in | ||
862 : | the variable names. | ||
863 : | + | ||
864 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
865 : | |||
866 : | //-------------------------------------------------------------------- | ||
867 : | [2019/05/27]:: | ||
868 : | + | ||
869 : | Created a simplified version of the `MLRiscGen` functor. This version | ||
870 : | of the functor, which is in the file `CodeGen/main/mlrisc-gen-fn.sml` | ||
871 : | does not include the memory disambiguation and GC types code. Since | ||
872 : | the old version (`CodeGen/main/mlriscGen.sml`) did not use these | ||
873 : | features by default, there should be no difference in the quality of | ||
874 : | the generated code. | ||
875 : | + | ||
876 : | The purpose of this change is to remove unused code that has 32-bit | ||
877 : | dependencies. | ||
878 : | + | ||
879 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
880 : | |||
881 : | //-------------------------------------------------------------------- | ||
882 : | jhr | 5212 | [2019/05/25]:: |
883 : | jhr | 5211 | + |
884 : | Added contraction for unsigned `REM` and `NEG` operations in | ||
885 : | `CPS/opt/contract-prim.sml`. | ||
886 : | + | ||
887 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
888 : | |||
889 : | jhr | 5170 | //==================================================================== |
890 : | == Version 110.88; 2019/05/15 | ||
891 : | jhr | 5149 | |
892 : | jhr | 5109 | //-------------------------------------------------------------------- |
893 : | jhr | 5170 | [2019/05/15]:: |
894 : | + | ||
895 : | jhr | 5174 | Moved the `compiler/DEVNOTES` directory to the `dev-notes` tree |
896 : | and renamed it `old-compiler-notes`. | ||
897 : | + | ||
898 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
899 : | |||
900 : | //-------------------------------------------------------------------- | ||
901 : | [2019/05/15]:: | ||
902 : | + | ||
903 : | jhr | 5170 | Added 64-bit versions of `NumFormat` and `NumScan`. We use the 32-bit |
904 : | version for numbers of 32-bits or less and the 64-bit versions for | ||
905 : | numbers with up to 64 bits. Thus, on 32-bit machines, the default | ||
906 : | `int` and `word` types use `NumFormat32` and `NumScan32`, while on | ||
907 : | 64-bit machines they use `NumFormat64` and `NumScan64`. This change | ||
908 : | also required splitting out some common code into a `ScanUtil` | ||
909 : | structure and also splitting out the scanning of real numbers into | ||
910 : | the `ScanReal` structure (formatting of reals was already in its own | ||
911 : | structure). | ||
912 : | + | ||
913 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
914 : | |||
915 : | //-------------------------------------------------------------------- | ||
916 : | [2019/05/15]:: | ||
917 : | + | ||
918 : | Reimplemented the 64-bit `int` and `word` types to put them on a | ||
919 : | (mostly) equal footing with the other precisions. In this new implementation, | ||
920 : | the basic types `int64` and `word64` are now `PRIMITIVE` (instead | ||
921 : | of being `ABSTRACT` type represented by pairs of boxed 32-bit words). | ||
922 : | Arithmetic and comparison operations on these types are represented as | ||
923 : | primops and are preserved as such up to just before closure conversion. | ||
924 : | At that point, the new `Num64Cnv` structure (`compiler/CPS/opt/numcnv.sml`) | ||
925 : | is used to expand 64-bit operations and constants into 32-bit operations. | ||
926 : | Most of the 64-bit primops are inline expanded, but multiplication and | ||
927 : | division operations are converted to calls to library code from the | ||
928 : | `CoreInt64` and `CoreWord64` modules (`system/smlnj/init`). | ||
929 : | + | ||
930 : | Because the type are primitive, we were able to change the runtime | ||
931 : | representation to use packed records (`RK_RAWBLOCK`) to represent | ||
932 : | them, which saves space and should also help with performance. | ||
933 : | + | ||
934 : | See the `dev-notes/num64.md` file for more details about the | ||
935 : | implementation. | ||
936 : | + | ||
937 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
938 : | |||
939 : | //-------------------------------------------------------------------- | ||
940 : | jhr | 5149 | [2019/05/09]:: |
941 : | + | ||
942 : | Reorganized the Basis Library source files (`system/Basis`) to isolate | ||
943 : | dependences on target word size. | ||
944 : | + | ||
945 : | In the `Basis/Implementation` directory, I created subdirectories | ||
946 : | (__e.g.__, `Target32Bit`) to hold implementations that are specific | ||
947 : | to the target. These directories include a `bind-structs.sml` file | ||
948 : | that replaces the many `bind-*.sml` files in `Basis/Implementation`. | ||
949 : | + | ||
950 : | In the `Basis/Exports` directory, I replaced the many individual | ||
951 : | files (each with a single module renaming) with `bind-common.sml` | ||
952 : | (for target-independent bindings) and a target-specific file | ||
953 : | (either `bind-target-32-bit.sml` or `bind-target-64-bit.sml`). | ||
954 : | + | ||
955 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
956 : | |||
957 : | //-------------------------------------------------------------------- | ||
958 : | jhr | 5109 | [2019/05/05]:: |
959 : | + | ||
960 : | Some of the CPS optimization modules (`Expand` and `EtaSplit` were | ||
961 : | written as functors over the machine spec, when, in fact, they never | ||
962 : | reference their functor argument. Therefore, they have been converted | ||
963 : | to structures. | ||
964 : | + | ||
965 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
966 : | |||
967 : | //-------------------------------------------------------------------- | ||
968 : | [2019/05/04]:: | ||
969 : | + | ||
970 : | We now use the `InlineT.identity` primop for `Fn.id`, so the compiler | ||
971 : | can optimize it. | ||
972 : | + | ||
973 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
974 : | |||
975 : | //-------------------------------------------------------------------- | ||
976 : | [2019/05/03]:: | ||
977 : | + | ||
978 : | Fixed pretty-printing regression in 110.87; value of `char` type | ||
979 : | were missing their enclosing quotes. | ||
980 : | + | ||
981 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
982 : | |||
983 : | jhr | 5031 | //==================================================================== |
984 : | jhr | 5075 | == Version 110.87; 2019/05/03 |
985 : | |||
986 : | //-------------------------------------------------------------------- | ||
987 : | [2019/05/03]:: | ||
988 : | + | ||
989 : | Made the `Char.chr` operator inline (a primop was added to support | ||
990 : | this change in 110.86). | ||
991 : | + | ||
992 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
993 : | |||
994 : | //-------------------------------------------------------------------- | ||
995 : | [2019/05/03]:: | ||
996 : | + | ||
997 : | Major renaming of the primitive operators in the `Inline` structure | ||
998 : | (as described in `dev-notes/primop-list.md`). Also cleaned up the | ||
999 : | **Basis Library** implementation to remove most (but not all) | ||
1000 : | 32-bit dependencies. | ||
1001 : | + | ||
1002 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1003 : | |||
1004 : | //-------------------------------------------------------------------- | ||
1005 : | [2019/05/03]:: | ||
1006 : | + | ||
1007 : | Added cases to the top-level pretty printer to handle the new basic | ||
1008 : | types that were added in 110.86 (*e.g.*, `word8vector` and `chararray`). | ||
1009 : | Also changed the way that primitive types are handled to use a | ||
1010 : | table keyed by tycons, instead of a sequence of nested conditionals. | ||
1011 : | + | ||
1012 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1013 : | |||
1014 : | //==================================================================== | ||
1015 : | jhr | 5032 | == Version 110.86; 2019/05/02 |
1016 : | jhr | 5031 | |
1017 : | jhr | 4972 | //-------------------------------------------------------------------- |
1018 : | jhr | 5029 | [2019/05/01]:: |
1019 : | + | ||
1020 : | jhr | 5031 | Added `word8vector` and `chararray` to the primitive types that |
1021 : | the compiler knows about. These will be used in the rewriting | ||
1022 : | of the `InlineT` structure. | ||
1023 : | + | ||
1024 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1025 : | |||
1026 : | //-------------------------------------------------------------------- | ||
1027 : | [2019/05/01]:: | ||
1028 : | + | ||
1029 : | jhr | 5029 | Replaced the `Primop.primop` constructors `NUMSUBSCRIPT` and `NUMUPDATE` |
1030 : | with | ||
1031 : | + | ||
1032 : | ````sml | ||
1033 : | | NUMSUBSCRIPT of numkind | ||
1034 : | | NUMSUBSCRIPTV of numkind | ||
1035 : | | NUMUPDATE of numkind | ||
1036 : | | INLNUMSUBSCRIPT of numkind | ||
1037 : | | INLNUMSUBSCRIPTV of numkind | ||
1038 : | | INLNUMUPDATE of numkind | ||
1039 : | ```` | ||
1040 : | + | ||
1041 : | This design matches the naming conventions for polymorphic subscripting | ||
1042 : | and updating. | ||
1043 : | + | ||
1044 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1045 : | |||
1046 : | //-------------------------------------------------------------------- | ||
1047 : | [2019/05/01]:: | ||
1048 : | + | ||
1049 : | Added `Primop.INLCHR` to implement `Char.chr` as an inline function. | ||
1050 : | This change also required moving the definition of the `Chr` | ||
1051 : | exception to the `Core` module so that it is accessible to the | ||
1052 : | jhr | 5032 | translate phase. The inline version of Char.chr will be enabled |
1053 : | in the 110.87 release (we need the internal primop before we can | ||
1054 : | use it). | ||
1055 : | jhr | 5029 | + |
1056 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1057 : | |||
1058 : | //-------------------------------------------------------------------- | ||
1059 : | [2019/05/01]:: | ||
1060 : | + | ||
1061 : | Major overhaul of the representation of primitive operators (both in | ||
1062 : | the `Primop` and `CPS.P` structures). The primitive arithmetic and | ||
1063 : | comparison operations are now defined in the `ArithOps` structure | ||
1064 : | (`ElabData/prim/arithops.sml`). There are three datatypes defined | ||
1065 : | in this module | ||
1066 : | + | ||
1067 : | -- | ||
1068 : | * arithop -- integer arithmetic operations that may raise overflow | ||
1069 : | * pureop -- arithmetic operations that are pure | ||
1070 : | * cmpop -- comparison operations | ||
1071 : | -- | ||
1072 : | + | ||
1073 : | These types are used in both the `Primop` and `CPS.P` modules, | ||
1074 : | which makes the translation between representations more direct. | ||
1075 : | + | ||
1076 : | Some details: | ||
1077 : | + | ||
1078 : | -- | ||
1079 : | * inline division and modulo operations were added to the | ||
1080 : | `Primop.primop` datatype; the expansion of these in | ||
1081 : | the `TransPrim` module (`FLINT/trans/transprim.sml`) | ||
1082 : | adds explicit checks for division by zero. | ||
1083 : | * the `FSGN` operator was added to the `Primop.primop` datatype, | ||
1084 : | since the new `cmpop` datatype does not include it (the | ||
1085 : | CPS IR already had FSGN as a separate `branch` constructor). | ||
1086 : | * unsigned comparison operations are now represented by using | ||
1087 : | the `UINT` `numkind`, which is consistent with how they | ||
1088 : | are represented in `CPS`. | ||
1089 : | * Renamed the primop `ROUND` to `REAL_TO_ROUND`. | ||
1090 : | * the encodings for operators were revised in the pickler, resulting | ||
1091 : | in a more compact use of the numeric codes. | ||
1092 : | -- | ||
1093 : | + | ||
1094 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1095 : | |||
1096 : | //-------------------------------------------------------------------- | ||
1097 : | jhr | 5006 | [2019/04/28]:: |
1098 : | + | ||
1099 : | jhr | 5016 | Removed unused record kind constructors (`RK_SPILL`, `RK_EXN`, and |
1100 : | `RK_BLOCK`) from `CPS.record_kind` datatype. Also renamed `RK_I32BLOCK` | ||
1101 : | to `RK_RAWBLOCK` and `RK_FBLOCK` to `RK_RAW64BLOCK`. Various other | ||
1102 : | renamings to remove 32-bit assumptions. | ||
1103 : | + | ||
1104 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1105 : | |||
1106 : | //-------------------------------------------------------------------- | ||
1107 : | [2019/04/28]:: | ||
1108 : | + | ||
1109 : | jhr | 5011 | Renamed `DTAG_raw32` to `DTAG_raw`, since the semantics on 64-bit systems |
1110 : | will be to require word-size aligned raw data. Also renamed `ML_AllocRaw32` | ||
1111 : | to `ML_AllocRaw` and `ML_ShrinkRaw32` to `ML_ShrinkRaw` for similar reasons. | ||
1112 : | + | ||
1113 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1114 : | |||
1115 : | //-------------------------------------------------------------------- | ||
1116 : | [2019/04/28]:: | ||
1117 : | + | ||
1118 : | jhr | 5008 | Removed unused flags from the `Control` structure; most of these came |
1119 : | from `Control.CG`, where roughly 20 out of 60 flags were no longer used. | ||
1120 : | jhr | 5006 | + |
1121 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1122 : | |||
1123 : | //-------------------------------------------------------------------- | ||
1124 : | jhr | 4998 | [2019/04/27]:: |
1125 : | + | ||
1126 : | jhr | 5003 | Split the contraction of primitive operators out of the `Contract` |
1127 : | structure into its own `ContractPrim` structure. | ||
1128 : | + | ||
1129 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1130 : | |||
1131 : | //-------------------------------------------------------------------- | ||
1132 : | [2019/04/27]:: | ||
1133 : | + | ||
1134 : | jhr | 4998 | Split the translation of primops to PLambda out into its own file |
1135 : | (`compiler/FLINT/trans/transprim.sml`). | ||
1136 : | + | ||
1137 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1138 : | |||
1139 : | //-------------------------------------------------------------------- | ||
1140 : | [2019/04/27]:: | ||
1141 : | + | ||
1142 : | Fixed regression: `Word32.toInt 0wx8002DE32;` would return `187954` instead | ||
1143 : | of raising `Overflow`. The problem was a mistake in the way that the overflow | ||
1144 : | trap was being generated in `MLRiscGen`. | ||
1145 : | + | ||
1146 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1147 : | |||
1148 : | //-------------------------------------------------------------------- | ||
1149 : | jhr | 4987 | [2019/04/26]:: |
1150 : | + | ||
1151 : | Some minor primop cleanup. | ||
1152 : | + | ||
1153 : | -- | ||
1154 : | * Changed the types of `Primop.ROUND` and `Primop.REAL` | ||
1155 : | to take bitwidths, instead of numkinds, since the kinds are always the same. | ||
1156 : | Also, the fields are now called `from` and `to` (instead of `fromkind` and | ||
1157 : | `tokind`) to be consistent with other conversion primops. | ||
1158 : | * Renamed `ABS` to `FABS`, since it is only used on floating-point numbers. | ||
1159 : | * Renamed the CPS primitive operator `ROUND` to `REAL_TO_INT` and the operator | ||
1160 : | `REAL` to `INT_TO_REAL`. | ||
1161 : | jhr | 4998 | * Renamed the `Primop.REAL` to `Primop.INT_TO_REAL` so that it is not confused |
1162 : | with the other constructors named `REAL`. | ||
1163 : | jhr | 4987 | -- |
1164 : | + | ||
1165 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1166 : | |||
1167 : | //-------------------------------------------------------------------- | ||
1168 : | jhr | 4980 | [2019/04/23]:: |
1169 : | + | ||
1170 : | Improvements to the core 64-bit int and word modules in `system/smlnj/init`. | ||
1171 : | jhr | 4984 | Replaced `Int64.+`, `Int64.-`, `Word64.+`, and `Word64.*` with versions |
1172 : | from *Hacker's Delight* that use fewer conditional branches. Also | ||
1173 : | replaced the relational operators (`<`, `<=`, etc) with more direct | ||
1174 : | implementations. | ||
1175 : | jhr | 4980 | + |
1176 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1177 : | |||
1178 : | //-------------------------------------------------------------------- | ||
1179 : | jhr | 4972 | [2019/04/21]:: |
1180 : | + | ||
1181 : | jhr | 5261 | Fix for bug bugref:213[] (`Int32.div` raises `Div` instead of `Overflow` |
1182 : | jhr | 4974 | when dividing `minInt` by `~1`). Since the compiler generates an |
1183 : | explicit test for division by zero, we know that the only arithmetic | ||
1184 : | traps must be caused by other operations. Therefore, we can just | ||
1185 : | map any arithmetic trap to `Overflow`. | ||
1186 : | + | ||
1187 : | jhr | 4977 | Also removed the old SPARC assembly code for multiplication and |
1188 : | division. The code generator always uses the native hardware | ||
1189 : | instructions, so the assembly code is not needed. | ||
1190 : | + | ||
1191 : | jhr | 4974 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1192 : | |||
1193 : | //-------------------------------------------------------------------- | ||
1194 : | [2019/04/21]:: | ||
1195 : | + | ||
1196 : | jhr | 4972 | Yet another attempt to get the implementation of `use` in the REPL |
1197 : | working in a sensible way. | ||
1198 : | + | ||
1199 : | With these changes, `use` should behave as follows. | ||
1200 : | If an invocation of `use` encounters | ||
1201 : | a compilation error (either in the initial file or in a nested | ||
1202 : | invocation of `use`), then the compiler error message will be | ||
1203 : | printed and the call to `use` will immediately return `()`. | ||
1204 : | If an invocation of `use` raises an exception during execution | ||
1205 : | of the compiled code (either in the initial file or in a nested | ||
1206 : | invocation of `use`), then the exception will be reported at | ||
1207 : | the top-level. Any change to the global state or environment | ||
1208 : | that occurs before an error is encountered, will **not** be rolled | ||
1209 : | back. | ||
1210 : | + | ||
1211 : | Files specified as command-line arguments to the **sml** command | ||
1212 : | will be treated as if `use` was invoked on them. If there is an | ||
1213 : | error, then the error will be reported and the **sml** command | ||
1214 : | will terminate with a non-zero exit status (at least on Unix). | ||
1215 : | + | ||
1216 : | This change fixes bugs bugref:193[], bugref:217[], and bugref:219[]. | ||
1217 : | There is a connection between this change and bugref:183[], which | ||
1218 : | was fixed in Version 110.82. | ||
1219 : | + | ||
1220 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1221 : | jhr | 4969 | |
1222 : | jhr | 4968 | //-------------------------------------------------------------------- |
1223 : | [2019/04/21]:: | ||
1224 : | + | ||
1225 : | jhr | 4969 | Change to the CPS primops: moved the `F_SGN` operator (which is unary) |
1226 : | jhr | 4980 | from the `fcmp` datatype to the `branch` datatype (and renamed it `FSGN`). |
1227 : | jhr | 4969 | + |
1228 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1229 : | |||
1230 : | //-------------------------------------------------------------------- | ||
1231 : | [2019/04/21]:: | ||
1232 : | + | ||
1233 : | jhr | 4968 | Finished conversion of the CPS IR to a form that is compatible with |
1234 : | ASDL. Basically, this involved converting the datatype constructor | ||
1235 : | names to upper-case identifiers. | ||
1236 : | + | ||
1237 : | jhr | 4980 | These changes are a step in the plan to eventually switch to an LLVM-based |
1238 : | code generator that will be given pickled CPS code as its input. | ||
1239 : | + | ||
1240 : | jhr | 4968 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1241 : | |||
1242 : | //-------------------------------------------------------------------- | ||
1243 : | jhr | 4954 | [2019/04/08]:: |
1244 : | + | ||
1245 : | Starting to migrate the CPS IR toward the ASDL version. Changed the | ||
1246 : | names of the `CPS.P.arith` and `CPS.P.cmpop` constructors to be upper-case | ||
1247 : | alpha IDs (many of them were symbolic identifiers). Also split out the | ||
1248 : | various utility functions into the new `CPSUtil` module (`CPS/cps/cps-util.sml`). | ||
1249 : | Lastly, moved the `literals.sml` file from `FLINT/main` to `CPS/main` (where | ||
1250 : | it belongs). | ||
1251 : | + | ||
1252 : | jhr | 4968 | Note that the `CPS.P.arithop` datatype is now identical to the `Primop.arithop` |
1253 : | jhr | 4954 | datatype |
1254 : | + | ||
1255 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1256 : | |||
1257 : | jhr | 4808 | //-------------------------------------------------------------------- |
1258 : | jhr | 4950 | [2019/04/07]:: |
1259 : | + | ||
1260 : | Reorganized the backend of the compiler by moving the CPS-related | ||
1261 : | code into its own directory tree (`Compiler/CPS`) and replacing the | ||
1262 : | `FLINTComp` functor with the `FLINTOpt` structure and the `CPSCompFn` | ||
1263 : | functor. The conversion from FLINT to CPS is part of the `CPSCompFn` | ||
1264 : | functor, which takes the program representation all the way from | ||
1265 : | FLINT to machine code segments. | ||
1266 : | + | ||
1267 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1268 : | |||
1269 : | //==================================================================== | ||
1270 : | jhr | 4956 | == Version 110.85; 2018/12/21 |
1271 : | jhr | 4950 | |
1272 : | //-------------------------------------------------------------------- | ||
1273 : | jhr | 4904 | [2018/12/21]:: |
1274 : | + | ||
1275 : | jhr | 4908 | Modified `config/install.sh` to look for a pre-Mojave SDK when trying |
1276 : | to install on macOS 10.14 Mojave. | ||
1277 : | + | ||
1278 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1279 : | |||
1280 : | //-------------------------------------------------------------------- | ||
1281 : | [2018/12/21]:: | ||
1282 : | + | ||
1283 : | jhr | 4904 | Updated `runtime/objs/cygwin.def` so that the runtime system will build |
1284 : | on 32-bit Cygwin. Also updated installation script to suggest using | ||
1285 : | the 32-bit version of Cygwin when a user tries to install it on Cygwin64. | ||
1286 : | + | ||
1287 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1288 : | |||
1289 : | //-------------------------------------------------------------------- | ||
1290 : | jhr | 4897 | [2018/11/10]:: |
1291 : | + | ||
1292 : | **Xcode** 10.1, which is Apple's development environment for **macOS 10.14 | ||
1293 : | Mojave**, does not include the libraries needed to build 32-bit executables, | ||
1294 : | such as the SML/NJ runtime, although 32-bit programs will still run. | ||
1295 : | + | ||
1296 : | To support building on Mojave, I added a new Makefile (`mk.x86-darwin18`) | ||
1297 : | for the runtime system and modified the `config/install.sh` | ||
1298 : | script to use this makefile when necessary. This new makefile expects | ||
1299 : | that the `MacOSX10.13.sdk` directory from **Xcode** 9 has been | ||
1300 : | copied into the **Xcode** 10 SDKs directory. Note that updating **Xcode** | ||
1301 : | from the AppStore will likely remove the 10.13 SDK, so you should keep | ||
1302 : | a copy in a safe place. | ||
1303 : | + | ||
1304 : | The **Xcode** SDKs live in `Platforms/MacOSX.platform/Developer/SDKs` | ||
1305 : | under the `Developer` directory. One can determine the path to the | ||
1306 : | current developer directory using the command | ||
1307 : | + | ||
1308 : | [source,shell] | ||
1309 : | -------------- | ||
1310 : | % xcode-select -p | ||
1311 : | -------------- | ||
1312 : | + | ||
1313 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1314 : | |||
1315 : | //-------------------------------------------------------------------- | ||
1316 : | jhr | 4887 | [2018/10/10]:: |
1317 : | + | ||
1318 : | Removed several unsupported primitive operators from the compiler. | ||
1319 : | In the CPS IR, these were `free`, `acclink`, `setpseudo`, `setmark`, and | ||
1320 : | `getpseudo`. The pseudo-register operations were not supported in the | ||
1321 : | code generator, while the others were no-ops. The corresponding | ||
1322 : | operators `GETPSEUDO`, `SETPSEUDO`, `SETMARK`, and `DISPOSE` were removed | ||
1323 : | from `ElabData/prim/primop.sml` and their bindings were removed from | ||
1324 : | `Semant/prim/primop-bindings.sml` and the `InlineT` and `Unsafe` | ||
1325 : | structures. | ||
1326 : | + | ||
1327 : | The `AllocProf` module in the compiler was also disabled, since it | ||
1328 : | relied on the pseudo registers for recording profile information at | ||
1329 : | runtime. Furthermore, uses of the `acclink` primitive operation in | ||
1330 : | `FLINT/cps/closure.sml` when static profiling is enabled were removed. | ||
1331 : | + | ||
1332 : | These changes were committed as revision 4886. | ||
1333 : | + | ||
1334 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1335 : | |||
1336 : | //-------------------------------------------------------------------- | ||
1337 : | jhr | 4878 | [2018/10/08]:: |
1338 : | + | ||
1339 : | Fix for bug bugref:216[] (run-time system fatal error with large top-level | ||
1340 : | value). The problem was in the code for building literals. | ||
1341 : | + | ||
1342 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1343 : | |||
1344 : | //-------------------------------------------------------------------- | ||
1345 : | jhr | 4843 | [2018/09/23]:: |
1346 : | + | ||
1347 : | Change CPS operators for wrapping/unwrapping integer and float values to | ||
1348 : | be word-size flexible. We now use a single `wrap` (and `unwrap`) operator | ||
1349 : | that is parameterized by a `numkind` value. We also changed the `wrap`/`unwrap` | ||
1350 : | operators to `box`/`unbox`. The mapping from old operators to new ones | ||
1351 : | jhr | 4878 | is as follows: |
1352 : | jhr | 4843 | + |
1353 : | jhr | 4878 | [%autowidth,cols=">10,^1,<25"] |
1354 : | |=== | ||
1355 : | |||
1356 : | | `wrap` | => | `box` | ||
1357 : | |||
1358 : | | `unwrap` | => | `unbox` | ||
1359 : | |||
1360 : | | `iwrap` | => | `wrap(INT defaultIntSz)` | ||
1361 : | |||
1362 : | | `iunwrap` | => | `unwrap(INT defaultIntSz)` | ||
1363 : | |||
1364 : | | `i32wrap` | => | `wrap(INT 32)` | ||
1365 : | |||
1366 : | | `i32unwrap` | => | `unwrap(INT 32)` | ||
1367 : | |||
1368 : | | `fwrap` | => | `wrap(FLOAT 64)` | ||
1369 : | |||
1370 : | | `funwrap` | => | `unwrap(FLOAT 64)` | ||
1371 : | |||
1372 : | |=== | ||
1373 : | + | ||
1374 : | jhr | 4843 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1375 : | |||
1376 : | //-------------------------------------------------------------------- | ||
1377 : | dbm | 4820 | [2018/09/13]:: |
1378 : | + | ||
1379 : | jhr | 4901 | Further cleanup for 64BIT in function `atomeq` in `PEqual`. |
1380 : | (`base/compiler/FLINT/trans/pequal.sml`). | ||
1381 : | Added `numKind`, `intEqTy`, and `uintEqTy` functions. | ||
1382 : | The `numKind` function should be extended once `int64` and `word64` are treated as primitive | ||
1383 : | types in the compiler. | ||
1384 : | jhr | 4843 | + |
1385 : | owner:cs.uchicago.edu/~dbm[Dave MacQueen] | ||
1386 : | dbm | 4820 | |
1387 : | //-------------------------------------------------------------------- | ||
1388 : | jhr | 4808 | [2018/09/12]:: |
1389 : | + | ||
1390 : | jhr | 4901 | Fixed 64BIT issue in module `MatchComp` |
1391 : | (`base/compiler/FLINT/trans/matchcomp.sml`). | ||
1392 : | Added `int64Ty` and `word64Ty` cases to function `numCon`. | ||
1393 : | dbm | 4816 | + |
1394 : | owner:cs.uchicago.edu/~dbm[Dave MacQueen] | ||
1395 : | |||
1396 : | //-------------------------------------------------------------------- | ||
1397 : | [2018/09/12]:: | ||
1398 : | + | ||
1399 : | jhr | 4901 | Fixed 64BIT issue in module `Equal` |
1400 : | (`base/compiler/FLINT/reps/equal.sml`). | ||
1401 : | Exports just one function: `equal_branch`, which is called once in | ||
1402 : | `reps/wrapping.sml` to type-specialize branches on calls to `POLYEQUAL`. | ||
1403 : | dbm | 4815 | + |
1404 : | dbm | 4816 | owner:cs.uchicago.edu/~dbm[Dave MacQueen] |
1405 : | dbm | 4815 | |
1406 : | //-------------------------------------------------------------------- | ||
1407 : | [2018/09/12]:: | ||
1408 : | + | ||
1409 : | jhr | 4809 | The CPS optimizer had a mechanism for checking the CPS against the FLINT |
1410 : | types, which required maintaining a mapping from lvars to their FLINT | ||
1411 : | types. This code has long since bit-rotted and cannot even handle a | ||
1412 : | simple expression like `1+2`. Therefore, I've removed the mapping (a hash | ||
1413 : | table) from the CPS optimizer and the vestigial code that modified it | ||
1414 : | in the various CPS optimization passes. | ||
1415 : | + | ||
1416 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1417 : | |||
1418 : | //-------------------------------------------------------------------- | ||
1419 : | [2018/09/12]:: | ||
1420 : | + | ||
1421 : | jhr | 4808 | Modified the `InfCnv` (now named `IntInfCnv`) structure to remove |
1422 : | 32-bit dependencies. | ||
1423 : | + | ||
1424 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1425 : | |||
1426 : | //-------------------------------------------------------------------- | ||
1427 : | [2018/09/11]:: | ||
1428 : | + | ||
1429 : | jhr | 4901 | Modified `Pequal` (in `base/compiler/FLINT/trans/pequal.sml`) and |
1430 : | `Translate` (in `base/compiler/FLINT/trans/translate.sml`) to remove | ||
1431 : | dbm | 4812 | 32-bit dependencies. though further changes will be required to |
1432 : | jhr | 4901 | properly handle `int64` and `word64` types when `defaultIntSz` = 64. |
1433 : | dbm | 4812 | + |
1434 : | owner:cs.uchicago.edu/~dbm[Dave MacQueen] | ||
1435 : | |||
1436 : | //-------------------------------------------------------------------- | ||
1437 : | [2018/09/11]:: | ||
1438 : | + | ||
1439 : | jhr | 4808 | Reimplemented the `Switch` module (int `base/compiler/FLINT/cps`). The |
1440 : | new implementation follows the same basic design as before, but the code | ||
1441 : | is better organized and documented, and it now uses the concrete `CPS` | ||
1442 : | representations, instead of being parameterized over an abstraction of | ||
1443 : | them. It also now uses binary search for boxed (e.g., `Int32.int`) | ||
1444 : | switches. | ||
1445 : | + | ||
1446 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1447 : | |||
1448 : | jhr | 4716 | //==================================================================== |
1449 : | == Version 110.84; 2018/09/03 | ||
1450 : | |||
1451 : | jhr | 4672 | //-------------------------------------------------------------------- |
1452 : | jhr | 4743 | [2018/09/03]:: |
1453 : | + | ||
1454 : | Reimplemented the array/vector-slice modules to use a (base, start, length) | ||
1455 : | representation (as does Substring in system/smlnj/init/substring.sml). Also | ||
1456 : | fixed a bug in the slice findi functions, where the index being passed to the | ||
1457 : | predicate function was not adjusted to be slice-relative. | ||
1458 : | + | ||
1459 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1460 : | |||
1461 : | //-------------------------------------------------------------------- | ||
1462 : | jhr | 4716 | [2018/09/02]:: |
1463 : | + | ||
1464 : | Implemented https://github.com/SMLFamily/BasisLibrary/wiki/2018-002-Additional-slice-operations[ | ||
1465 : | Basis Library proposal 2018-002 (Additional slice operations)]. | ||
1466 : | + | ||
1467 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1468 : | |||
1469 : | //-------------------------------------------------------------------- | ||
1470 : | [2018/09/02]:: | ||
1471 : | + | ||
1472 : | Improved implementation of `CharVectorSlice.map` and `CharVectorSlice.mapi` | ||
1473 : | to not build intermediate list of results. | ||
1474 : | + | ||
1475 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1476 : | |||
1477 : | //-------------------------------------------------------------------- | ||
1478 : | jhr | 4700 | [2018/08/28]:: |
1479 : | + | ||
1480 : | A beta-release of ASDL library and *asdlgen* tool have been added to | ||
1481 : | jhr | 4716 | the system. This version of the tool implements SML support, but the |
1482 : | C++ support is not complete. There is a CM tool for ASDL, which | ||
1483 : | recognizes the `.asdl` file suffix. | ||
1484 : | jhr | 4700 | + |
1485 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1486 : | |||
1487 : | //-------------------------------------------------------------------- | ||
1488 : | [2018/08/28]:: | ||
1489 : | + | ||
1490 : | Two changes to the installer (`base/base/system/smlnj/installer`): | ||
1491 : | jhr | 4765 | + |
1492 : | jhr | 4700 | -- |
1493 : | 1. The build scripts for programs are now named `build.sh` (instead of | ||
1494 : | `build`) on Unix systems. | ||
1495 : | 2. The *config* action has been added to support module configuration. | ||
1496 : | -- | ||
1497 : | + | ||
1498 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1499 : | |||
1500 : | //-------------------------------------------------------------------- | ||
1501 : | [2018/08/27]:: | ||
1502 : | + | ||
1503 : | Added `RENAME` extension style to CM tool support. This extension | ||
1504 : | style allows arbitrary file names to be generated from the base name. | ||
1505 : | + | ||
1506 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1507 : | |||
1508 : | //-------------------------------------------------------------------- | ||
1509 : | jhr | 4683 | [2018/08/19]:: |
1510 : | + | ||
1511 : | Fixed a bug in the implementation of monomorphic buffers: the functions | ||
1512 : | `CharBuffer.add1` and `Word8Buffer.add1` had an incorrect length | ||
1513 : | test. | ||
1514 : | + | ||
1515 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1516 : | |||
1517 : | //-------------------------------------------------------------------- | ||
1518 : | jhr | 4672 | [2018/06/15]:: |
1519 : | + | ||
1520 : | Fixed a compiler bug (`arg ty lists wrong length`) in `unifyTy` that | ||
1521 : | could occur when one of the type constructors is the `ERRORtyc`. | ||
1522 : | jhr | 4716 | This bug occurs because the `ERRORtyc` is equal to any other type |
1523 : | jhr | 4672 | constructor, which (incorrectly) implies that the number of type |
1524 : | arguments should be equal. | ||
1525 : | + | ||
1526 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1527 : | |||
1528 : | jhr | 4639 | //==================================================================== |
1529 : | == Version 110.83; 2018/06/01 | ||
1530 : | |||
1531 : | jhr | 4501 | //-------------------------------------------------------------------- |
1532 : | jhr | 4624 | [2018/05/29]:: |
1533 : | + | ||
1534 : | jhr | 4639 | Fixed bugref:206[] (Parsing of explicit type variables and val rec |
1535 : | is broken). This bug was also bug number 1261 in the old bugs list. | ||
1536 : | jhr | 4624 | + |
1537 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1538 : | |||
1539 : | //-------------------------------------------------------------------- | ||
1540 : | dbm | 4628 | [2018/05/29]:: |
1541 : | + | ||
1542 : | jhr | 4639 | Fixed minor bug in Date.toString (missing leading "0" for day of month). |
1543 : | This issue was bug number 1444 in the old bugs list. | ||
1544 : | dbm | 4628 | + |
1545 : | jhr | 4639 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1546 : | |||
1547 : | //-------------------------------------------------------------------- | ||
1548 : | [2018/05/29]:: | ||
1549 : | + | ||
1550 : | Cleaned up match compiler code (`FLINT/trans/matchcomp.sml`) and added | ||
1551 : | typing and function comments. Added debugging and printing | ||
1552 : | infrastructure, including new `FLINT/trans/mcprint.sml` file, and new | ||
1553 : | `Control.MC.debugging` flag. | ||
1554 : | + | ||
1555 : | dbm | 4628 | owner:cs.uchicago.edu/~dbm[Dave MacQueen] |
1556 : | |||
1557 : | //-------------------------------------------------------------------- | ||
1558 : | jhr | 4639 | [2018/05/29]:: |
1559 : | + | ||
1560 : | Fixed parser to allow parentheses around `val rec` patterns. | ||
1561 : | + | ||
1562 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1563 : | |||
1564 : | //-------------------------------------------------------------------- | ||
1565 : | jhr | 4619 | [2018/05/28]:: |
1566 : | + | ||
1567 : | Fixed the scanner to produce the correct error message for bad escape | ||
1568 : | sequences in string literals. | ||
1569 : | + | ||
1570 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1571 : | |||
1572 : | //-------------------------------------------------------------------- | ||
1573 : | jhr | 4614 | [2018/05/26]:: |
1574 : | + | ||
1575 : | jhr | 4639 | Fixed old bug number 1383: `Char.toCString #"\000"` returned `"\\0"`, |
1576 : | jhr | 4619 | instead of `"\\000"`, which caused `String.toCString` to produce invalid |
1577 : | results. | ||
1578 : | jhr | 4614 | + |
1579 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1580 : | |||
1581 : | //-------------------------------------------------------------------- | ||
1582 : | jhr | 4610 | [2018/05/19]:: |
1583 : | + | ||
1584 : | Fix for bug bugref:201[] (The AMD64.cm library is missing). | ||
1585 : | + | ||
1586 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1587 : | |||
1588 : | //-------------------------------------------------------------------- | ||
1589 : | jhr | 4607 | [2018/05/18]:: |
1590 : | + | ||
1591 : | Added `MONO_BUFFER` signature, with instances `CharBuffer` and `Word8Buffer`, | ||
1592 : | to Basis implementation | ||
1593 : | (https://github.com/SMLFamily/BasisLibrary/wiki/2018-001-Addition-of-monomorphic-buffers[ | ||
1594 : | Basis Library Proposal 2018-001]). | ||
1595 : | + | ||
1596 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1597 : | |||
1598 : | //-------------------------------------------------------------------- | ||
1599 : | jhr | 4601 | [2018/05/16]:: |
1600 : | + | ||
1601 : | jhr | 4603 | Fix a bug where "`0w`" was being accepted as a prefix for a hexidecimal |
1602 : | word value in `Word.fromString`/`scan` (ignoring case, only "`0x`" | ||
1603 : | and "`0wx`" are valid prefixes). This change fixes bug number 1375 | ||
1604 : | jhr | 4639 | from the old bugs list. |
1605 : | jhr | 4601 | + |
1606 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1607 : | jhr | 4601 | |
1608 : | //-------------------------------------------------------------------- | ||
1609 : | jhr | 4596 | [2018/05/13]:: |
1610 : | + | ||
1611 : | Fixed a bug in the parsing of bindings involving the `op` keyword. | ||
1612 : | The parser was more restrictive than the definition. This change | ||
1613 : | jhr | 4639 | fixes bug number 1370 from the old bugs list. |
1614 : | jhr | 4596 | + |
1615 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1616 : | jhr | 4596 | |
1617 : | //-------------------------------------------------------------------- | ||
1618 : | jhr | 4585 | [2018/05/12]:: |
1619 : | + | ||
1620 : | jhr | 4765 | The lexer gave an unmatched close comment error on "++*)++", when it |
1621 : | should have scanned it as the tokens "++*++" "++)++". This change | ||
1622 : | jhr | 4639 | fixes bug number 330 in the old bugs list. |
1623 : | jhr | 4585 | + |
1624 : | **Note**: there is some ambiguity as to what the correct behavior | ||
1625 : | jhr | 4639 | should be here. The __Definition of Standard ML__ (1997) only says that |
1626 : | jhr | 4585 | unmatched __open__ comments should be signalled as errors, but the |
1627 : | jhr | 4639 | __Commentary on the Definition of Standard ML__ (1991) says otherwise in |
1628 : | jhr | 4585 | Appendix D. **SML/NJ** started signalling an error in version 0.71, |
1629 : | jhr | 4607 | but we choose to revert to accepting this sequence, to match |
1630 : | the 1997 Definition (and the behavior of other systems). | ||
1631 : | jhr | 4585 | + |
1632 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1633 : | jhr | 4585 | |
1634 : | //-------------------------------------------------------------------- | ||
1635 : | jhr | 4572 | [2018/05/07]:: |
1636 : | + | ||
1637 : | jhr | 4576 | The `sameSign` function returned incorrect results in the `Int31` |
1638 : | and `Int32` modules. | ||
1639 : | + | ||
1640 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1641 : | jhr | 4576 | |
1642 : | //-------------------------------------------------------------------- | ||
1643 : | [2018/05/07]:: | ||
1644 : | + | ||
1645 : | jhr | 4572 | Fixed various minor parsing and scanning issues: |
1646 : | + | ||
1647 : | -- | ||
1648 : | * correct syntax for type variables | ||
1649 : | * signature/structure/functor IDs should always be alpha IDs | ||
1650 : | jhr | 4596 | * the equality ID (`=`) cannot appear in a binding context. Note that |
1651 : | we still allow the syntax `val op = = ...` because it is needed to | ||
1652 : | parse the file `system/smlnj/init/built-in.sml`. | ||
1653 : | jhr | 4572 | -- |
1654 : | + | ||
1655 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1656 : | jhr | 4572 | |
1657 : | //-------------------------------------------------------------------- | ||
1658 : | jhr | 4562 | [2018/05/05]:: |
1659 : | + | ||
1660 : | Completed overhaul of the way that int/word literals are handled in | ||
1661 : | the compiler. We now use `IntInf.int` to represent the values in | ||
1662 : | all IRs. This change also results in better CPS contraction, since | ||
1663 : | we now perform constant folding for both signed and unsigned values | ||
1664 : | at all sizes. We were also able to get rid of the tricky code that | ||
1665 : | worries about large tagged integer values that might cause overflow | ||
1666 : | during code generation. | ||
1667 : | + | ||
1668 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1669 : | jhr | 4562 | |
1670 : | //-------------------------------------------------------------------- | ||
1671 : | jhr | 4539 | [2018/04/21]:: |
1672 : | + | ||
1673 : | Improved the reporting of errors involving literal values. We now | ||
1674 : | use the original source text when describing the value in the error | ||
1675 : | message. | ||
1676 : | + | ||
1677 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1678 : | jhr | 4539 | |
1679 : | //-------------------------------------------------------------------- | ||
1680 : | jhr | 4533 | [2018/04/20]:: |
1681 : | + | ||
1682 : | jhr | 4603 | Fix for bug bugref:191[] (Compiler crash when handling large reals). |
1683 : | jhr | 4533 | We now issue a warning for real literals that will round to zero and |
1684 : | an error for real literals that are too large to represent. There | ||
1685 : | still needs to be done some work to support sub-normal literal values | ||
1686 : | (these are currently rounded to zero). | ||
1687 : | + | ||
1688 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1689 : | jhr | 4533 | |
1690 : | //-------------------------------------------------------------------- | ||
1691 : | jhr | 4528 | [2018/04/14]:: |
1692 : | + | ||
1693 : | jhr | 4603 | Changed the representation of real literals from strings to `RealLit.t`. |
1694 : | jhr | 4528 | + |
1695 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1696 : | jhr | 4528 | |
1697 : | //-------------------------------------------------------------------- | ||
1698 : | jhr | 4524 | [2018/04/13]:: |
1699 : | + | ||
1700 : | Removed real patterns from Absyn and FLINT, since they are not allowed | ||
1701 : | by SML'93 and were not present in the AST representation. | ||
1702 : | + | ||
1703 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1704 : | jhr | 4524 | |
1705 : | //-------------------------------------------------------------------- | ||
1706 : | jhr | 4521 | [2018/04/12]:: |
1707 : | + | ||
1708 : | jhr | 4603 | Fix for bug bugref:194[] (`Real.fromString` overflows or hangs). There |
1709 : | were two issues here. First, the `Overflow` exception was being raised | ||
1710 : | jhr | 4521 | when scanning large exponents, but it was not being handled by the |
1711 : | jhr | 4596 | scanning code. The second issue was that the scaling loop for large |
1712 : | exponents did not immediately terminate once infinity (or zero) was | ||
1713 : | reached, so it could take a long time. | ||
1714 : | jhr | 4521 | + |
1715 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1716 : | jhr | 4521 | |
1717 : | //-------------------------------------------------------------------- | ||
1718 : | jhr | 4878 | [2017/10/22]:: |
1719 : | + | ||
1720 : | Moved the Version-1 literal building code into `gc/old-literals.c`. | ||
1721 : | This file can be removed once the compiler generates the Version-2 | ||
1722 : | literal bytecode. | ||
1723 : | + | ||
1724 : | owner:cs.uchicago.edu/~jhr[John Reppy] | ||
1725 : | |||
1726 : | //-------------------------------------------------------------------- | ||
1727 : | jhr | 4501 | [2017/10/16]:: |
1728 : | + | ||
1729 : | Moved the check for whether a int or word literal is in range for | ||
1730 : | its type from the absyn->plambda translation to the overload | ||
1731 : | jhr | 4603 | resolver (`compiler/Elaborator/types/overload.sml`). |
1732 : | jhr | 4501 | + |
1733 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1734 : | jhr | 4501 | |
1735 : | //-------------------------------------------------------------------- | ||
1736 : | [2017/10/14]:: | ||
1737 : | + | ||
1738 : | Part 1 of an overhaul of the way that the compiler treats int/word | ||
1739 : | jhr | 4603 | literals. The end goal is to use `IntInf.int` to represent literals |
1740 : | jhr | 4501 | throughout all phases of the compiler. In this step, we changed the |
1741 : | jhr | 4603 | representation of literals in the `Absyn` representation (earlier |
1742 : | jhr | 4501 | representations already used IntInf.int). |
1743 : | + | ||
1744 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1745 : | jhr | 4501 | |
1746 : | jhr | 4467 | //==================================================================== |
1747 : | == Version 110.82; 2017/10/16 | ||
1748 : | |||
1749 : | jhr | 4366 | //-------------------------------------------------------------------- |
1750 : | jhr | 4461 | [2017/10/01]:: |
1751 : | + | ||
1752 : | jhr | 4603 | Fixed unnumbered bug in `IntInf.mod` and `IntInf.rem` functions, |
1753 : | where the `Div` exception was *not* getting raised when both | ||
1754 : | arguments are `0`. | ||
1755 : | jhr | 4461 | + |
1756 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1757 : | jhr | 4461 | |
1758 : | //-------------------------------------------------------------------- | ||
1759 : | jhr | 4467 | [2017/09/20]:: |
1760 : | + | ||
1761 : | jhr | 4468 | Various bits of cleanup in the handling of primitive operations, such |
1762 : | jhr | 4603 | as removing the `ptnum` mechanism for translating from Absyn to FLINT. |
1763 : | jhr | 4468 | + |
1764 : | jhr | 4603 | owner:cs.uchicago.edu/~dbm[David MacQueen] |
1765 : | jhr | 4468 | |
1766 : | //-------------------------------------------------------------------- | ||
1767 : | [2017/09/20]:: | ||
1768 : | + | ||
1769 : | jhr | 4603 | Added `Target` module, which specifies the properties of the target |
1770 : | jhr | 4467 | (__e.g.__, the size in bits of the default int type). Reworked the |
1771 : | jhr | 4603 | generation of the `InlineT` structure to be target specific. |
1772 : | jhr | 4467 | + |
1773 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1774 : | jhr | 4467 | |
1775 : | //-------------------------------------------------------------------- | ||
1776 : | jhr | 4413 | [2017/09/18]:: |
1777 : | + | ||
1778 : | jhr | 4420 | Removed FLINT primops (and their CPS counterparts) that are not |
1779 : | jhr | 4603 | in the `InlineT` structure and, thus, are never used by the compiler. |
1780 : | jhr | 4420 | + |
1781 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1782 : | jhr | 4420 | |
1783 : | //-------------------------------------------------------------------- | ||
1784 : | [2017/09/18]:: | ||
1785 : | + | ||
1786 : | jhr | 4603 | Fixed bug bugref:123[] (missing nonexhaustive bind warning). The `mkVBs` |
1787 : | function in `FLINT/trans/translate.sml` was adding a redundant default | ||
1788 : | rule by calling `ElabUtil.completeMatch` after a default rule had | ||
1789 : | jhr | 4417 | already been explicitly added to the match for let bindings. |
1790 : | dbm | 4415 | + |
1791 : | jhr | 4603 | owner:cs.uchicago.edu/~dbm[David MacQueen] |
1792 : | dbm | 4415 | |
1793 : | //-------------------------------------------------------------------- | ||
1794 : | [2017/09/18]:: | ||
1795 : | + | ||
1796 : | jhr | 4603 | Fixed bug bugref:183[] (status code returned by sml REPL). This fix |
1797 : | restores the version 110.79 behavior of having `sml foo.sml` exit with | ||
1798 : | a non-zero status when there is a type-checking error in `foo.sml`. | ||
1799 : | It also cleans up the error messages associated with `use` when there | ||
1800 : | jhr | 4413 | is a syntax error. |
1801 : | + | ||
1802 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1803 : | jhr | 4413 | |
1804 : | //-------------------------------------------------------------------- | ||
1805 : | jhr | 4399 | [2017/08/28]:: |
1806 : | + | ||
1807 : | jhr | 4603 | Fixed bug bugref:185[] (Bring command line help text into parity with man page). |
1808 : | Added missing options (`@SMLversion` and `@SMLsuffix`) to the | ||
1809 : | help message that is printed for the command "`sml -h`". Also | ||
1810 : | jhr | 4399 | adjusted the order of options in the help message, and in the man |
1811 : | page, so that the orders match. | ||
1812 : | + | ||
1813 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1814 : | jhr | 4399 | |
1815 : | //-------------------------------------------------------------------- | ||
1816 : | jhr | 4375 | [2017/08/12]:: |
1817 : | + | ||
1818 : | Changed the way that we test for allocation-space addresses in minor GCs. | ||
1819 : | Instead of using the BIBOP, we now do a pointer range test. On 32-bit | ||
1820 : | systems, this change results in a small (~0.13%) performance boost, but | ||
1821 : | we expect a bigger impact on 64-bit hardware, where the cost of BIBOP | ||
1822 : | probes will be higher and there are more registers available to hold | ||
1823 : | the nursery bounds. | ||
1824 : | + | ||
1825 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1826 : | jhr | 4375 | |
1827 : | //-------------------------------------------------------------------- | ||
1828 : | [2017/08/12]:: | ||
1829 : | + | ||
1830 : | Fixed some issues in build-literals.c. These were mostly false | ||
1831 : | positives in the assertions, but there was also a bug in the way | ||
1832 : | that the available space was tracked that could conceivably | ||
1833 : | result in a crash (but was very unlikely). | ||
1834 : | + | ||
1835 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1836 : | jhr | 4375 | |
1837 : | //-------------------------------------------------------------------- | ||
1838 : | jhr | 4368 | [2017/06/07]:: |
1839 : | + | ||
1840 : | Updated _arch-n-os script to recognize macOS 10.13 (High Sierra) | ||
1841 : | as a valid target. | ||
1842 : | + | ||
1843 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1844 : | jhr | 4368 | |
1845 : | //-------------------------------------------------------------------- | ||
1846 : | jhr | 4366 | [2017/05/17]:: |
1847 : | + | ||
1848 : | Fixed a bug in the way that JSON string values were being printed. | ||
1849 : | jhr | 4468 | The code previously assumed that C-style escaping will work, but |
1850 : | jhr | 4366 | that is not true for "\'" (as well as for control and non-ASCII |
1851 : | characters). The new implementation assumes that the string value | ||
1852 : | is UTF-8 and uses the "\\u" escape sequences for characters outside | ||
1853 : | the JSON escapes and printable ASCII characters. | ||
1854 : | + | ||
1855 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1856 : | jhr | 4366 | |
1857 : | jhr | 4340 | //==================================================================== |
1858 : | == Version 110.81; 2017/05/01 | ||
1859 : | |||
1860 : | jhr | 4317 | //-------------------------------------------------------------------- |
1861 : | jhr | 4331 | [2017/04/28]:: |
1862 : | jhr | 4322 | + |
1863 : | jhr | 4603 | Fixed bug bugref:129[] (Symbolic identifiers are allowed as strids). |
1864 : | jhr | 4331 | + |
1865 : | jhr | 4603 | owner:cs.uchicago.edu/~dbm[Dave MacQueen] |
1866 : | jhr | 4331 | |
1867 : | //-------------------------------------------------------------------- | ||
1868 : | [2017/04/07]:: | ||
1869 : | + | ||
1870 : | jhr | 4603 | Fixed bug bugref:179[] (ml-ulex writing debug messages to stdOut). |
1871 : | jhr | 4331 | Both **ml-ulex** and **ml-antlr** now direct their debug and status messages |
1872 : | jhr | 4603 | to `stdErr` (instead of `stdOut`). |
1873 : | jhr | 4331 | + |
1874 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1875 : | jhr | 4331 | |
1876 : | //-------------------------------------------------------------------- | ||
1877 : | [2017/02/09]:: | ||
1878 : | + | ||
1879 : | jhr | 4322 | Linux distributions are starting to require that the stack be marked |
1880 : | as non-executable in applications. Because the runtime system includes | ||
1881 : | jhr | 4603 | assembly code, this marking was not happening. We've added `.section` |
1882 : | directives to the `PPC.prim.asm` and `X86.prim.asm` files as | ||
1883 : | jhr | 4322 | per https://wiki.gentoo.org/wiki/Hardened/GNU_stack_quickstart#Patching[]. |
1884 : | Thanks to Daniel Moerner for reporting this issue and for providing | ||
1885 : | jhr | 4399 | a pointer to the fix. |
1886 : | jhr | 4324 | + |
1887 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1888 : | jhr | 4324 | |
1889 : | //-------------------------------------------------------------------- | ||
1890 : | jhr | 4320 | [2016/10/15]:: |
1891 : | + | ||
1892 : | jhr | 4603 | Added `--debug` command-line option to *ml-antlr*. |
1893 : | jhr | 4320 | This flag causes <b>ml-antlr</b> to generate debug actions that print |
1894 : | the left-hand-side non-terminal of the production. | ||
1895 : | + | ||
1896 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1897 : | jhr | 4320 | |
1898 : | //-------------------------------------------------------------------- | ||
1899 : | dbm | 4315 | [2016/09/15]:: |
1900 : | + | ||
1901 : | jhr | 4317 | Working on 64-bit support. Changes include making code generation |
1902 : | dependent on the target word size and abstracting over the BIBOP | ||
1903 : | representation in the runtime system. | ||
1904 : | + | ||
1905 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1906 : | jhr | 4317 | |
1907 : | //-------------------------------------------------------------------- | ||
1908 : | [2016/09/15]:: | ||
1909 : | + | ||
1910 : | dbm | 4315 | Further cleanup of the separation of FLINT from the front-end. |
1911 : | jhr | 4603 | Eliminated all references to `ModulePropLists` (`module-plists.sml`) in |
1912 : | the front end and in pickling, and moved `module-plists` from | ||
1913 : | `Semant/modules` to `FLINT/trans`. `ModulePropLists` is now only used | ||
1914 : | in `FLINT/trans/translate.sml`. | ||
1915 : | dbm | 4315 | + |
1916 : | Revision: 4314 | ||
1917 : | + | ||
1918 : | Files changed: | ||
1919 : | + | ||
1920 : | -- | ||
1921 : | jhr | 4603 | - `compiler/ElabData/modules/modules.sml` (cleaned up) |
1922 : | - `compiler/Elaborator/print/ppmod.sml` (cleaned up) | ||
1923 : | - `compiler/FLINT/trans/module-plists.sml` (moved from `Semant/modules`) | ||
1924 : | - `compiler/Semant/modules/instantiate-param.sml` (deleted) | ||
1925 : | - `compiler/Semant/pickle/pickmod.sml` (no longer mentions property lists) | ||
1926 : | - `compiler/Semant/pickle/unpickmod.sml` (ditto) | ||
1927 : | - `compiler/Semant/statenv/prim.sml` | ||
1928 : | - `compiler/Semant/types/tp-var-info.sml` (deleted) | ||
1929 : | - `compiler/core.cm` (modified for move of `module-plists.sml`) | ||
1930 : | dbm | 4315 | -- |
1931 : | + | ||
1932 : | jhr | 4603 | owner:cs.uchicago.edu/~dbm[Dave MacQueen] |
1933 : | dbm | 4315 | |
1934 : | jhr | 4317 | //-------------------------------------------------------------------- |
1935 : | jhr | 4310 | [2016/09/14]:: |
1936 : | + | ||
1937 : | jhr | 4603 | Eliminated dependency of `PlambdaType` from the front end by adding a |
1938 : | type `TKind.tkind` which is a simplified standin for `PlambdaType.tkind` | ||
1939 : | for use during elaboration. `TKind.tkind` values are translated on | ||
1940 : | demand to `PlambdaType.tkind` in `trans/transtypes.sml`. Types still has | ||
1941 : | a `tycpath` type but it is defined using `TKind.tkind` now. The new structure | ||
1942 : | `SigPropList` replaces `ModulePropLists` | ||
1943 : | (`Semant/modules/module-plists.sml`) for use in `instantiate.sml`. | ||
1944 : | `Instantiate` is now defined directly as a structure so the functor | ||
1945 : | application in `Semant/modules/instantiate.sml` no longer exists. | ||
1946 : | dbm | 4311 | + |
1947 : | Files changed: | ||
1948 : | + | ||
1949 : | -- | ||
1950 : | jhr | 4603 | - `ElabData/basics/debindex.sig` (moved here from `Elaborator/basics`) |
1951 : | - `ElabData/basics/debindex.sml` (ditto) | ||
1952 : | - `ElabData/basics/sig-plist.sml` (new) | ||
1953 : | - `ElabData/basics/tkind.sml` (new) | ||
1954 : | - `ElabData/types/types.sig` | ||
1955 : | - `ElabData/types/types.sml` | ||
1956 : | - `Elaborator/modules/instantiate.sml` | ||
1957 : | - `Elaborator/print/ppmod.sml` | ||
1958 : | - `FLINT/trans/transtkind.sml` (new) | ||
1959 : | - `FLINT/trans/transtypes.sml` | ||
1960 : | - `TopLevel/interact/evalloop.sml` | ||
1961 : | - `ElabData/elabdata.cm` | ||
1962 : | - `Elaborator/elaborate.cm` | ||
1963 : | - `core.cm` | ||
1964 : | dbm | 4311 | -- |
1965 : | + | ||
1966 : | jhr | 4603 | owner:cs.uchicago.edu/~dbm[Dave MacQueen] |
1967 : | dbm | 4311 | |
1968 : | jhr | 4317 | //-------------------------------------------------------------------- |
1969 : | dbm | 4311 | [2016/09/14]:: |
1970 : | + | ||
1971 : | jhr | 4310 | Added support for Successor ML record-expression-punning syntax. For |
1972 : | jhr | 4603 | example, one can now define a function `f` as |
1973 : | jhr | 4334 | + |
1974 : | [source,sml] | ||
1975 : | ---------------- | ||
1976 : | jhr | 4310 | fun f x = {x} |
1977 : | jhr | 4334 | ---------------- |
1978 : | jhr | 4310 | + |
1979 : | jhr | 4334 | which is equivalent to the definition |
1980 : | + | ||
1981 : | [source,sml] | ||
1982 : | ---------------- | ||
1983 : | fun f x = {x = x} | ||
1984 : | ---------------- | ||
1985 : | + | ||
1986 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1987 : | jhr | 4310 | |
1988 : | jhr | 4317 | //-------------------------------------------------------------------- |
1989 : | jhr | 4310 | [2016/09/14]:: |
1990 : | + | ||
1991 : | Fixed a bug in the parser. Asterix (`*`) was not allowed as a record label | ||
1992 : | when using the record-pattern-punning syntax. | ||
1993 : | + | ||
1994 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
1995 : | jhr | 4310 | |
1996 : | jhr | 4317 | //-------------------------------------------------------------------- |
1997 : | jhr | 4310 | [2016/09/14]:: |
1998 : | + | ||
1999 : | Added support for `do exp` *Successor ML* syntax. | ||
2000 : | + | ||
2001 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2002 : | jhr | 4310 | |
2003 : | jhr | 4317 | //-------------------------------------------------------------------- |
2004 : | jhr | 4300 | [2016/09/12]:: |
2005 : | + | ||
2006 : | jhr | 4603 | Fixed bug bugref:153[] (Enabling Successor ML features is delayed). |
2007 : | We now use a function `Control.setSuccML` to switch to/from *Successor ML* | ||
2008 : | jhr | 4300 | mode in the REPL. The function resets the parser, so the next input will |
2009 : | jhr | 4603 | be correctly parsed. The `Control.succML` flag is no longer visibile |
2010 : | jhr | 4300 | in the REPL. |
2011 : | + | ||
2012 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2013 : | jhr | 4300 | |
2014 : | dbm | 4298 | //-------------------------------------------------------------------- |
2015 : | [2016/09/12]:: | ||
2016 : | + | ||
2017 : | jhr | 4603 | Fixed bug bugref:149[] (Datatype replication exposes hidden constructors). |
2018 : | Added boolean field `stripped` to DATATYPE variant of tyckind in | ||
2019 : | `compiler/ElabData/types/types.sml` with default value `false`. | ||
2020 : | `stripped` is set to true when a datatype is matched with a simple | ||
2021 : | `type` spec in signature matching, and datatypes with `stripped` set | ||
2022 : | dbm | 4298 | to true are disallowed in datatype replications. |
2023 : | + | ||
2024 : | Files changed: | ||
2025 : | dbm | 4311 | + |
2026 : | dbm | 4298 | -- |
2027 : | jhr | 4603 | - `compiler/ElabData/types/types.sig` |
2028 : | - `compiler/ElabData/types/types.sml` | ||
2029 : | - `compiler/ElabData/types/typesutil.sml` | ||
2030 : | - `compiler/ElabData/types/core-basictypes.sml` | ||
2031 : | - `compiler/Elaborator/types/basictypes.sml` | ||
2032 : | - `compiler/Elaborator/types/eqtypes.sml` | ||
2033 : | - `compiler/Elaborator/modules/evalent.sml` | ||
2034 : | - `compiler/Elaborator/modules/sigmatch.sml` | ||
2035 : | - `compiler/Elaborator/modules/instantiate.sml` | ||
2036 : | - `compiler/Elaborator/print/ppabsyn.sml` | ||
2037 : | - `compiler/Elaborator/print/pptype.sml` | ||
2038 : | - `compiler/Elaborator/elaborate/elabcore.sml` | ||
2039 : | - `compiler/Elaborator/elaborate/elabmod.sml` | ||
2040 : | - `compiler/Elaborator/elaborate/elabtype.sml` | ||
2041 : | - `compiler/Elaborator/elaborate/elabsig.sml` | ||
2042 : | - `compiler/Semant/pickle/pickmod.sml` | ||
2043 : | - `compiler/Semant/pickle/unpickmod.sml` | ||
2044 : | - `compiler/MiscUtil/print/ppobj.sml` | ||
2045 : | - `compiler/FLINT/trans/transtypes.sml` | ||
2046 : | - `compiler/FLINT/trans/pequal.sml` | ||
2047 : | dbm | 4298 | -- |
2048 : | + | ||
2049 : | jhr | 4603 | owner:cs.uchicago.edu/~dbm[Dave MacQueen] |
2050 : | dbm | 4298 | |
2051 : | jhr | 4319 | //-------------------------------------------------------------------- |
2052 : | jhr | 4320 | [2016/08/31]:: |
2053 : | + | ||
2054 : | jhr | 4603 | Added `%tokentype` directive to *ml-antlr*; this directive allows users |
2055 : | jhr | 4320 | to specify the token datatype externally, which is necessary in order |
2056 : | to share a lexer with two different *ml-antlr* parsers. | ||
2057 : | + | ||
2058 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2059 : | jhr | 4320 | |
2060 : | //-------------------------------------------------------------------- | ||
2061 : | jhr | 4319 | [2016/08/20]:: |
2062 : | + | ||
2063 : | jhr | 4603 | Change the interface to `AMD64Gen` in *MLRISC*; the `signBit` and |
2064 : | `negateSignBit` callbacks now return an `MLTree.rexp` (instead of a | ||
2065 : | jhr | 4319 | label). |
2066 : | + | ||
2067 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2068 : | jhr | 4319 | |
2069 : | jhr | 4260 | //==================================================================== |
2070 : | == Version 110.80; 2016/08/19 | ||
2071 : | |||
2072 : | jhr | 4216 | //-------------------------------------------------------------------- |
2073 : | jhr | 4256 | [2016/08/16]:: |
2074 : | + | ||
2075 : | jhr | 4603 | Fixed bugref:151[] (Error installing from source on Mac OS X). The fix |
2076 : | involves both changes to the `config/install.sh` script and the | ||
2077 : | `mk.x86-darwin` makefile. With this fix, we include the `SDK` argument | ||
2078 : | to the `/usr/bin/as` only when the OS version is 10.10 (Yosemite) or | ||
2079 : | jhr | 4256 | later. |
2080 : | + | ||
2081 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2082 : | jhr | 4256 | |
2083 : | //-------------------------------------------------------------------- | ||
2084 : | jhr | 4255 | [2016/08/10]:: |
2085 : | + | ||
2086 : | jhr | 4603 | Added the proposed `unzipMap`, `unzipMapi`, `find`, and `findi` functions |
2087 : | to the `ListPair` module. | ||
2088 : | jhr | 4255 | + |
2089 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2090 : | jhr | 4255 | |
2091 : | //-------------------------------------------------------------------- | ||
2092 : | [2016/08/10]:: | ||
2093 : | + | ||
2094 : | jhr | 4603 | Added the proposed `mapLeft`, `mapRight`, `appLeft`, and `appRight` |
2095 : | functions to the `Either` module. | ||
2096 : | jhr | 4255 | + |
2097 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2098 : | jhr | 4255 | |
2099 : | //-------------------------------------------------------------------- | ||
2100 : | dbm | 4250 | [2016/08/09]:: |
2101 : | + | ||
2102 : | jhr | 4603 | Fixed bug bugref:145[] (Internal exception occurs on bogus annotation |
2103 : | instead of typechecking diagnostic). Added missing `OVLD_UB` case in | ||
2104 : | function `failMessage` in `compiler/Elaborator/types/unify.sml`. | ||
2105 : | dbm | 4250 | + |
2106 : | jhr | 4603 | owner:cs.uchicago.edu/~dbm[Dave MacQueen] |
2107 : | dbm | 4250 | |
2108 : | //-------------------------------------------------------------------- | ||
2109 : | jhr | 4248 | [2016/08/04]:: |
2110 : | + | ||
2111 : | jhr | 4603 | Fixed bug bugref:166[] (Can't install SML/NJ in directories containing |
2112 : | jhr | 4248 | spaces). Thanks to Eugene Sharygin for the patch. |
2113 : | + | ||
2114 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2115 : | jhr | 4248 | |
2116 : | //-------------------------------------------------------------------- | ||
2117 : | mrainey | 4240 | [2016/06/21]:: |
2118 : | + | ||
2119 : | Fixed incorrect dividend sign extension before 32-bit divide in amd64 | ||
2120 : | code generator in MLRISC | ||
2121 : | + | ||
2122 : | jhr | 4603 | owner:gallium.inria.fr/~rainey/[Mike Rainey] |
2123 : | mrainey | 4240 | |
2124 : | //-------------------------------------------------------------------- | ||
2125 : | jhr | 4235 | [2016/06/16]:: |
2126 : | + | ||
2127 : | jhr | 4603 | Fixed bug bugref:150[] (Add title to batch script). |
2128 : | jhr | 4235 | + |
2129 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2130 : | jhr | 4235 | |
2131 : | //-------------------------------------------------------------------- | ||
2132 : | jhr | 4230 | [2016/05/11]:: |
2133 : | + | ||
2134 : | Implemented the changes for | ||
2135 : | https://github.com/SMLFamily/BasisLibrary/wiki/2016-001-Add-popCount-to-WORD-signature[ | ||
2136 : | jhr | 4603 | Basis Library Proposal 2016-001]. This proposal added the `popCount` |
2137 : | function to the `WORD` signature. | ||
2138 : | jhr | 4230 | + |
2139 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2140 : | jhr | 4230 | |
2141 : | //-------------------------------------------------------------------- | ||
2142 : | jhr | 4226 | [2016/05/03]:: |
2143 : | + | ||
2144 : | jhr | 4603 | Fixed bug bugref:156[] (sml resumes after SIGSTOP with bogus exception |
2145 : | report). The fix is a bit of a hack: I modified the `non_bt_hdl` | ||
2146 : | function in `evalloop.sml` to match an `IO.Io` exception with | ||
2147 : | jhr | 4226 | the appropriate shape for this situation. |
2148 : | + | ||
2149 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2150 : | jhr | 4226 | |
2151 : | //-------------------------------------------------------------------- | ||
2152 : | jhr | 4220 | [2016/04/07]:: |
2153 : | + | ||
2154 : | jhr | 4603 | Fixed bug bugref:154[] (Return code for ml-ulex when there is an error). |
2155 : | jhr | 4221 | + |
2156 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2157 : | jhr | 4221 | |
2158 : | //-------------------------------------------------------------------- | ||
2159 : | [2016/04/07]:: | ||
2160 : | + | ||
2161 : | jhr | 4603 | Fixed bug bugref:155[] (Misleading printing of word literals in |
2162 : | jhr | 4220 | error messages). |
2163 : | + | ||
2164 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2165 : | jhr | 4220 | |
2166 : | //-------------------------------------------------------------------- | ||
2167 : | jhr | 4216 | [2016/04/02]:: |
2168 : | + | ||
2169 : | jhr | 4603 | Fixed a bug in the implementation of the `--ml-lex-mode` flag for |
2170 : | *ml-ulex*. The `\h` escape sequence is supposed to map to the | ||
2171 : | character range `[\128-\255]`, but did not. | ||
2172 : | jhr | 4216 | + |
2173 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2174 : | jhr | 3992 | |
2175 : | jhr | 4204 | //-------------------------------------------------------------------- |
2176 : | [2015/11/09]:: | ||
2177 : | + | ||
2178 : | jhr | 4603 | Fixed bug bugref:147[] (Hexadecimal escapes in strings are not supported). |
2179 : | jhr | 4204 | We previously did not support Unicode escapes in string literals. We now |
2180 : | jhr | 4253 | do so, [line-through]#with non-ascii codepoints being mapped to the |
2181 : | UTF-8 encoding# with escape values in the range 0..255 being mapped to the | ||
2182 : | corresponding 8-bit character. Values outside that range are flagged | ||
2183 : | as an error. | ||
2184 : | jhr | 4204 | + |
2185 : | jhr | 4253 | _Revised August 4, 2016_ |
2186 : | + | ||
2187 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2188 : | jhr | 4204 | |
2189 : | //-------------------------------------------------------------------- | ||
2190 : | [2015/10/28]:: | ||
2191 : | + | ||
2192 : | jhr | 4603 | Partial fix for the noisy exception-stack traces on the `Error` exception. |
2193 : | The cases that are handled by this change are applying `use` to a non-existent | ||
2194 : | jhr | 4204 | file and when there are compilation errors in a program being built by |
2195 : | jhr | 4603 | `CM.make`. What remains to be handled is the situation where `CM.make` is |
2196 : | jhr | 4204 | applied to a non-existent file. |
2197 : | + | ||
2198 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2199 : | jhr | 4204 | |
2200 : | jhr | 4126 | //==================================================================== |
2201 : | jhr | 4157 | == Version 110.79; 2015/10/04 |
2202 : | jhr | 4126 | |
2203 : | jhr | 4060 | //-------------------------------------------------------------------- |
2204 : | jhr | 4157 | [2015/10/04]:: |
2205 : | + | ||
2206 : | jhr | 4603 | Patched `base/compiler/FLINT/clos/closure.sml` so that *Twelf* will |
2207 : | build again. Fixes bug bugref:140[] (Lookup failure in `closure.sml` | ||
2208 : | jhr | 4204 | when compiling *Twelf*). |
2209 : | jhr | 4157 | + |
2210 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2211 : | jhr | 4157 | |
2212 : | //-------------------------------------------------------------------- | ||
2213 : | jhr | 4141 | [2015/09/28]:: |
2214 : | + | ||
2215 : | jhr | 4151 | Added support for a *Successor ML* tool to CM. This tool allows one |
2216 : | jhr | 4603 | to specify that a source file `fool.sml` is *Successor ML* source code in the |
2217 : | jhr | 4151 | following ways: |
2218 : | + | ||
2219 : | -------- | ||
2220 : | foo.sml : succ-ml | ||
2221 : | foo.sml : sml (succ-ml) | ||
2222 : | foo.sml (succ-ml) | ||
2223 : | -------- | ||
2224 : | + | ||
2225 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2226 : | jhr | 4151 | |
2227 : | //-------------------------------------------------------------------- | ||
2228 : | [2015/09/28]:: | ||
2229 : | + | ||
2230 : | jhr | 4603 | Added the directory `base/old-basis` to support backward-compatible |
2231 : | jhr | 4147 | views of the *Basis Library*. You can use these by replacing the |
2232 : | line | ||
2233 : | + | ||
2234 : | -------- | ||
2235 : | $/basis.cm | ||
2236 : | -------- | ||
2237 : | + | ||
2238 : | with | ||
2239 : | + | ||
2240 : | -------- | ||
2241 : | $/basis-2004.cm | ||
2242 : | -------- | ||
2243 : | + | ||
2244 : | in your CM files. | ||
2245 : | |||
2246 : | //-------------------------------------------------------------------- | ||
2247 : | [2015/09/28]:: | ||
2248 : | + | ||
2249 : | jhr | 4603 | New implementation of `Date` structure in the Basis, which fixes bugs |
2250 : | bugref:138[] (Incorrect behavior for `Date.fromTimeLocal`) and | ||
2251 : | bugref:139[] (`Date.date` is broken). Note that some more thought should | ||
2252 : | be given to the correct semantics of `Date.date` when dealing with | ||
2253 : | jhr | 4141 | offsets. For example, should an offset of +23 hours produce the same |
2254 : | date as an offset of -1 hours? Currently our implementation produces | ||
2255 : | different results (by a day) for these two situations. | ||
2256 : | + | ||
2257 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2258 : | jhr | 4141 | |
2259 : | //-------------------------------------------------------------------- | ||
2260 : | jhr | 4126 | [2015/09/25]:: |
2261 : | + | ||
2262 : | jhr | 4134 | Implemented the changes for |
2263 : | https://github.com/SMLFamily/BasisLibrary/wiki/2015-003-Additional-operations-on-sequences[ | ||
2264 : | jhr | 4147 | Basis Library Proposal 2015-003]. This proposal added operations to |
2265 : | jhr | 4134 | the following signatures: |
2266 : | + | ||
2267 : | [source,sml] | ||
2268 : | ------------ | ||
2269 : | signature ARRAY | ||
2270 : | signature LIST | ||
2271 : | signature LIST_PAIR | ||
2272 : | signature MONO_ARRAY | ||
2273 : | signature MONO_VECTOR | ||
2274 : | signature OPTION | ||
2275 : | signature STRING | ||
2276 : | signature TEXT | ||
2277 : | signature VECTOR | ||
2278 : | ------------ | ||
2279 : | + | ||
2280 : | and the following structures: | ||
2281 : | + | ||
2282 : | [source,sml] | ||
2283 : | ------------ | ||
2284 : | structure Array : ARRAY | ||
2285 : | structure CharArray : MONO_ARRAY | ||
2286 : | structure CharVector : MONO_VECTOR | ||
2287 : | structure List : LIST | ||
2288 : | structure ListPair : LIST_PAIR | ||
2289 : | structure Option : OPTION | ||
2290 : | structure Real64Array : MONO_ARRAY | ||
2291 : | structure Real64Vector : MONO_VECTOR | ||
2292 : | structure String : STRING | ||
2293 : | structure Text : TEXT | ||
2294 : | structure Vector : VECTOR | ||
2295 : | structure Word8Array : MONO_ARRAY | ||
2296 : | structure Word8Vector : MONO_VECTOR | ||
2297 : | ------------ | ||
2298 : | + | ||
2299 : | While it is very unlikely that these changes will break existing code, there are | ||
2300 : | jhr | 4603 | a a couple scenarios in which the code might break. Namely, when use of `open` |
2301 : | jhr | 4139 | introduces conflicts and when user code implements one of the affected Basis Library |
2302 : | signatures. Both of these examples occurred in the *SML/NJ* source code; the former | ||
2303 : | in the *ml-yacc* sources and the latter in the *MLRISC* sources. | ||
2304 : | jhr | 4134 | + |
2305 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2306 : | jhr | 4134 | |
2307 : | //-------------------------------------------------------------------- | ||
2308 : | [2015/09/25]:: | ||
2309 : | + | ||
2310 : | jhr | 4603 | Added the optional implementations of `PackReal64Big` and `PackReal64Little`. |
2311 : | This addition addresses feature request bugref:82[feature] | ||
2312 : | (Implementations of `PACK_REAL` missing). The implementation | ||
2313 : | jhr | 4126 | uses the approach suggested by |
2314 : | https://github.com/msullivan/sml-util/blob/master/libs/pack-real.sml[Michael Sullivan]. | ||
2315 : | + | ||
2316 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2317 : | jhr | 4126 | |
2318 : | //-------------------------------------------------------------------- | ||
2319 : | jhr | 4122 | [2015/09/24]:: |
2320 : | + | ||
2321 : | jhr | 4603 | Fixed bug bugref:45[] (Compiler bug in specialize phase). This bug |
2322 : | was in `compiler/FLINT/opt/fcontract.sml` and was the result of a bad | ||
2323 : | jhr | 4122 | interaction between eta contraction and inlining. As part of the fix, |
2324 : | I cleaned up the code in this part of FLINT a bit. | ||
2325 : | + | ||
2326 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2327 : | jhr | 4122 | |
2328 : | //-------------------------------------------------------------------- | ||
2329 : | jhr | 4105 | [2015/09/21]:: |
2330 : | jhr | 4107 | Improvements to the error messages produced by the *ml-ulex* lexer generator. |
2331 : | + | ||
2332 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2333 : | jhr | 4107 | |
2334 : | //-------------------------------------------------------------------- | ||
2335 : | [2015/09/21]:: | ||
2336 : | jhr | 4603 | Added `Ref` structure and `REF` signature to Basis implementation |
2337 : | jhr | 4105 | (https://github.com/SMLFamily/BasisLibrary/wiki/2015-007-Addition-of-Ref-module[ |
2338 : | Basis Library Proposal 2015-007]). | ||
2339 : | + | ||
2340 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2341 : | jhr | 4105 | |
2342 : | //-------------------------------------------------------------------- | ||
2343 : | [2015/09/21]:: | ||
2344 : | jhr | 4603 | Added `Fn` structure and `FN` signature to Basis implementation |
2345 : | jhr | 4105 | (https://github.com/SMLFamily/BasisLibrary/wiki/2015-005-Addition-of-Fn-module[ |
2346 : | Basis Library Proposal 2015-005]). | ||
2347 : | + | ||
2348 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2349 : | jhr | 4105 | |
2350 : | //-------------------------------------------------------------------- | ||
2351 : | jhr | 4097 | [2015/08/22]:: |
2352 : | + | ||
2353 : | jhr | 4603 | Fixed bug bugref:136[] (Incorrect raising of exceptions in `Real.fmt` |
2354 : | and `Time.fmt`). | ||
2355 : | jhr | 4097 | + |
2356 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2357 : | jhr | 4097 | |
2358 : | //-------------------------------------------------------------------- | ||
2359 : | jhr | 4105 | [2015/08/14]:: |
2360 : | + | ||
2361 : | jhr | 4603 | Added `Either` structure and `EITHER` signature to Basis implementation |
2362 : | jhr | 4105 | (https://github.com/SMLFamily/BasisLibrary/wiki/2015-002-Addition-of-Either-module[ |
2363 : | Basis Library Proposal 2015-002]). | ||
2364 : | + | ||
2365 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2366 : | jhr | 4105 | |
2367 : | //-------------------------------------------------------------------- | ||
2368 : | jhr | 4086 | [2015/07/23]:: |
2369 : | + | ||
2370 : | jhr | 4603 | Fixed bug bugref:135[] (Fails to build on Linux PowerPC). |
2371 : | jhr | 4086 | + |
2372 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2373 : | jhr | 4086 | |
2374 : | //-------------------------------------------------------------------- | ||
2375 : | jhr | 4076 | [2015/07/08]:: |
2376 : | + | ||
2377 : | jhr | 4077 | Added Linux 4.* kernels to the list of operating systems recognized |
2378 : | jhr | 4603 | by the `.arch-n-opsys` script (fixes bug bugref:134[]). |
2379 : | jhr | 4076 | + |
2380 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2381 : | jhr | 4076 | |
2382 : | //-------------------------------------------------------------------- | ||
2383 : | jhr | 4074 | [2015/06/11]:: |
2384 : | + | ||
2385 : | Added Mac OS X 10.11 (El Capitan) to the list of operating systems | ||
2386 : | jhr | 4603 | recognized by the `.arch-n-opsys` script. |
2387 : | jhr | 4074 | + |
2388 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2389 : | jhr | 4074 | |
2390 : | //-------------------------------------------------------------------- | ||
2391 : | jhr | 4060 | [2015/05/27]:: |
2392 : | + | ||
2393 : | jhr | 4105 | Added support for *Successor ML* lexical extensions. These can be enabled |
2394 : | jhr | 4603 | using the command-line option `-Cparser.succ-ml=true` or by the assignment |
2395 : | jhr | 4062 | + |
2396 : | [source,sml] | ||
2397 : | ------------ | ||
2398 : | Control.succML := true; | ||
2399 : | ------------ | ||
2400 : | + | ||
2401 : | at the REPL. The extensions are as follows: | ||
2402 : | jhr | 4105 | + |
2403 : | jhr | 4060 | -- |
2404 : | jhr | 4603 | - Underscore ("`_`") as a separator in numeric literals; __e.g.__, `123_456`, |
2405 : | `0wxff_ff_ff_f3`, `123_456.1`, ... | ||
2406 : | jhr | 4060 | |
2407 : | jhr | 4603 | - end-of-line comments, which are denoted using `(*)`. End-of-line comments |
2408 : | jhr | 4060 | properly nest into conventional block comments. For example, the following |
2409 : | jhr | 4216 | block comment is well formed: |
2410 : | jhr | 4060 | + |
2411 : | [source,sml] | ||
2412 : | ------------ | ||
2413 : | (* | ||
2414 : | fun f x = x (*) my identity function *) | ||
2415 : | *) | ||
2416 : | ------------ | ||
2417 : | + | ||
2418 : | jhr | 4603 | - binary literals for both integers and words; __e.g.__, `0b0101_1110`, or |
2419 : | `0wb1101`. | ||
2420 : | jhr | 4060 | -- |
2421 : | jhr | 4105 | + |
2422 : | This change is the beginning of a program to add *Successor ML* feature to *SML/NJ*; | ||
2423 : | See https://github.com/SMLFamily/Proposed-Definition-of-Successor-ML[] for more | ||
2424 : | details. | ||
2425 : | + | ||
2426 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2427 : | jhr | 4060 | |
2428 : | jhr | 4002 | //==================================================================== |
2429 : | jhr | 4037 | == Version 110.78; 2014/12/24 |
2430 : | jhr | 4002 | |
2431 : | jhr | 3992 | //-------------------------------------------------------------------- |
2432 : | dbm | 4001 | [2014/12/19]:: |
2433 : | + | ||
2434 : | Major revision of the machinery for overloading resolution for both | ||
2435 : | jhr | 4216 | operators (vars) and literals, now using a common mechanism. This fixes |
2436 : | jhr | 4603 | bug bugref:52[] by improving the error message when an overloaded |
2437 : | jhr | 4049 | operator is inconsistent with its context. Updated 23 files, including |
2438 : | jhr | 4603 | major changes in `overload.sml`, `types.sml`, `unify.sml`, `elabcore.sml`, |
2439 : | `typesutil.sml`. The overload declaration is still used in | ||
2440 : | `pervasives.sml`, where the order of the specified instances of an | ||
2441 : | jhr | 4002 | ordering determines the default interpretation (_i.e._, the first one). |
2442 : | dbm | 4001 | + |
2443 : | jhr | 4603 | The `SCHEME` and `LITERAL` forms of tyvars are replaced by a new |
2444 : | `OVLD` form that tracks potential instantiations of the type of the | ||
2445 : | dbm | 4001 | overloaded vars or literals. |
2446 : | + | ||
2447 : | jhr | 4603 | owner:cs.uchicago.edu/~dbm[David MacQueen] |
2448 : | dbm | 4001 | |
2449 : | //-------------------------------------------------------------------- | ||
2450 : | jhr | 4002 | [2014/12/18]:: |
2451 : | + | ||
2452 : | jhr | 4603 | Moved `base/NOTES/HISTORY` file to `doc/src/changelog/HISTORY.txt` |
2453 : | jhr | 4002 | and converted it to http://asciidoc.org[ASCIIDOC] format. Have also |
2454 : | jhr | 4603 | moved the `README` files from `base/READMES` to `doc/src/release-notes`. |
2455 : | jhr | 4002 | These changes are part of a general effort to rationalize and improve |
2456 : | the documentation of the *SML/NJ* system. | ||
2457 : | + | ||
2458 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2459 : | jhr | 4002 | |
2460 : | //-------------------------------------------------------------------- | ||
2461 : | jhr | 3994 | [2014/12/13]:: |
2462 : | + | ||
2463 : | jhr | 4002 | Preliminary cleanups before changes to overloading |
2464 : | + | ||
2465 : | jhr | 4603 | Minor cleanup in `Elaborator/elaborate/elabcore` (function `elabOVERLOADdec`) |
2466 : | and in `ElabData/types/typesutil.sml` (function `matchScheme`). Preparing for | ||
2467 : | jhr | 3994 | a new method of handling type checking of overloaded operators. [Note |
2468 : | jhr | 4603 | that there is no reason for the options field of `OVLDvar` to be a |
2469 : | jhr | 3994 | reference -- it is never updated. Changing this requires corresponding |
2470 : | change in pickling.] | ||
2471 : | + | ||
2472 : | jhr | 4603 | Also added an `etopdebugging` flag (`ElabControl`) for debugging in |
2473 : | `elabtop.sml`. Modified `elabcontrol.`{`sml`,`sig`} and | ||
2474 : | `elabtop.sml`. Also rearranged ast and absyn printing in `evalloop.sml`. | ||
2475 : | jhr | 3994 | + |
2476 : | jhr | 4603 | owner:cs.uchicago.edu/~dbm[David MacQueen] |
2477 : | jhr | 3994 | |
2478 : | //-------------------------------------------------------------------- | ||
2479 : | jhr | 3992 | [2014/10/23]:: |
2480 : | + | ||
2481 : | Improved error messages in *ml-ulex* for unclosed strings. Also made | ||
2482 : | documentation improvements. | ||
2483 : | + | ||
2484 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2485 : | jhr | 3992 | |
2486 : | //-------------------------------------------------------------------- | ||
2487 : | [2014/10/11]:: | ||
2488 : | + | ||
2489 : | jhr | 4603 | Added `-D_FILE_OFFSET_BITS=64` flag to `x86-linux` makefile. This flag |
2490 : | is necessary to avoid spurious `EOVERFLOW` errors on some versions of | ||
2491 : | jhr | 3992 | Linux. The problem appears to be limited to large file systems that |
2492 : | have more than 2^32^ inodes. | ||
2493 : | + | ||
2494 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2495 : | jhr | 3992 | |
2496 : | //-------------------------------------------------------------------- | ||
2497 : | [2014/09/13]:: | ||
2498 : | + | ||
2499 : | jhr | 4603 | Added `%value` directive to *ml-antlr*; this addition improves the |
2500 : | jhr | 3992 | error repair choices by allowing non-nullary tokens to be inserted |
2501 : | when making repairs. | ||
2502 : | + | ||
2503 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2504 : | jhr | 3992 | |
2505 : | //==================================================================== | ||
2506 : | == Version 110.77; 2014/08/22 | ||
2507 : | |||
2508 : | |||
2509 : | //-------------------------------------------------------------------- | ||
2510 : | jhr | 4002 | [2014/08/21]:: |
2511 : | + | ||
2512 : | jhr | 4603 | Created new `doc` tree in *SML/NJ* repository. Currently this |
2513 : | jhr | 4002 | tree just holds the sources for UNIX-style manual pages for |
2514 : | jhr | 4603 | the command-line tools (fixing bug bugref:35[]). The documentation |
2515 : | jhr | 4002 | is written using the http://asciidoc.org[ASCIIDOC] format. Use |
2516 : | the following *svn* command to checkout a copy of the documentation tree: | ||
2517 : | + | ||
2518 : | [source,sh] | ||
2519 : | ----------- | ||
2520 : | svn co https://smlnj-gforge.cs.uchicago.edu/svn/smlnj/doc/trunk doc | ||
2521 : | ----------- | ||
2522 : | + | ||
2523 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2524 : | jhr | 4002 | |
2525 : | //-------------------------------------------------------------------- | ||
2526 : | jhr | 3992 | [2014/08/19]:: |
2527 : | + | ||
2528 : | Compiling the runtime system on *cygwin* was failing because the file | ||
2529 : | jhr | 4603 | `exceptions.h` was missing. It appears to have been part of previous |
2530 : | jhr | 3992 | versions, so a version has been incorporated verbatim in the |
2531 : | jhr | 4603 | file `runtime/mach-base/cygwin-fault.c` file (fixes bug bugref:125[]). |
2532 : | jhr | 3992 | + |
2533 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2534 : | jhr | 3992 | |
2535 : | //-------------------------------------------------------------------- | ||
2536 : | [2014/08/19]:: | ||
2537 : | + | ||
2538 : | jhr | 4603 | Added the `actionToString'` and `repairToString'` functions |
2539 : | to the `AntlrRepair` structure. These functions allow one to | ||
2540 : | jhr | 3992 | specialize the printing of tokens based on whether they are |
2541 : | being added or deleted. | ||
2542 : | + | ||
2543 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2544 : | jhr | 3992 | |
2545 : | //-------------------------------------------------------------------- | ||
2546 : | [2014/08/17]:: | ||
2547 : | + | ||
2548 : | jhr | 4603 | Added patches to support `OpenBSD` on `PowerPC`. The patches were |
2549 : | contributed by Jasper Lievisse Adriaanse (fixes bug bugref:124[]). | ||
2550 : | jhr | 3992 | + |
2551 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2552 : | jhr | 3992 | |
2553 : | //-------------------------------------------------------------------- | ||
2554 : | [2014/08/17]:: | ||
2555 : | + | ||
2556 : | jhr | 4603 | Use `mkstemp` to implement `OS.FileSys.tmpName()` on systems that support |
2557 : | it (should be all modern versions of *Unix*). This change fixes bug bugref:128[]. | ||
2558 : | jhr | 3992 | (Thanks to Johannes 5 Joemann). |
2559 : | + | ||
2560 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2561 : | jhr | 3992 | |
2562 : | //-------------------------------------------------------------------- | ||
2563 : | [2014/08/17]:: | ||
2564 : | + | ||
2565 : | jhr | 4603 | Fixed a bug in `IntInf.~>>`, which did not handle negative arguments |
2566 : | correctly (bug bugref:110[]). | ||
2567 : | jhr | 3992 | + |
2568 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2569 : | jhr | 3992 | |
2570 : | //-------------------------------------------------------------------- | ||
2571 : | [2014/08/14]:: | ||
2572 : | + | ||
2573 : | Fixed a problem in the CPS contraction phase. An optimization that | ||
2574 : | eliminates construction of a record that already exists was not | ||
2575 : | jhr | 4603 | checking that the existing record was the same record kind (bug bugref:119[]). |
2576 : | jhr | 3992 | + |
2577 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2578 : | jhr | 3992 | |
2579 : | //-------------------------------------------------------------------- | ||
2580 : | [2014/07/28]:: | ||
2581 : | + | ||
2582 : | jhr | 4603 | Switch to using `MAP_ANONYMOUS` to allocate memory on Linux systems. |
2583 : | This change avoids problems when `"/dev"` does not support execute | ||
2584 : | jhr | 3992 | permission (as seems to be the case with some versions of *Linux* |
2585 : | jhr | 4603 | running on ChromeBooks; bug bugref:120[]). |
2586 : | jhr | 3992 | + |
2587 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2588 : | jhr | 3992 | |
2589 : | //-------------------------------------------------------------------- | ||
2590 : | [2014/06/28]:: | ||
2591 : | + | ||
2592 : | jhr | 4603 | Fix for bug bugref:127[] (Crash on *Windows* with `OS.Process.system`). |
2593 : | jhr | 3992 | + |
2594 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2595 : | jhr | 3992 | |
2596 : | //-------------------------------------------------------------------- | ||
2597 : | [2014/06/07]:: | ||
2598 : | + | ||
2599 : | jhr | 4603 | Fixed a long-standing bug in `Socket.recvVec`, which prevented the result |
2600 : | jhr | 3992 | from being used in a string pattern match (thanks to Vesa Norrman |
2601 : | for the fix). | ||
2602 : | + | ||
2603 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2604 : | jhr | 3992 | |
2605 : | //-------------------------------------------------------------------- | ||
2606 : | [2014/05/01]:: | ||
2607 : | + | ||
2608 : | Fixed minor issue in an error message; type variable name should be | ||
2609 : | jhr | 4603 | printed with leading `'`. |
2610 : | jhr | 3992 | + |
2611 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2612 : | jhr | 3992 | |
2613 : | //-------------------------------------------------------------------- | ||
2614 : | [2013/11/25]:: | ||
2615 : | + | ||
2616 : | jhr | 4603 | Added `PackWord`{`16`,`32`}{`Big`,`Little`} structures |
2617 : | to the `Unsafe` module. This change makes the `UNSAFE` signature | ||
2618 : | jhr | 3992 | closer to the http://mlton.org[*MLton*] version, although we |
2619 : | jhr | 4603 | still need to add the `PackReal` structures. |
2620 : | jhr | 3992 | + |
2621 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2622 : | jhr | 3992 | |
2623 : | //==================================================================== | ||
2624 : | == Version 110.76; 2013/07/01 | ||
2625 : | |||
2626 : | |||
2627 : | //-------------------------------------------------------------------- | ||
2628 : | [2013/06/04]:: | ||
2629 : | + | ||
2630 : | jhr | 4603 | Fix bug bugref:115[] (`BinPrimIO` writer method `getPos` does not |
2631 : | work under CML). Just needed to port the position update from `mkReader` | ||
2632 : | code to the `mkWriter` code. | ||
2633 : | jhr | 3992 | + |
2634 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
2635 : | jhr | 3992 | |
2636 : | //-------------------------------------------------------------------- | ||
2637 : | [2013/06/04]:: | ||
2638 : | + | ||
2639 : | jhr | 4603 | Fix bug bugref:111[] (`Socket.acceptNB` returns somewhat broken sockets). |
2640 : | The problem was that under Win32, sockets returned from `accept` inherit | ||
2641 : | jhr | 3992 | their parents' non-blocking status, whereas on *UNIX* they are always |
2642 : | blocking. | ||
2643 : | + | ||
2644 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
2645 : | jhr | 3992 | |
2646 : | //-------------------------------------------------------------------- | ||
2647 : | [2013/05/20]:: | ||
2648 : | + | ||
2649 : | jhr | 4603 | Fix bug bugref:117[] (`BinIO.openAppend` raises `IO` on non-existent file). |
2650 : | jhr | 3992 | We were opening the file for append if it existed but not creating it |
2651 : | if it did not exist. | ||
2652 : | + | ||
2653 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
2654 : | jhr | 3992 | |
2655 : | //-------------------------------------------------------------------- | ||
2656 : | [2013/05/02]:: | ||
2657 : | + | ||
2658 : | jhr | 4603 | Fix bug bugref:116[] (`Socket.sameDesc` raises `Match` exception). |
2659 : | The problem is that on Windows the `iodesc` datatype (defined in | ||
2660 : | `Basis/Implementation/Win32/pre-os.sml`) has both an `IODesc` constructor | ||
2661 : | and a `SockDesc` constructor. Updated the code in `Win32/os-io.sml` to | ||
2662 : | handle the `SockDesc` constructor. | ||
2663 : | jhr | 3992 | + |
2664 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2665 : | jhr | 3992 | |
2666 : | //-------------------------------------------------------------------- | ||
2667 : | [2013/04/19]:: | ||
2668 : | + | ||
2669 : | jhr | 4603 | Fix bug bugref:113[] (Socket.select waits exactly twice the indicated timeout) |
2670 : | jhr | 3992 | + |
2671 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2672 : | jhr | 3992 | |
2673 : | //-------------------------------------------------------------------- | ||
2674 : | [2013/01/19]:: | ||
2675 : | + | ||
2676 : | jhr | 4603 | Fix AMD64 code generator to properly sign-extend arguments to `IDIVQ`. |
2677 : | jhr | 3992 | + |
2678 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
2679 : | jhr | 3992 | |
2680 : | //-------------------------------------------------------------------- | ||
2681 : | [2012/10/20]:: | ||
2682 : | + | ||
2683 : | jhr | 4603 | Fix bug bugref:108[] (off-by-one error in `Util/dynamic-array.sml`; |
2684 : | jhr | 3992 | iterators crash) |
2685 : | + | ||
2686 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2687 : | jhr | 3992 | |
2688 : | //-------------------------------------------------------------------- | ||
2689 : | [2012/10/20]:: | ||
2690 : | + | ||
2691 : | jhr | 4603 | Fix bug bugref:107[] (Bogus `Int64` comparison operators) |
2692 : | jhr | 3992 | + |
2693 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2694 : | jhr | 3992 | |
2695 : | //==================================================================== | ||
2696 : | == Version 110.75; 2012/10/01 | ||
2697 : | |||
2698 : | |||
2699 : | //-------------------------------------------------------------------- | ||
2700 : | [2012/09/28]:: | ||
2701 : | + | ||
2702 : | jhr | 4603 | Fixed bug bugref:92[]. `IntInf.scan` now handles the "`0x`" prefix |
2703 : | correctly. Also made minor improvements to the `NumScan` module. | ||
2704 : | jhr | 3992 | + |
2705 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2706 : | jhr | 3992 | |
2707 : | //-------------------------------------------------------------------- | ||
2708 : | [2012/09/24]:: | ||
2709 : | + | ||
2710 : | jhr | 4603 | Added `Base64` module to *SML/NJ Library* to support encoding and decoding |
2711 : | `Word8` vectors as *base64* strings. | ||
2712 : | jhr | 3992 | + |
2713 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2714 : | jhr | 3992 | |
2715 : | //-------------------------------------------------------------------- | ||
2716 : | [2012/09/23]:: | ||
2717 : | + | ||
2718 : | jhr | 4603 | Additions to the *SML/NJ Library*. Added `exists`, `existsi`, `all`, |
2719 : | and `alli` functions to `ORD_MAP` signature and implementations, | ||
2720 : | and added `all` function to `ORD_SET` signature and implementations. | ||
2721 : | jhr | 3992 | + |
2722 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2723 : | jhr | 3992 | |
2724 : | //-------------------------------------------------------------------- | ||
2725 : | [2012/09/21]:: | ||
2726 : | + | ||
2727 : | jhr | 4603 | Bug fix in *ml-antlr* to ensure that the generated `toString` function |
2728 : | jhr | 3992 | for tokens is strictly legal *SML* code (_i.e._, non-printing characters |
2729 : | and *UTF8* multibyte sequences are properly escaped). | ||
2730 : | + | ||
2731 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2732 : | jhr | 3992 | |
2733 : | //-------------------------------------------------------------------- | ||
2734 : | [2012/09/11]:: | ||
2735 : | + | ||
2736 : | jhr | 4603 | Added `getu` function to `ULexBuffer` as a way to improve *ml-ulex* |
2737 : | jhr | 3992 | performance. This addition allows a fastpath for processing ASCII |
2738 : | characters, which improved lexer performance by 3-4%. | ||
2739 : | + | ||
2740 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2741 : | jhr | 3992 | |
2742 : | //-------------------------------------------------------------------- | ||
2743 : | [2012/08/02]:: | ||
2744 : | + | ||
2745 : | jhr | 4603 | Fixed bugs bugref:89[] and bugref:96[]: Build Failure with *Xcode 4.3* |
2746 : | jhr | 3992 | Also removed build support for *MacOS X* pre-10.5 (Leopard) on *PPC* and |
2747 : | pre-10.6 (Snow Leopard) on Intel. | ||
2748 : | + | ||
2749 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2750 : | jhr | 3992 | |
2751 : | //-------------------------------------------------------------------- | ||
2752 : | [2012/02/05]:: | ||
2753 : | + | ||
2754 : | jhr | 4603 | Fixed bug bugref:88[]. The check for valid arcs on *Unix* systems now allows |
2755 : | jhr | 3992 | any character other than slash or nul. |
2756 : | + | ||
2757 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2758 : | jhr | 3992 | |
2759 : | //==================================================================== | ||
2760 : | == Version 110.74; 2012/01/20 | ||
2761 : | |||
2762 : | |||
2763 : | //-------------------------------------------------------------------- | ||
2764 : | [2012/01/20]:: | ||
2765 : | + | ||
2766 : | jhr | 4603 | Fixed implementation of `Real.signBit` on little-endian machines. |
2767 : | jhr | 3992 | + |
2768 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2769 : | jhr | 3992 | |
2770 : | //-------------------------------------------------------------------- | ||
2771 : | [2012/01/19]:: | ||
2772 : | + | ||
2773 : | jhr | 4603 | 1) Fix for bug bugref:60[] |
2774 : | recalculate strictness for `DEFtyc`s in functor bodies when functor | ||
2775 : | is applied (`Elaborator/modules/evalent.sml`) | ||
2776 : | jhr | 3992 | + |
2777 : | jhr | 4603 | 2) Fix for bug bugref:77[] |
2778 : | jhr | 3992 | separate ast representations for datatypes and datatype replications |
2779 : | in decs and specs (multiple files) | ||
2780 : | + | ||
2781 : | 3) set version to 110.74 | ||
2782 : | + | ||
2783 : | jhr | 4603 | Details in `NOTES/changes/dbm_2012_1`. |
2784 : | jhr | 3992 | + |
2785 : | jhr | 4603 | owner:cs.uchicago.edu/~dbm[Dave MacQueen] |
2786 : | jhr | 3992 | |
2787 : | //-------------------------------------------------------------------- | ||
2788 : | [2012/01/12]:: | ||
2789 : | + | ||
2790 : | jhr | 4603 | 1. Change of `SourceMap` interface. |
2791 : | jhr | 3992 | related to fix of off-by-one error in lexer (committed earlier?), |
2792 : | and cleanup of *noweb* code added by Norman Ramsey many years | ||
2793 : | ago (but little used today). | ||
2794 : | + | ||
2795 : | jhr | 4603 | 2. Slight cleanup of match compiler, eliminating `compiler/FLINT/tempexpn.sml` |
2796 : | jhr | 3992 | file that was part of unused implementation of pattern templates (pattern macros). |
2797 : | + | ||
2798 : | 3. Modification of type checker to add "culprit tracking" for | ||
2799 : | improved type error messages (printing of additional culprit | ||
2800 : | jhr | 4603 | information is controlled by `ElabControl.showTypeErrorCulprits` |
2801 : | jhr | 3992 | flag, default false, added in revision 3652). The culprit tracking needs to be debugged |
2802 : | and improved, and the presentation of the culprits needs to be done better. | ||
2803 : | + | ||
2804 : | jhr | 4603 | Details in `NOTES/changes/dbm_2012_1`. |
2805 : | jhr | 3992 | + |
2806 : | jhr | 4603 | owner:cs.uchicago.edu/~dbm[Dave MacQueen] |
2807 : | jhr | 3992 | |
2808 : | //-------------------------------------------------------------------- | ||
2809 : | [2011/11/25]:: | ||
2810 : | + | ||
2811 : | jhr | 4603 | Bug fixes for `Unsafe.blastRead` (bug bugref:76[]): |
2812 : | jhr | 3992 | . proper error handling when reading from memory and there are |
2813 : | not enough bytes. | ||
2814 : | . pass correct data pointer and length to BlastIn (code was using | ||
2815 : | old macros). | ||
2816 : | + | ||
2817 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2818 : | jhr | 3992 | |
2819 : | //-------------------------------------------------------------------- | ||
2820 : | [2011/11/25]:: | ||
2821 : | + | ||
2822 : | Added hash-table-based implementation of sets to SML/NJ Library. | ||
2823 : | + | ||
2824 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2825 : | jhr | 3992 | |
2826 : | //-------------------------------------------------------------------- | ||
2827 : | [2011/10/25]:: | ||
2828 : | + | ||
2829 : | jhr | 4216 | Better error reporting under 32-bit linux for the missing dpkg |
2830 : | jhr | 4603 | support (bug bugref:70[]). |
2831 : | Enable 3.x kernels to build (bugs bugref:80[], bugref:81[], bugref:83[]). | ||
2832 : | jhr | 3992 | + |
2833 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
2834 : | jhr | 3992 | |
2835 : | //-------------------------------------------------------------------- | ||
2836 : | [2011/05/23]:: | ||
2837 : | + | ||
2838 : | Added new S-expression library to SML/NJ Library | ||
2839 : | (contributed by Damon Wang) | ||
2840 : | + | ||
2841 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2842 : | jhr | 3992 | |
2843 : | //-------------------------------------------------------------------- | ||
2844 : | [2011/05/17]:: | ||
2845 : | + | ||
2846 : | Fixed bug in JSON scanner (SML/NJ Library). It didn't handle escaped | ||
2847 : | backslash or double quote correctly. | ||
2848 : | + | ||
2849 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2850 : | jhr | 3992 | |
2851 : | //==================================================================== | ||
2852 : | == Version 110.73; 2011/05/13 | ||
2853 : | |||
2854 : | |||
2855 : | //-------------------------------------------------------------------- | ||
2856 : | [2011/05/10]:: | ||
2857 : | + | ||
2858 : | Added boolean literals (true and false) to the conditional-expression | ||
2859 : | syntax in CM. Thus, you can write | ||
2860 : | + | ||
2861 : | .................... | ||
2862 : | #if true | ||
2863 : | structure Foo | ||
2864 : | #endif | ||
2865 : | .................... | ||
2866 : | + | ||
2867 : | in a CM file. This change is meant to make it easier to use *autoconf* | ||
2868 : | to configure the build process of an SML application. | ||
2869 : | + | ||
2870 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2871 : | jhr | 3992 | |
2872 : | //-------------------------------------------------------------------- | ||
2873 : | [2011/05/09]:: | ||
2874 : | + | ||
2875 : | jhr | 4603 | Added missing `String.scan` function (bug bugref:69[]). This also |
2876 : | fixes the handling of certain corner cases by `String.fromString`. | ||
2877 : | jhr | 3992 | + |
2878 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2879 : | jhr | 3992 | |
2880 : | //-------------------------------------------------------------------- | ||
2881 : | [2011/05/03]:: | ||
2882 : | + | ||
2883 : | jhr | 4603 | Added the `RTDSC` and `RTDSCP` instructions to the amd64 code generator. |
2884 : | jhr | 3992 | + |
2885 : | jhr | 4603 | owner:www.mpi-sws.org/~mrainey[Mike Rainey] |
2886 : | jhr | 3992 | |
2887 : | //-------------------------------------------------------------------- | ||
2888 : | [2011/04/08]:: | ||
2889 : | + | ||
2890 : | jhr | 4603 | Added fix for comments in code bug (bug bugref:63[]). |
2891 : | jhr | 3992 | Thanks to Michael Norrish. |
2892 : | + | ||
2893 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2894 : | jhr | 3992 | |
2895 : | //-------------------------------------------------------------------- | ||
2896 : | [2011/04/08]:: | ||
2897 : | + | ||
2898 : | jhr | 4603 | Fixed bug in `Socket.acceptNB` (bug bugref:59[]) |
2899 : | jhr | 3992 | + |
2900 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2901 : | jhr | 3992 | |
2902 : | //-------------------------------------------------------------------- | ||
2903 : | [2011/03/31]:: | ||
2904 : | + | ||
2905 : | jhr | 4603 | Fixed syntax error in *ml-lex* compatibility mode (bug bugref:49[]) |
2906 : | jhr | 3992 | + |
2907 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2908 : | jhr | 3992 | |
2909 : | //-------------------------------------------------------------------- | ||
2910 : | [2011/03/22]:: | ||
2911 : | + | ||
2912 : | jhr | 4603 | Update `_arch-n-opsys` script for Mac OS X Lion (10.7). |
2913 : | jhr | 3992 | + |
2914 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2915 : | jhr | 3992 | |
2916 : | //-------------------------------------------------------------------- | ||
2917 : | [2011/02/18]:: | ||
2918 : | + | ||
2919 : | jhr | 4603 | Added `Barriers` module to CML. |
2920 : | jhr | 3992 | + |
2921 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2922 : | jhr | 3992 | |
2923 : | //-------------------------------------------------------------------- | ||
2924 : | [2011/02/10]:: | ||
2925 : | + | ||
2926 : | Fixed *ml-yacc* examples to respect the changed signatures with respect | ||
2927 : | jhr | 4603 | to `TextIO.inputLine`. |
2928 : | jhr | 3992 | + |
2929 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
2930 : | jhr | 3992 | |
2931 : | //-------------------------------------------------------------------- | ||
2932 : | [2010/09/16]:: | ||
2933 : | + | ||
2934 : | jhr | 4603 | Changed the *Win32* implementation of `validArc` to support directories |
2935 : | jhr | 3992 | with extended characters (umlauts, etc.). |
2936 : | + | ||
2937 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
2938 : | jhr | 3992 | |
2939 : | //-------------------------------------------------------------------- | ||
2940 : | [2010/09/16]:: | ||
2941 : | + | ||
2942 : | Fixed the *Win32* socket and polling implementation to work correctly | ||
2943 : | jhr | 4603 | with CML. Signature of `poll` was wrong and didn't handle sockets at all. |
2944 : | jhr | 3992 | + |
2945 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
2946 : | jhr | 3992 | |
2947 : | //-------------------------------------------------------------------- | ||
2948 : | [2010/06/16]:: | ||
2949 : | + | ||
2950 : | jhr | 4603 | Fixed `Real.toString` and `Real.fmt` to include sign for negative zero. |
2951 : | jhr | 3992 | + |
2952 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2953 : | jhr | 3992 | |
2954 : | //-------------------------------------------------------------------- | ||
2955 : | [2010/03/23]:: | ||
2956 : | + | ||
2957 : | jhr | 4603 | Fixed the bug with *Win32* calls to `OS.Process.system` not quoting |
2958 : | jhr | 4216 | the string. |
2959 : | jhr | 3992 | + |
2960 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
2961 : | jhr | 3992 | |
2962 : | //-------------------------------------------------------------------- | ||
2963 : | [2010/02/11]:: | ||
2964 : | + | ||
2965 : | Applied patch for building on more recent versions of *NetBSD* | ||
2966 : | jhr | 4603 | (bug bugref:39[]). |
2967 : | jhr | 3992 | + |
2968 : | jhr | 4603 | owner:jonriehl.com/[Jon Riehl] |
2969 : | jhr | 3992 | |
2970 : | //==================================================================== | ||
2971 : | == Version 110.72; 2010/02/02 | ||
2972 : | |||
2973 : | |||
2974 : | //-------------------------------------------------------------------- | ||
2975 : | [2009/12/20]:: | ||
2976 : | + | ||
2977 : | jhr | 4603 | Fixed performance bugs in `List` module by making `@` and `foldr` be |
2978 : | tail recursive (bug bugref:51[]). | ||
2979 : | jhr | 3992 | + |
2980 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
2981 : | jhr | 3992 | |
2982 : | //-------------------------------------------------------------------- | ||
2983 : | [2009/12/11]:: | ||
2984 : | + | ||
2985 : | jhr | 4603 | Fixed the *Win32* unable to print long strings bug (bug bugref:37[]). |
2986 : | jhr | 3992 | + |
2987 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
2988 : | jhr | 3992 | |
2989 : | //-------------------------------------------------------------------- | ||
2990 : | [2009/12/10]:: | ||
2991 : | + | ||
2992 : | Fixed an overrun during major GC. If the string arena was nearly | ||
2993 : | full, it was possible for alignment padding added during copy to | ||
2994 : | the to-space to overrun the allocated size. | ||
2995 : | + | ||
2996 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
2997 : | jhr | 3992 | |
2998 : | //-------------------------------------------------------------------- | ||
2999 : | [2009/11/18]:: | ||
3000 : | + | ||
3001 : | The *ml-antlr* and *ml-ulex* programs have been ported to build under | ||
3002 : | mlton. | ||
3003 : | + | ||
3004 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
3005 : | jhr | 3992 | |
3006 : | //-------------------------------------------------------------------- | ||
3007 : | [2009/11/17]:: | ||
3008 : | + | ||
3009 : | jhr | 4603 | Added `%header` directive to the *ml-ulex* scanner generator. Also |
3010 : | jhr | 3992 | updated the documentation. |
3011 : | + | ||
3012 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
3013 : | jhr | 3992 | |
3014 : | //-------------------------------------------------------------------- | ||
3015 : | [2009/11/17]:: | ||
3016 : | + | ||
3017 : | jhr | 4603 | Added `@SMLsuffix` flag to *sml* command. This flag can be used to get |
3018 : | jhr | 3992 | the suffix for heap files. |
3019 : | + | ||
3020 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
3021 : | jhr | 3992 | |
3022 : | //-------------------------------------------------------------------- | ||
3023 : | [2009/11/17]:: | ||
3024 : | + | ||
3025 : | jhr | 4603 | Added `--strict-sml` flag to *ml-ulex* for *MLton* compatibility. |
3026 : | jhr | 3992 | + |
3027 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
3028 : | jhr | 3992 | |
3029 : | //-------------------------------------------------------------------- | ||
3030 : | [2009/11/10]:: | ||
3031 : | + | ||
3032 : | jhr | 4603 | Added `%header` directive to the *ml-antlr* parser generator. Also |
3033 : | jhr | 3992 | updated the documentation. |
3034 : | + | ||
3035 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
3036 : | jhr | 3992 | |
3037 : | //==================================================================== | ||
3038 : | == Version 110.71; 2009/09/16 | ||
3039 : | |||
3040 : | |||
3041 : | //-------------------------------------------------------------------- | ||
3042 : | [2009/09/13]:: | ||
3043 : | + | ||
3044 : | Changes to support compiling the runtime system on Mac OS X 10.6 | ||
3045 : | (aka Snow Leopard). | ||
3046 : | + | ||
3047 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
3048 : | jhr | 3992 | |
3049 : | //-------------------------------------------------------------------- | ||
3050 : | [2009/08/19]:: | ||
3051 : | + | ||
3052 : | Fixed a bug in the register-spill generator that is part of the MLRISC | ||
3053 : | jhr | 4603 | register allocator. The problem was that the code in `RASpillWithRenaming` |
3054 : | jhr | 4216 | functor assumed incorrectly that dedicated registers would appear in |
3055 : | jhr | 4603 | def/use information generated by `ClusterRA`. Thanks to Allen Leung for |
3056 : | jhr | 3992 | helping with this bug. |
3057 : | + | ||
3058 : | jhr | 4603 | owner:cs.uchicago.edu/~mrainey[Mike Rainey] |
3059 : | jhr | 3992 | |
3060 : | //-------------------------------------------------------------------- | ||
3061 : | [2009/07/09]:: | ||
3062 : | + | ||
3063 : | Removed redundant implementations of various top-level operations by | ||
3064 : | jhr | 4603 | consolidating them in `base/system/smlnj/init/pervasive.sml`. This |
3065 : | change also fixes a bug in that the top-level version of `round` was | ||
3066 : | jhr | 3992 | incorrect. |
3067 : | + | ||
3068 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
3069 : | jhr | 3992 | |
3070 : | //==================================================================== | ||
3071 : | == Version 110.70; 2009/06/15 | ||
3072 : | |||
3073 : | |||
3074 : | //-------------------------------------------------------------------- | ||
3075 : | [2009/06/12]:: | ||
3076 : | + | ||
3077 : | -- | ||
3078 : | 1. Corrected problem in config/actions that led to the so-called | ||
3079 : | "unpickling bug" which appeared in version 110.68. | ||
3080 : | + | ||
3081 : | 2. Provided fix for the 64-bit pattern match bug. | ||
3082 : | -- | ||
3083 : | + | ||
3084 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3085 : | jhr | 3992 | |
3086 : | //-------------------------------------------------------------------- | ||
3087 : | [2009/03/21]:: | ||
3088 : | + | ||
3089 : | jhr | 4603 | Fixed bug in `Int32.fmt` when the argument was the minimum int and the |
3090 : | radix was something other than `DEC`. | ||
3091 : | jhr | 3992 | + |
3092 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
3093 : | jhr | 3992 | |
3094 : | //-------------------------------------------------------------------- | ||
3095 : | [2009/02/21]:: | ||
3096 : | + | ||
3097 : | jhr | 4603 | Fixed bugs in how *ml-antlr* parsed ML types in `%tokens` specifications. |
3098 : | jhr | 3992 | + |
3099 : | jhr | 4603 | owner:smlnj.org[Aaron Turon] |
3100 : | jhr | 3992 | |
3101 : | //-------------------------------------------------------------------- | ||
3102 : | [2009/01/13]:: | ||
3103 : | + | ||
3104 : | Picking up some additional fixes for 110.69, including a fix for | ||
3105 : | spaces in CM file paths. | ||
3106 : | + | ||
3107 : | jhr | 4603 | owner:www.jonriehl.com/[Jon Riehl] |
3108 : | jhr | 3992 | |
3109 : | //==================================================================== | ||
3110 : | == Version 110.69; 2008/12/22 | ||
3111 : | |||
3112 : | |||
3113 : | //-------------------------------------------------------------------- | ||
3114 : | [2008/12/06]:: | ||
3115 : | + | ||
3116 : | Re-enabled some CPS optimizations (first_contract and eta). The most | ||
3117 : | jhr | 4603 | important effect of this change is to make uses of `SMLofNJ.Cont.capture` |
3118 : | jhr | 3992 | be properly tail recursive. |
3119 : | + | ||
3120 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3121 : | jhr | 3992 | |
3122 : | //-------------------------------------------------------------------- | ||
3123 : | [2008/12/03]:: | ||
3124 : | + | ||
3125 : | jhr | 4216 | New concurrency-related instructions for x86 and amd64 code |
3126 : | jhr | 3992 | generators. |
3127 : | -- | ||
3128 : | jhr | 4603 | - `PAUSE`: Notify the CPU that the program is spin waiting. |
3129 : | - `MFENCE`: memory fence for reads and writes. | ||
3130 : | - `SFENCE`: memory fence for writes. | ||
3131 : | - `LFENCE`: memory fence for reads. | ||
3132 : | jhr | 3992 | -- |
3133 : | + | ||
3134 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3135 : | jhr | 3992 | |
3136 : | //-------------------------------------------------------------------- | ||
3137 : | [2008/12/02]:: | ||
3138 : | + | ||
3139 : | Added makefile and other support for building runtime on *OpenBSD*. | ||
3140 : | + | ||
3141 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3142 : | jhr | 3992 | |
3143 : | //==================================================================== | ||
3144 : | == Version 110.68; 2008/08/13 | ||
3145 : | |||
3146 : | |||
3147 : | //-------------------------------------------------------------------- | ||
3148 : | [2008/08/11]:: | ||
3149 : | + | ||
3150 : | Minor fix to *ml-ulex* backend for regexps that match any character | ||
3151 : | jhr | 4216 | and perform a single action. Previously the emitted code would |
3152 : | jhr | 3992 | not allow the regexps to match any character at all. |
3153 : | + | ||
3154 : | jhr | 4603 | owner:smlnj.org[Aaron Turon] |
3155 : | jhr | 3992 | |
3156 : | //-------------------------------------------------------------------- | ||
3157 : | [2008/08/05]:: | ||
3158 : | + | ||
3159 : | Added build support for *OpenBSD* (thanks to Brian O'Hanlon). | ||
3160 : | + | ||
3161 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3162 : | jhr | 3992 | |
3163 : | //-------------------------------------------------------------------- | ||
3164 : | [2008/07/12]:: | ||
3165 : | + | ||
3166 : | jhr | 4603 | Fixed `Int64.fromString` to use base-10. |
3167 : | jhr | 3992 | + |
3168 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3169 : | jhr | 3992 | |
3170 : | //-------------------------------------------------------------------- | ||
3171 : | [2008/04/12]:: | ||
3172 : | + | ||
3173 : | Various updates to the ml-lpt tree. The documentation has been updated; | ||
3174 : | bugs in the parsing of negation and character classes in *ml-ulex* have | ||
3175 : | been fixed; and changes have been made to make the *ml-lpt* tools more | ||
3176 : | compatible with *MLton* (and other SML implementations). Thanks to | ||
3177 : | Matthew Fluet and Aaron Turon for their patches. | ||
3178 : | + | ||
3179 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3180 : | jhr | 3992 | |
3181 : | //-------------------------------------------------------------------- | ||
3182 : | [2008/20/04]:: | ||
3183 : | + | ||
3184 : | Implemented timer-based profiling on Windows, with behavior as close | ||
3185 : | to the *nix ITIMER-based profiling as possible. | ||
3186 : | + | ||
3187 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
3188 : | jhr | 3992 | |
3189 : | //-------------------------------------------------------------------- | ||
3190 : | [2008/07/04]:: | ||
3191 : | + | ||
3192 : | Finished off the Windows subset of the basis library. Added process | ||
3193 : | support and various configuration and system identification utils. | ||
3194 : | + | ||
3195 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
3196 : | jhr | 3992 | |
3197 : | //-------------------------------------------------------------------- | ||
3198 : | [2008/03/18]:: | ||
3199 : | + | ||
3200 : | Major changes to the RegExp library: see smlnj-lib/CHANGES for details. | ||
3201 : | + | ||
3202 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3203 : | jhr | 3992 | |
3204 : | //-------------------------------------------------------------------- | ||
3205 : | [2008/02/14]:: | ||
3206 : | + | ||
3207 : | Added the Windows Status structure | ||
3208 : | + | ||
3209 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
3210 : | jhr | 3992 | |
3211 : | //-------------------------------------------------------------------- | ||
3212 : | [2008/02/14]:: | ||
3213 : | + | ||
3214 : | Added the Windows DDE structure | ||
3215 : | + | ||
3216 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
3217 : | jhr | 3992 | |
3218 : | //-------------------------------------------------------------------- | ||
3219 : | [2008/02/05]:: | ||
3220 : | + | ||
3221 : | Added the Windows Config structure | ||
3222 : | + | ||
3223 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
3224 : | jhr | 3992 | |
3225 : | //-------------------------------------------------------------------- | ||
3226 : | [2008/01/31]:: | ||
3227 : | + | ||
3228 : | Added outline of the Windows basis library and the basic registry | ||
3229 : | functionality. | ||
3230 : | + | ||
3231 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
3232 : | jhr | 3992 | |
3233 : | //-------------------------------------------------------------------- | ||
3234 : | [2008/01/23]:: | ||
3235 : | + | ||
3236 : | Fixed the amd64 code generator to compile with the current MLRISC. | ||
3237 : | + | ||
3238 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3239 : | jhr | 3992 | |
3240 : | //-------------------------------------------------------------------- | ||
3241 : | [2007/11/26]:: | ||
3242 : | + | ||
3243 : | *nlffi* was updated to work on Windows. It needed to pass in the correct | ||
3244 : | value for the name of the kernel32 DLL to obtain 'base' bindings. | ||
3245 : | Additionally updated the README for the most basic *nlffi* sample with | ||
3246 : | what you need to do on MacOSX and on Windows to make it work. | ||
3247 : | + | ||
3248 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
3249 : | jhr | 3992 | |
3250 : | //-------------------------------------------------------------------- | ||
3251 : | [2007/11/21]:: | ||
3252 : | + | ||
3253 : | jhr | 4603 | Overwrite the `SMLNJ_HOME` environment variable on installation |
3254 : | jhr | 3992 | Properly change the package code so that subsequent version |
3255 : | installations prompt for uninstall (instead of 'repair/remove') | ||
3256 : | + | ||
3257 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
3258 : | jhr | 3992 | |
3259 : | //-------------------------------------------------------------------- | ||
3260 : | [2007/11/14]:: | ||
3261 : | + | ||
3262 : | jhr | 4603 | Cleaned up `WININSTALL` file for new MSI-based setup. |
3263 : | jhr | 3992 | + |
3264 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
3265 : | jhr | 3992 | |
3266 : | //==================================================================== | ||
3267 : | == Version 110.67; 2007/11/13 | ||
3268 : | |||
3269 : | |||
3270 : | //-------------------------------------------------------------------- | ||
3271 : | [2007/11/12]:: | ||
3272 : | + | ||
3273 : | Ensure that the size of the allocation space is at least 128K. | ||
3274 : | + | ||
3275 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3276 : | jhr | 3992 | |
3277 : | //-------------------------------------------------------------------- | ||
3278 : | [2007/11/05]:: | ||
3279 : | + | ||
3280 : | Fixed type error in *ml-lpt* library that occurs when compiling | ||
3281 : | jhr | 4603 | against a basis that was compiled with the `USE_64_BIT_POSITIONS` |
3282 : | jhr | 3992 | symbol set. |
3283 : | (Thanks to Johannes Joemann) | ||
3284 : | + | ||
3285 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3286 : | jhr | 3992 | |
3287 : | //-------------------------------------------------------------------- | ||
3288 : | [2007/11/03]:: | ||
3289 : | + | ||
3290 : | Fixed the amd64 code generator to compile with the current MLRISC. | ||
3291 : | + | ||
3292 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3293 : | jhr | 3992 | |
3294 : | //-------------------------------------------------------------------- | ||
3295 : | [2007/11/02]:: | ||
3296 : | + | ||
3297 : | jhr | 4603 | Made `sml.bat` more resilient to either not having run the installer |
3298 : | and having no `SMLNJ_HOME` set or having just shuffled the directory | ||
3299 : | jhr | 3992 | around. |
3300 : | + | ||
3301 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
3302 : | jhr | 3992 | |
3303 : | //-------------------------------------------------------------------- | ||
3304 : | [2007/11/01]:: | ||
3305 : | + | ||
3306 : | jhr | 4603 | A collection of bug fixes for `machine.sml` in the Reactive library. |
3307 : | jhr | 3992 | (Thanks to Timothy Bourke) |
3308 : | + | ||
3309 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3310 : | jhr | 3992 | |
3311 : | //-------------------------------------------------------------------- | ||
3312 : | [2007/10/28]:: | ||
3313 : | + | ||
3314 : | Patches for Mac OS X 10.5 (Leopard). | ||
3315 : | + | ||
3316 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3317 : | jhr | 3992 | |
3318 : | //-------------------------------------------------------------------- | ||
3319 : | [2007/10/28]:: | ||
3320 : | + | ||
3321 : | Fixed some bugs in the AMD64 floating-point spilling code. | ||
3322 : | + | ||
3323 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3324 : | jhr | 3992 | |
3325 : | //-------------------------------------------------------------------- | ||
3326 : | [2007/10/25]:: | ||
3327 : | + | ||
3328 : | jhr | 4603 | Added support for the atomic `XCHG` instruction. |
3329 : | jhr | 3992 | + |
3330 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3331 : | jhr | 3992 | |
3332 : | //-------------------------------------------------------------------- | ||
3333 : | [2007/10/22]:: | ||
3334 : | + | ||
3335 : | Added AMD64 support for floating-point negation. | ||
3336 : | + | ||
3337 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3338 : | jhr | 3992 | |
3339 : | //-------------------------------------------------------------------- | ||
3340 : | [2007/10/22]:: | ||
3341 : | + | ||
3342 : | Fixed ^C handling in Windows | ||
3343 : | Added a Windows installer | ||
3344 : | Made it possible to build for *Windows* on a mapped drive from Parallels | ||
3345 : | + | ||
3346 : | jhr | 4603 | owner:www.lars.com[Lars Bergstrom] |
3347 : | jhr | 3992 | |
3348 : | //-------------------------------------------------------------------- | ||
3349 : | [2007/10/22]:: | ||
3350 : | + | ||
3351 : | Added AMD64 support for the atomic fetch and add instruction. | ||
3352 : | + | ||
3353 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3354 : | jhr | 3992 | |
3355 : | //-------------------------------------------------------------------- | ||
3356 : | [2007/10/18]:: | ||
3357 : | + | ||
3358 : | jhr | 4603 | The GAS output now favors `p2align` over `align`, since the |
3359 : | jhr | 3992 | former is guaranteed to be consistent over multiple architectures |
3360 : | and the latter is not. | ||
3361 : | + | ||
3362 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3363 : | jhr | 3992 | |
3364 : | //-------------------------------------------------------------------- | ||
3365 : | [2007/10/18]:: | ||
3366 : | + | ||
3367 : | Fixed a bug in register spilling. | ||
3368 : | + | ||
3369 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3370 : | jhr | 3992 | |
3371 : | //-------------------------------------------------------------------- | ||
3372 : | [2007/10/2]:: | ||
3373 : | + | ||
3374 : | Added demo support for AMD64 for quick testing and fixed support for | ||
3375 : | 64-bit label constants. | ||
3376 : | + | ||
3377 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3378 : | jhr | 3992 | |
3379 : | //-------------------------------------------------------------------- | ||
3380 : | [2007/09/20]:: | ||
3381 : | + | ||
3382 : | jhr | 4603 | Added support for the MLRISC `COND` instruction and the x86-64 `CMOVCC` |
3383 : | jhr | 3992 | instruction. |
3384 : | + | ||
3385 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3386 : | jhr | 3992 | |
3387 : | //-------------------------------------------------------------------- | ||
3388 : | [2007/09/17]:: | ||
3389 : | + | ||
3390 : | Fixed an instruction-selection bug when loading 64-bit labels. | ||
3391 : | + | ||
3392 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3393 : | jhr | 3992 | |
3394 : | //-------------------------------------------------------------------- | ||
3395 : | [2007/09/14]:: | ||
3396 : | + | ||
3397 : | jhr | 4603 | Fixed `Elaborator` and `Translate` performance bugs |
3398 : | jhr | 3992 | + |
3399 : | jhr | 4603 | owner:www.cs.uchicago.edu/~gkuan[George Kuan] |
3400 : | jhr | 3992 | |
3401 : | //-------------------------------------------------------------------- | ||
3402 : | [2007/09/12]:: | ||
3403 : | + | ||
3404 : | jhr | 4603 | Fixed `xorl` memory argument bug. |
3405 : | jhr | 3992 | + |
3406 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3407 : | jhr | 3992 | |
3408 : | //-------------------------------------------------------------------- | ||
3409 : | [2007/07/27]:: | ||
3410 : | + | ||
3411 : | jhr | 4603 | Added `f64sgn` (for `Real64.signBit`) as a primop defined |
3412 : | in `MLRiscGen`. `signBit(~0.0)` not handled correctly. | ||
3413 : | jhr | 3992 | + |
3414 : | jhr | 4603 | owner:www.cs.uchicago.edu/~gkuan[George Kuan] |
3415 : | jhr | 3992 | |
3416 : | //-------------------------------------------------------------------- | ||
3417 : | [2007/06/21]:: | ||
3418 : | + | ||
3419 : | jhr | 4603 | Fixed bug in {`TextIO`,`BinIO`}`.StreamIO.endOfStream` that |
3420 : | jhr | 3992 | would incorrectly signal end of stream. |
3421 : | + | ||
3422 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3423 : | jhr | 3992 | |
3424 : | //-------------------------------------------------------------------- | ||
3425 : | [2007/06/12]:: | ||
3426 : | + | ||
3427 : | jhr | 4603 | Eliminated `config/allsources`. The information is now drawn directly |
3428 : | from `config/actions`. | ||
3429 : | jhr | 3992 | + |
3430 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3431 : | jhr | 3992 | |
3432 : | //==================================================================== | ||
3433 : | == Version 110.65; 2007/06/07 | ||
3434 : | |||
3435 : | |||
3436 : | //-------------------------------------------------------------------- | ||
3437 : | [2007/06/06]:: | ||
3438 : | + | ||
3439 : | -- | ||
3440 : | * Aaron: fixed a number of bugs in *ml-ulex*. | ||
3441 : | * Matthias: | ||
3442 : | jhr | 4603 | ** added CM control `cm.force-tools`; this is false by default; |
3443 : | jhr | 3992 | when set to true, then tools like *ml-yacc*, *ml-lex*, *ml-ulex*, etc. |
3444 : | will be forced to run regardless of whether or not their targets | ||
3445 : | are up-to-date | ||
3446 : | jhr | 4603 | ** changed installer code so that `config/install.sh` will re-build |
3447 : | jhr | 3992 | heap images for all tools even if those heap images already existed |
3448 : | -- | ||
3449 : | + | ||
3450 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3451 : | jhr | 3992 | |
3452 : | //-------------------------------------------------------------------- | ||
3453 : | [2007/06/04]:: | ||
3454 : | + | ||
3455 : | jhr | 4603 | After Aaron Turon's bug fix for *ml-ulex* (handling the `^` character |
3456 : | jhr | 3992 | in legacy mode), re-ran the lexer generator on all lex input files |
3457 : | and committed the results. | ||
3458 : | + | ||
3459 : | This should fix the problem with *ckit* and *nlffi* that was reported | ||
3460 : | by Vesa A. Norrman. | ||
3461 : | + | ||
3462 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3463 : | jhr | 3992 | |
3464 : | //==================================================================== | ||
3465 : | == Version 110.64; 2007/05/31 | ||
3466 : | |||
3467 : | |||
3468 : | //-------------------------------------------------------------------- | ||
3469 : | [2007/05/31]:: | ||
3470 : | + | ||
3471 : | 3rd merge of base from primop-branch-3 into the trunk. | ||
3472 : | Additional bug fixes included: | ||
3473 : | + | ||
3474 : | jhr | 4603 | * `Timer.cpu_timer`, etc. type printing corrected (by making |
3475 : | `Timer` have opaque sig constraint in `basis/Implementation/timer.sml`) | ||
3476 : | * Infinite loop in FLINT (`tests/typing/tests/25.sml`) (fix by | ||
3477 : | jhr | 3992 | Stefan Monnier) |
3478 : | + | ||
3479 : | jhr | 4603 | owner:cs.uchicago.edu/~dbm[Dave MacQueen] |
3480 : | jhr | 3992 | |
3481 : | //-------------------------------------------------------------------- | ||
3482 : | [2007/05/31]:: | ||
3483 : | + | ||
3484 : | jhr | 4603 | Fixed some bugs in new Div code in `FLINT/trans/translate.sml`. |
3485 : | jhr | 3992 | + |
3486 : | jhr | 4603 | Also, changed the handling of "no core access": When `translate.sml` |
3487 : | jhr | 3992 | needs access to a core exception at a time when the core has not |
3488 : | jhr | 4603 | been set up yet (this only happens when compiling `system/smlnj/init/`*), |
3489 : | jhr | 3992 | then don't bother generating the corresponding tests. |
3490 : | + | ||
3491 : | The old scheme was to generate a bogus value to be used in place of | ||
3492 : | the exception. Unfortunately, that confuses the plambda type checker. | ||
3493 : | Moreover, it does not do any good, because at runtime we don't expect | ||
3494 : | jhr | 4603 | such an exception to be ever raised. (The code in `system/smlnj/init/`* |
3495 : | jhr | 3992 | has to be written very carefully with this in mind!) |
3496 : | + | ||
3497 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3498 : | jhr | 3992 | |
3499 : | //-------------------------------------------------------------------- | ||
3500 : | [2007/05/29]:: | ||
3501 : | + | ||
3502 : | jhr | 4603 | Added `FSQRT` instructions for the AMD64 code generator. |
3503 : | jhr | 3992 | + |
3504 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3505 : | jhr | 3992 | |
3506 : | //-------------------------------------------------------------------- | ||
3507 : | [2007/05/29]:: | ||
3508 : | + | ||
3509 : | jhr | 4603 | `FLINT/trans/translate.sml` now wraps all `DIV`/`MOD`/`QUOT`/`REM` |
3510 : | jhr | 3992 | operations with an explicit test for zero division. This should |
3511 : | fixe several regressions and makes it possible for downstream optimization | ||
3512 : | phases to treat these operations as "pure" when they are applied to unsigned | ||
3513 : | operands. | ||
3514 : | + | ||
3515 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3516 : | jhr | 3992 | |
3517 : | //-------------------------------------------------------------------- | ||
3518 : | [2007/05/29]:: | ||
3519 : | + | ||
3520 : | Added the new MLRISC code generator for the AMD64. This version, | ||
3521 : | in contrast to the previous one, uses SSE registers and instructions | ||
3522 : | for all floating-point computations. | ||
3523 : | + | ||
3524 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3525 : | jhr | 3992 | |
3526 : | //-------------------------------------------------------------------- | ||
3527 : | [2007/05/29]:: | ||
3528 : | + | ||
3529 : | A number of fixes related to the formatting of dates. These include fixes | ||
3530 : | for bugs #1415 and #1416. We also now correctly handle format characters that | ||
3531 : | lie outside the specified set. | ||
3532 : | + | ||
3533 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3534 : | jhr | 3992 | |
3535 : | //-------------------------------------------------------------------- | ||
3536 : | [2007/05/23]:: | ||
3537 : | + | ||
3538 : | CMB (and CM) now automatically defines the CM "preprocessor" symbol | ||
3539 : | NO_PLUGINS during "makeml -rebuild" or when CM operates in "slave" mode. | ||
3540 : | + | ||
3541 : | jhr | 4603 | (In addition, CMB_REBUILD_MODE is defined for `makeml -rebuild`, |
3542 : | jhr | 3992 | CM_SLAVE_MODE is defined in attached slaves while running CM.make |
3543 : | or CM.rebuild, and CMB_SLAVE_MODE is defined in attached slaves | ||
3544 : | jhr | 4603 | while running `CMB.make`. The point is that the single symbol |
3545 : | jhr | 3992 | NO_PLUGINS is definde in all three cases.) |
3546 : | + | ||
3547 : | I changed the three locations within the sources that get compiled | ||
3548 : | jhr | 4603 | during `CMB.make` where *ml-yacc* or *ml-lex* input is processed: When |
3549 : | jhr | 3992 | NO_PLUGINS defined, then the use of the mlyacc and mllex tools |
3550 : | is bypassed. | ||
3551 : | + | ||
3552 : | When bootstrapping new versions of the compiler, there can be | ||
3553 : | situations where the plugin tools for *ml-yacc* and *ml-lex* (or *ml-ulex*) | ||
3554 : | are not available or otherwise not operational. In this case one can | ||
3555 : | jhr | 4603 | manually define the NO_PLUGINS symbol prior to running `CMB.make()`. To |
3556 : | jhr | 3992 | do so, the following command should be issued at the interactive |
3557 : | prompt: | ||
3558 : | + | ||
3559 : | [source,sml] | ||
3560 : | ------------ | ||
3561 : | #set (CMB.symval "NO_PLUGINS") (SOME 1); | ||
3562 : | ------------ | ||
3563 : | + | ||
3564 : | jhr | 4603 | A `CMB.make` with NO_PLUGINS defined relies on the existence of the |
3565 : | jhr | 3992 | files that normally would be generated by *ml-yacc* and *ml-lex*. |
3566 : | (Copies of these files are in the repository.) | ||
3567 : | + | ||
3568 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3569 : | jhr | 3992 | |
3570 : | //-------------------------------------------------------------------- | ||
3571 : | [2007/5/23]:: | ||
3572 : | + | ||
3573 : | jhr | 4603 | Second merge of base from `primop-branch-3` into the trunk. |
3574 : | jhr | 3992 | Additional bug fixes included: |
3575 : | -- | ||
3576 : | jhr | 4603 | * `Date.scan` and `Date.fromString` fixed; |
3577 : | jhr | 3992 | * Overloading resolution fixed and some type printing problems corrected. |
3578 : | -- | ||
3579 : | + | ||
3580 : | jhr | 4603 | owner:cs.uchicago.edu/~dbm[Dave MacQueen] |
3581 : | jhr | 3992 | |
3582 : | //-------------------------------------------------------------------- | ||
3583 : | [2007/05/23]:: | ||
3584 : | + | ||
3585 : | Changed the installation mechanism for CM tool plugins. These are | ||
3586 : | just libaries and now get installed like ordinary libaries. | ||
3587 : | + | ||
3588 : | There are now a number of new installation targets that give some | ||
3589 : | fine-grain control over what classes and suffixes are known, and what | ||
3590 : | they will map to. | ||
3591 : | jhr | 4603 | See `config/targets` for details. |
3592 : | jhr | 3992 | + |
3593 : | The code that caused plugin installation as part of running a | ||
3594 : | tool's "build" script has been removed. (The build script is for | ||
3595 : | building, not for installing.) | ||
3596 : | + | ||
3597 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3598 : | jhr | 3992 | |
3599 : | //-------------------------------------------------------------------- | ||
3600 : | [2007/05/22]:: | ||
3601 : | + | ||
3602 : | Added a boolean control named cm.tolerate-tool-failures (env. variable | ||
3603 : | name: CM_TOLERATE_TOOL_FAILURES). The default is false and makes | ||
3604 : | CM fail if a shell tool reports a non-success exit status. If | ||
3605 : | the control is set to true, then CM will press on after tool failures | ||
3606 : | in the event that the target files exist (even though they are | ||
3607 : | considered outdated). Turning the control to true can be useful for | ||
3608 : | bootstrapping. | ||
3609 : | + | ||
3610 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3611 : | jhr | 3992 | |
3612 : | //-------------------------------------------------------------------- | ||
3613 : | [2007/05/19]:: | ||
3614 : | + | ||
3615 : | Merge of ml-lpt revisions for 110.64. | ||
3616 : | + | ||
3617 : | The name of several ml-lpt-lib modules has changed: | ||
3618 : | + | ||
3619 : | [grid="none",frame="none",width="50%",cols=">2,^1,<2"] | ||
3620 : | |=============================================== | ||
3621 : | jhr | 4603 | | `Repair` | => | `AntlrRepair` |
3622 : | | `StreamPos` | => | `AntlrStreamPos` | ||
3623 : | | `ErrHandlerFn` | => | `AntlrErrHandler` | ||
3624 : | | `EBNF` | => | `AntlrEBNF` | ||
3625 : | jhr | 3992 | |=============================================== |
3626 : | + | ||
3627 : | The *ml-antlr* specification format has changed: declarations such as | ||
3628 : | jhr | 4603 | `%tokens` and nonterminal definitions can occur *multiple* times in the |
3629 : | jhr | 3992 | same specification. The semantics are such that each new declaration |
3630 : | jhr | 4603 | extends the previous ones. This does not apply to `%start` or `%name`, |
3631 : | jhr | 3992 | of course. |
3632 : | + | ||
3633 : | jhr | 4603 | Importing a grammar via `%import` now includes *all* declarations in from |
3634 : | the imported grammar, except for `%name`, `%entry`, and `%start`. Tokens | ||
3635 : | and nonterminals can be dropped using the new `%dropping` clause of the | ||
3636 : | `%import` directive; the separate `%drop` and `%extend` have been removed. | ||
3637 : | jhr | 3992 | + |
3638 : | jhr | 4603 | We now allow optional type annotations on nonterminals, using the `%nonterms` |
3639 : | jhr | 3992 | directive as in *ml-yacc*. |
3640 : | + | ||
3641 : | jhr | 4603 | The `refcell` construct is now implemented using SML's regular reference |
3642 : | cells, so the `:==` and `!!` notation has been deprecated. | ||
3643 : | jhr | 3992 | + |
3644 : | jhr | 4216 | The *ml-antlr* tool now does much more checking of specifications, and |
3645 : | jhr | 3992 | its error messages have been greatly improved. Error repair for |
3646 : | generated parsers has been completely rewritten, and is now both | ||
3647 : | much faster and more accurate. | ||
3648 : | + | ||
3649 : | *ml-ulex* is now more lenient with escape codes (non-SML-standard | ||
3650 : | jhr | 4603 | escape codes are now interpreted literally, so _e.g._, `\|` denotes "`|`"). |
3651 : | Also, character classes may now include a "`-`" character at the beginning | ||
3652 : | jhr | 3992 | as is standard in most other regexp tools. |
3653 : | + | ||
3654 : | jhr | 4216 | All of these changes are documented in the user guide, which has |
3655 : | jhr | 3992 | been updated and improved with this merge. |
3656 : | + | ||
3657 : | jhr | 4603 | owner:www.cs.uchicago.edu/~adrassi[Aaron Turon] |
3658 : | jhr | 3992 | |
3659 : | //-------------------------------------------------------------------- | ||
3660 : | [2007/05/03]:: | ||
3661 : | + | ||
3662 : | Merge of the primop3 branch (base) into the trunk to create 110.63.1. | ||
3663 : | Significant changes in FLINT and the front end, mostly having to do | ||
3664 : | with a reorganized system for handling primops. Various bug fixes | ||
3665 : | and improvements in printing signatures. | ||
3666 : | + | ||
3667 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[David MacQueen] |
3668 : | jhr | 3992 | |
3669 : | //-------------------------------------------------------------------- | ||
3670 : | [2007/05/02]:: | ||
3671 : | + | ||
3672 : | Preliminary commit of large *ml-lpt* revisions (more to come for 110.64). | ||
3673 : | The *ml-antlr* specification format has changed: declarations such as | ||
3674 : | jhr | 4603 | `%tokens` and nonterminal definitions can occur *multiple* times in the |
3675 : | jhr | 3992 | same specification. The semantics are such that each new declaration |
3676 : | extends the previous ones. Grammar extension constructs have also | ||
3677 : | changed. We now allow type annotations on nonterminals. Finally, | ||
3678 : | the refcell construct is now implemented using SML's regular reference | ||
3679 : | jhr | 4603 | cells, so the `:==` and `!!` notation has been deprecated. All of these |
3680 : | jhr | 3992 | changes will appear in the 110.64 user guide for *ml-lpt*. |
3681 : | + | ||
3682 : | jhr | 4216 | The *ml-antlr* tool now does much more checking of specifications, and |
3683 : | jhr | 3992 | its error messages have been greatly improved. There has also been |
3684 : | some work on the error repair process for generated parsers, but this | ||
3685 : | will be further improved in 110.64. | ||
3686 : | + | ||
3687 : | jhr | 4603 | owner:www.cs.uchicago.edu/~adrassi[Aaron Turon] |
3688 : | jhr | 3992 | |
3689 : | //-------------------------------------------------------------------- | ||
3690 : | [2007/04/24]:: | ||
3691 : | + | ||
3692 : | jhr | 4603 | More Basis fixes: The `Char.fromString` (_etc._) functions did not handle |
3693 : | the "`\uxxxx`" escape sequence. There is still an outstanding bug with | ||
3694 : | `String.fromString` the tail is a format escape. I added a comment to | ||
3695 : | this effect in `Basis/Implementation/string.sml`. | ||
3696 : | jhr | 3992 | Thanks to Andreas Rossberg. |
3697 : | + | ||
3698 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3699 : | jhr | 3992 | |
3700 : | //-------------------------------------------------------------------- | ||
3701 : | [2007/04/24]:: | ||
3702 : | + | ||
3703 : | jhr | 4603 | Added `next` function to `Fifo` and `Queue` modules in the SML/NJ Library. |
3704 : | jhr | 3992 | + |
3705 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3706 : | jhr | 3992 | |
3707 : | //-------------------------------------------------------------------- | ||
3708 : | [2007/04/23]:: | ||
3709 : | + | ||
3710 : | jhr | 4603 | More Basis fixes: `Time.fmt` dropped the leading "`~`" for negative time |
3711 : | jhr | 3992 | values that had no whole part. |
3712 : | + | ||
3713 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3714 : | jhr | 3992 | |
3715 : | //-------------------------------------------------------------------- | ||
3716 : | [2007/04/23]:: | ||
3717 : | + | ||
3718 : | jhr | 4603 | More Basis fixes: the `OS.Path` module did not include the `InvalidArc` |
3719 : | jhr | 3992 | exception and did not do sufficient argument checking. |
3720 : | Thanks to Stephen Weeks and Adam Chilpala. | ||
3721 : | + | ||
3722 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3723 : | jhr | 3992 | |
3724 : | //-------------------------------------------------------------------- | ||
3725 : | [2007/04/16]:: | ||
3726 : | + | ||
3727 : | Fixed an unbound functor bug in the AMD64 CM file. | ||
3728 : | + | ||
3729 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3730 : | jhr | 3992 | |
3731 : | //-------------------------------------------------------------------- | ||
3732 : | [2007/04/12]:: | ||
3733 : | + | ||
3734 : | Substantially changed the signature and implementation of AMD64 | ||
3735 : | SVID. It now looks similar to the ia32 SVID, yet uses staged | ||
3736 : | allocation. | ||
3737 : | + | ||
3738 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3739 : | jhr | 3992 | |
3740 : | //-------------------------------------------------------------------- | ||
3741 : | [2007/04/07]:: | ||
3742 : | + | ||
3743 : | jhr | 4603 | More Basis fixes: the `WORD` signature was missing {`to`,`from`}`Large.` |
3744 : | jhr | 3992 | Thanks to Andreas Rossberg. |
3745 : | + | ||
3746 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3747 : | jhr | 3992 | |
3748 : | //==================================================================== | ||
3749 : | == Version 110.63; 2007/03/22 | ||
3750 : | |||
3751 : | |||
3752 : | //-------------------------------------------------------------------- | ||
3753 : | [2007/03/19]:: | ||
3754 : | + | ||
3755 : | Fixed bogus operand sizes in AMD64 instruction spilling. | ||
3756 : | + | ||
3757 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3758 : | jhr | 3992 | |
3759 : | //-------------------------------------------------------------------- | ||
3760 : | [2007/03/19]:: | ||
3761 : | + | ||
3762 : | jhr | 4603 | Fixed a number of inconsistencies between the `Posix.TTY` structure |
3763 : | jhr | 3992 | and the Basis specification. Thanks to Adam Chilpala. |
3764 : | + | ||
3765 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3766 : | jhr | 3992 | |
3767 : | //-------------------------------------------------------------------- | ||
3768 : | [2007/02/26]:: | ||
3769 : | + | ||
3770 : | Added preliminary support in MLRISC for Staged Allocation, a technique | ||
3771 : | jhr | 4216 | for specifying calling conventions (see |
3772 : | jhr | 4603 | `http://www.eecs.harvard.edu/~nr/pubs/staged-abstract.html`). |
3773 : | jhr | 3992 | Initially, we plan to use this code to generate C calls for the AMD64. |
3774 : | + | ||
3775 : | jhr | 4603 | The staged allocation code base resides in `MLRISC/staged-allocation`, |
3776 : | and specialized calling conventions go in `MLRISC/ARCH/staged-allocation`. | ||
3777 : | jhr | 3992 | + |
3778 : | jhr | 4603 | owner:www.cs.uchicago.edu/~mrainey[Mike Rainey] |
3779 : | jhr | 3992 | |
3780 : | //-------------------------------------------------------------------- | ||
3781 : | [2007/02/20]:: | ||
3782 : | + | ||
3783 : | jhr | 4603 | Bug fix: when `SaveCState` was called with two values to save, a subsequent |
3784 : | GC could cause the `RestoreCState` to fail because the saved state had been | ||
3785 : | jhr | 3992 | promoted to tagless pair. |
3786 : | + | ||
3787 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3788 : | jhr | 3992 | |
3789 : | //-------------------------------------------------------------------- | ||
3790 : | [2007/02/20]:: | ||
3791 : | + | ||
3792 : | Fixed bug triggered by: | ||
3793 : | + | ||
3794 : | [source,sml] | ||
3795 : | ------------ | ||
3796 : | jhr | 4216 | val a1 = Word8Array.array(a1, 0w0); |
3797 : | jhr | 3992 | val _ = Word8Array.update(a1, 0, 0w128); |
3798 : | ------------ | ||
3799 : | + | ||
3800 : | jhr | 4603 | The `x86MCEmitter` crashed when the immediate operand to `MOVB` was outside |
3801 : | of the range `-128` ... `127`. I've changed the code so that the range | ||
3802 : | jhr | 3992 | check is disabled. Only the low order 8 bits of the immediate operand |
3803 : | are now significant. | ||
3804 : | + | ||
3805 : | jhr | 4603 | owner:smlnj.org[Allen Leung] |
3806 : | jhr | 3992 | |
3807 : | //-------------------------------------------------------------------- | ||
3808 : | [2007/02/15]:: | ||
3809 : | + | ||
3810 : | Eliminated any mention of *lexgen*, which was an early precursor | ||
3811 : | to *ml-ulex*. | ||
3812 : | + | ||
3813 : | You should update your admin directory, so the shell scripts for | ||
3814 : | maintaining your local copy of the repository reflect this change. | ||
3815 : | + | ||
3816 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3817 : | jhr | 3992 | |
3818 : | //-------------------------------------------------------------------- | ||
3819 : | [2007/02/14]:: | ||
3820 : | + | ||
3821 : | Fixed bug in CM's parallel make facility that failed to have | ||
3822 : | the master re-link modules after letting slaves compile them. | ||
3823 : | + | ||
3824 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3825 : | jhr | 3992 | |
3826 : | //-------------------------------------------------------------------- | ||
3827 : | [2007/02/12]:: | ||
3828 : | + | ||
3829 : | Fixed typo in *ml-build* script that prevented library anchors | ||
3830 : | from being registered. | ||
3831 : | + | ||
3832 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3833 : | jhr | 3992 | |
3834 : | //==================================================================== | ||
3835 : | == Version 110.62; 2007/02/02 | ||
3836 : | |||
3837 : | |||
3838 : | //-------------------------------------------------------------------- | ||
3839 : | [2007/01/31]:: | ||
3840 : | + | ||
3841 : | jhr | 4216 | Brought ml-lpt manual up-to-date with the code. Many minor |
3842 : | jhr | 3992 | improvements to the tools, and a few minor bugfixes. Prepared |
3843 : | jhr | 4603 | ml-lpt-lib for integration with new `UTF8` structure. Changed |
3844 : | jhr | 3992 | the interface for creating streams in *ml-ulex* (we now support |
3845 : | jhr | 4216 | stream creation from several kinds of sources). Overall, the |
3846 : | tools are now quite stable, and their interfaces are unlikely to | ||
3847 : | jhr | 3992 | change in a way that would break compatibility. More work, |
3848 : | however, is needed in the documentation. | ||
3849 : | + | ||
3850 : | jhr | 4603 | owner:www.cs.uchicago.edu/~adrassi[Aaron Turon] |
3851 : | jhr | 3992 | |
3852 : | //-------------------------------------------------------------------- | ||
3853 : | [2007/02/01]:: | ||
3854 : | + | ||
3855 : | Implemented library installer. Moved CM plugin code for | ||
3856 : | *ml-burg*, *ml-lex*, and *ml-yacc* out of CM source tree and into | ||
3857 : | their respective trees. Implemented CM plugin for *ml-ulex* | ||
3858 : | and *ml-antlr*. Used library installer for *ml-burg*, *ml-ulex*, | ||
3859 : | and *ml-antlr*. | ||
3860 : | + | ||
3861 : | For *ml-yacc* and *ml-lex* we continue to have permanently "plugged-in" | ||
3862 : | CM tools. (It turns out to be too messy to do otherwise because | ||
3863 : | there is too much code that during installation relies on the presence | ||
3864 : | of these tools -- resulting in a tricky ordering problem.) | ||
3865 : | + | ||
3866 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3867 : | jhr | 3992 | |
3868 : | //-------------------------------------------------------------------- | ||
3869 : | [2007/01/30]:: | ||
3870 : | + | ||
3871 : | jhr | 4603 | Added `SMLofNJ.shiftArgs` which is like a shell's "shift" command. |
3872 : | Modified CM's startup code to use `shiftArgs` as it processes | ||
3873 : | jhr | 3992 | command line arguments. This way, the init code in each .sml-file |
3874 : | or library that is mentioned at the top level will see only | ||
3875 : | those arguments that have not yet been processed at this point. | ||
3876 : | In other words, the init code can "seize control" and process the | ||
3877 : | remaining command line. | ||
3878 : | + | ||
3879 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3880 : | jhr | 3992 | |
3881 : | //-------------------------------------------------------------------- | ||
3882 : | [2007/01/30]:: | ||
3883 : | + | ||
3884 : | jhr | 4603 | Added fromList function to the `ORD_SET` interface and lookup to the |
3885 : | `ORD_MAP` interface. See the SML/NJ Library CHANGES file for details. | ||
3886 : | jhr | 3992 | + |
3887 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3888 : | jhr | 3992 | |
3889 : | //-------------------------------------------------------------------- | ||
3890 : | [2007/01/28]:: | ||
3891 : | + | ||
3892 : | jhr | 4603 | Added the `UTF8` structure and signature from the Moby compiler to |
3893 : | jhr | 3992 | the SML/NJ library (and the CML library). These modules will replace |
3894 : | the version in the ml-lpt-lib. | ||
3895 : | + | ||
3896 : | jhr | 4603 | owner:www.cs.uchicago.edu/~jhr[John Reppy] |
3897 : | jhr | 3992 | |
3898 : | //-------------------------------------------------------------------- | ||
3899 : | [2007/01/26]:: | ||
3900 : | + | ||
3901 : | Added entries to handle ml-lpt-lib.cm in installer. | ||
3902 : | + | ||
3903 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3904 : | jhr | 3992 | |
3905 : | //==================================================================== | ||
3906 : | == Version 110.61.1; 2006/12/15 | ||
3907 : | |||
3908 : | |||
3909 : | //-------------------------------------------------------------------- | ||
3910 : | [2006/12/15]:: | ||
3911 : | + | ||
3912 : | Fixed brown-paper-bag bug with CM's pathname handling, which made | ||
3913 : | installation fail under *Win32*. | ||
3914 : | + | ||
3915 : | This supersedes the pre-brown-paper-bug release (see below). | ||
3916 : | + | ||
3917 : | jhr | 4603 | owner:www.tti-c.org/blume/[Matthias Blume] |
3918 : | jhr | 3992 | |
3919 : | //==================================================================== | ||
3920 : | == Version 110.61; 2006/12/14 | ||
3921 : | |||
3922 : | |||
3923 : | //-------------------------------------------------------------------- | ||
3924 : | [2006/14/06]:: | ||
3925 : | + | ||
3926 : | jhr | 4603 | Fixed the code in `runtime/c-libs/posix-tty/`{`tcgetattr`,`tcsetattr`}`.c` to |
3927 : | jhr | 3992 | get the c_cc termios data copied correctly. Also moved the allocation |
3928 : | of the string to avoid problems if it caused a GC. | ||
3929 : | + | ||
3930 : | Thanks to Timothy Bourke for the bug report and fix. | ||
3931 : | + | ||
3932 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
3933 : | jhr | 3992 | |
3934 : | //-------------------------------------------------------------------- | ||
3935 : | [2006/12/08]:: | ||
3936 : | + | ||
3937 : | Added code to CM's "standard shell tool" implementation which | ||
3938 : | causes it to tolerate (with a warning) the situation where the shell | ||
3939 : | command fails (_e.g._, due to the shell command's non-existence) | ||
3940 : | as long as all target files exist. | ||
3941 : | + | ||
3942 : | This makes it possible to, _e.g._, build *ml-yacc* from sources even if | ||
3943 : | svn checkout messed up the time stamps on files in such a way that | ||
3944 : | jhr | 4603 | `yacc.grm` is younger than yacc.grm.sml or `yacc.grm.sig`. (*Ml-yacc* |
3945 : | would be needed to re-process `yacc.grm`, but obviously it might not yet be | ||
3946 : | jhr | 3992 | available at that time.) |
3947 : | + | ||
3948 : | jhr | 4603 | owner:www.tti-c.org/blume[Matthias Blume] |
3949 : | jhr | 3992 | |
3950 : | //-------------------------------------------------------------------- | ||
3951 : | [2006/12/06]:: | ||
3952 : | + | ||
3953 : | jhr | 4603 | Fixed the types of `recvVecFrom`, `recvVecFrom'`, `recvVecFromNB`, and |
3954 : | `recvVecFromNB'` in the `SOCKET` signature. This error is actually | ||
3955 : | jhr | 3992 | in the _SML Basis_ specification too. |
3956 : | + | ||
3957 : | jhr | 4603 | owner:cs.uchicago.edu/~jhr[John Reppy] |
3958 : | jhr | 3992 | |
3959 : | //-------------------------------------------------------------------- | ||
3960 : | [2006/12/05]:: | ||
3961 : | + | ||
3962 : | CM now reports undefined anchors as errors and aborts execution | ||
3963 : |