Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

sml/trunk/HISTORY revision 1133, Tue Mar 12 03:56:23 2002 UTC sml/trunk/NOTES/HISTORY revision 3904, Sun Aug 17 19:33:05 2014 UTC
# Line 1  Line 1 
1  This is the HISTORY file for the Yale SML/NJ CVS repository.  This is the HISTORY file for the SML/NJ repository.
2    
3  An entry should be made for _every_ commit to the repository.  An entry should be made for _every_ commit to the repository.
4  The entries in this file will be used when creating the README  The entries in this file will be used when creating the README
# Line 7  Line 7 
7    
8  The form of an entry should be:  The form of an entry should be:
9    
10  Name:  Name: Your Name (web page or e-mail)
11    Date: yyyy/mm/dd hh:mm:ss
12    Tag: cvs-tag-for-this-change
13    Description:
14    
15    Here is a test entry
16    
17    ----------------------------------------------------------------------
18    Name: John Reppy (http://cs.uchicago.edu/~jhr)
19  Date: yyyy/mm/dd  Date: yyyy/mm/dd
 Tag: <post-commit CVS tag>  
20  Description:  Description:
21    
22  ----------------------------------------------------------------------  ----------------------------------------------------------------------
23    Name: John Reppy (http://cs.uchicago.edu/~jhr)
24    Date: 2014/08/17
25    Description:
26    Added patches to support OpenBSD on PPC.  The patches were contributed
27    by Jasper Lievisse Adriaanse (fixes bug #124).
28    
29    ----------------------------------------------------------------------
30    Name: John Reppy (http://cs.uchicago.edu/~jhr)
31    Date: 2014/08/17
32    Description:
33    Use mkstemp to implement OS.FileSys.tmpName() on systems that support
34    it (should be all modern versions of Unix).  This change fixes bug #128.
35    (Thanks to Johannes 5 Joemann).
36    
37    ----------------------------------------------------------------------
38    Name: John Reppy (http://cs.uchicago.edu/~jhr)
39    Date: 2014/08/17
40    Description:
41    Fixed a bug in IntInf.~>>, which did not handle negative arguments
42    correctly (bug #110).
43    
44    ----------------------------------------------------------------------
45    Name: John Reppy (http://cs.uchicago.edu/~jhr)
46    Date: 2014/08/14
47    Description:
48    Fixed a problem in the CPS contraction phase.  An optimization that
49    eliminates construction of a record that already exists was not
50    checking that the existing record was the same record kind (bug #119).
51    
52    ----------------------------------------------------------------------
53    Name: John Reppy (http://cs.uchicago.edu/~jhr)
54    Date: 2014/07/28
55    Description:
56    Switch to using MAP_ANONYMOUS to allocate memory on Linux systems.
57    This change avoids problems when "/dev" does not support execute
58    permission (as seems to be the case with some versions of Linux
59    running on ChromeBooks; bug #120).
60    
61    ----------------------------------------------------------------------
62    Name: John Reppy (http://cs.uchicago.edu/~jhr)
63    Date: 2014/06/28
64    Description:
65    Fix for bug 127 (Crash on windows with OS.Process.system).
66    
67    ----------------------------------------------------------------------
68    Name: John Reppy (http://cs.uchicago.edu/~jhr)
69    Date: 2014/06/07
70    Description:
71    Fixed a long-standing bug in Socket.recvVec, which prevented the result
72    from being used in a string pattern match (thanks to Vesa Norrman
73    for the fix).
74    
75    ----------------------------------------------------------------------
76    Name: John Reppy (http://cs.uchicago.edu/~jhr)
77    Date: 2014/05/01
78    Description:
79    Fixed minor issue in an error message; type variable name should be
80    printed with leading '
81    
82    ----------------------------------------------------------------------
83    Name: John Reppy (http://cs.uchicago.edu/~jhr)
84    Date: 2013/11/25
85    Description:
86    Added PackWord{16,32}{Big,Little} structures to the Unsafe module.
87    This change makes the UNSAFE signature closer to the MLton version,
88    although we still need the PackReal structures.
89    
90    ----------------------------------------------------------------------
91    Name: John Reppy (http://cs.uchicago.edu/~jhr)
92    Date: 2013/07/01
93    Description:
94    
95    *************************** Version 110.76 ***************************
96    
97    ----------------------------------------------------------------------
98    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
99    Date: 2013/06/04
100    Description:
101    Fix bug #115 (BinPrimIO writer method getPos doesn't work under CML).
102    Just needed to port the position update from mkReader code to the
103    mkWriter code.
104    
105    ----------------------------------------------------------------------
106    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
107    Date: 2013/06/04
108    Description:
109    Fix bug #111 (Socket.acceptNB returns somewhat broken sockets).
110    The problem was that under Win32, sockets returned from accept inherit
111    their parents' non-blocking status, whereas on UNIX they are always
112    blocking.
113    
114    ----------------------------------------------------------------------
115    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
116    Date: 2013/05/20
117    Description:
118    Fix bug #117 (BinIO.openAppend raises IO on non-existent file).
119    We were opening the file for append if it existed but not creating it
120    if it did not exist.
121    
122    ----------------------------------------------------------------------
123    Name: John Reppy (http://cs.uchicago.edu/~jhr)
124    Date: 2013/05/02
125    Description:
126    Fix bug #116 (Socket.sameDesc raises Match exception).
127    The problem is that on Windows the iodesc datatype (defined in
128    Basis/Implementation/Win32/pre-os.sml) has both an IODesc constructor
129    and a SockDesc constructor.  Updated the code in Win32/os-io.sml to
130    handle the SockDesc constructor.
131    
132    ----------------------------------------------------------------------
133    Name: John Reppy (http://cs.uchicago.edu/~jhr)
134    Date: 2013/04/19
135    Description:
136    Fix bug #113 (Socket.select waits exactly twice the indicated timeout)
137    
138    ----------------------------------------------------------------------
139    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
140    Date: 2013/01/19
141    Description:
142    Fix AMD64 code generator to properly sign-extend arguments to IDIVQ.
143    
144    ----------------------------------------------------------------------
145    Name: John Reppy (http://cs.uchicago.edu/~jhr)
146    Date: 2012/10/20
147    Description:
148    Fix bug #108 (off-by-one error in Util/dynamic-array.sml; iterators crash)
149    
150    ----------------------------------------------------------------------
151    Name: John Reppy (http://cs.uchicago.edu/~jhr)
152    Date: 2012/10/20
153    Description:
154    Fix bug #107 (Bogus Int64 comparison operators)
155    
156    ----------------------------------------------------------------------
157    Name: John Reppy (http://cs.uchicago.edu/~jhr)
158    Date: 2012/10/01
159    Description:
160    
161    *************************** Version 110.75 ***************************
162    
163    ----------------------------------------------------------------------
164    Name: John Reppy (http://cs.uchicago.edu/~jhr)
165    Date: 2012/09/28
166    Description:
167    Fixed bug #92.  IntInf.scan now handles the "0x" prefix correctly.
168    Also made minor improvements to the NumScan module.
169    
170    ----------------------------------------------------------------------
171    Name: John Reppy (http://cs.uchicago.edu/~jhr)
172    Date: 201209/24
173    Description:
174    Added Base64 module to SML/NJ Library to support encoding and decoding
175    Word8 vectors as base64 strings.
176    
177    ----------------------------------------------------------------------
178    Name: John Reppy (http://cs.uchicago.edu/~jhr)
179    Date: 2012/09/23
180    Description:
181    Additions to the SML/NJ Library.  Added exists, existsi, all, and alli
182    functions to ORD_MAP signature and implementations, and added all
183    function to ORD_SET signature and implementations.
184    
185    ----------------------------------------------------------------------
186    Name: John Reppy (http://cs.uchicago.edu/~jhr)
187    Date: 2012/09/21
188    Description:
189    Bug fix in ml-antlr to ensure that the generated toString function
190    for tokens is strictly legal SML code (i.e., non-printing characters
191    and UTF8 multibyte sequences are properly escaped).
192    
193    ----------------------------------------------------------------------
194    Name: John Reppy (http://cs.uchicago.edu/~jhr)
195    Date: 2012/09/11
196    Description:
197    Added getu function to ULexBuffer as a way to improve ulex performance.
198    This addition allows a fastpath for processing ascii characters, which
199    improved lexer performance by 3-4%.
200    
201    ----------------------------------------------------------------------
202    Name: John Reppy (http://cs.uchicago.edu/~jhr)
203    Date: 2012/08/02
204    Description:
205    Fixed bugs #89 and #96: Build Failure with Xcode 4.3
206    Also removed build support for MacOS X pre-10.5 (Leopard) on PPC and
207    pre-10.6 (Snow Leopard) on Intel.
208    
209    ----------------------------------------------------------------------
210    Name: John Reppy (http://cs.uchicago.edu/~jhr)
211    Date: 2012/02/05
212    Description:
213    Fixed bug #88.  The check for valid arcs on Unix systems now allows
214    any character other than slash or nul.
215    
216    ----------------------------------------------------------------------
217    Name: David MacQueen (dbm@cs.uchicago.edu)
218    Date: 2012/01/20
219    Description:
220    
221    *************************** Version 110.74 ***************************
222    
223    ----------------------------------------------------------------------
224    Name: John Reppy (http://cs.uchicago.edu/~jhr)
225    Date: 2012/01/20
226    Description:
227    
228    Fixed implementation of Real.signBit on little-endian machines.
229    
230    ----------------------------------------------------------------------
231    Name: David MacQueen (dbm@cs.uchicago.edu)
232    Date: 2012/1/19
233    Revision: 3664, 3665
234    Description:
235    
236    1) Fix for (gforge) bug #60
237       recalculate strictness for DEFtycs in functor bodies when functor
238       is applied  (Elaborator/modules/evalent.sml)
239    
240    2) Fix for (gforge) bug #77
241       separate ast representations for datatypes and datatype replications
242       in decs and specs (multiple files)
243    
244    3) set version to 110.74
245    
246    Details in NOTES/changes/dbm_2012_1.
247    
248    ----------------------------------------------------------------------
249    Name: David MacQueen (dbm@cs.uchicago.edu)
250    Date: 2012/1/12
251    Revision: 3648, 3652
252    Description:
253    
254    1) Change of SourceMap interface.
255       related to fix of off-by-one error in lexer (committed earlier?), and cleanup of noweb code
256       added by Norman Ramsey many years ago (but little used today).
257    
258    3) Slight cleanup of match compiler, eliminatiing compiler/FLINT/tempexpn.sml file that
259       was part of unused implementation of pattern templates (pattern macros).
260    
261    4) Modification of type checker to add "culprit tracking" for improved type error messages
262       (printing of additional culprit information is controlled by ElabControl.showTypeErrorCulprits
263        flag, default false, added in revision 3652).  The culprit tracking needs to be debugged
264        and improved, and the presentation of the culprits needs to be done better.
265    
266    Details in NOTES/changes/dbm_2012_1.
267    
268    ----------------------------------------------------------------------
269    Name: John Reppy (http://cs.uchicago.edu/~jhr)
270    Date: 2011/11/25
271    Description:
272    
273    Bug fixes for Unsafe.blastRead (#76):
274      1) proper error handling when reading from memory and there are
275         not enough bytes.
276      2) pass correct data pointer and length to BlastIn (code was using
277         old macros).
278    
279    ----------------------------------------------------------------------
280    Name: John Reppy (http://cs.uchicago.edu/~jhr)
281    Date: 2011/11/25
282    Description:
283    
284    Added hash-table-based implementation of sets to SML/NJ Library.
285    
286    ----------------------------------------------------------------------
287    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
288    Date: 2011/10/25
289    Description:
290    
291    Better error reporting under 32-bit linux for the missing dpkg
292    support (#70).
293    Enable 3.x kernels to build (#80, 81, 83).
294    
295    ----------------------------------------------------------------------
296    Name: John Reppy (http://cs.uchicago.edu/~jhr)
297    Date: 2011/05/23
298    Description:
299    
300    Added new S-expression library to SML/NJ Library
301    (contributed by Damon Wang)
302    
303    ----------------------------------------------------------------------
304    Name: John Reppy (http://cs.uchicago.edu/~jhr)
305    Date: 2011/05/17
306    Description:
307    
308    Fixed bug in JSON scanner (SML/NJ Library).  It didn't handle escaped
309    backslash or double quote correctly.
310    
311    ----------------------------------------------------------------------
312    Name: John Reppy (http://cs.uchicago.edu/~jhr)
313    Date: 2011/05/13
314    Description:
315    
316    *************************** Version 110.73 ***************************
317    
318    ----------------------------------------------------------------------
319    Name: John Reppy (http://cs.uchicago.edu/~jhr)
320    Date: 2011/05/10
321    Description:
322    
323    Added boolean literals (true and false) to the conditional-expression
324    syntax in CM.  Thus, you can write
325    
326    #if true
327      structure Foo
328    #endif
329    
330    in a CM file.  This change is meant to make it easier to use autoconf
331    to configure the build process of an SML application.
332    
333    ----------------------------------------------------------------------
334    Name: John Reppy (http://cs.uchicago.edu/~jhr)
335    Date: 2011/05/09
336    Description:
337    
338    Added missing String.scan function (#69).  This also fixes the handling
339    of certain corner cases by String.fromString.
340    
341    ----------------------------------------------------------------------
342    Name Mike Rainey (http://www.mpi-sws.org/~mrainey)
343    Date 2011/05/03
344    Description:
345    
346    Added the RTDSC and RTDSCP instructions to the amd64 code generator.
347    
348    ----------------------------------------------------------------------
349    Name: John Reppy (http://cs.uchicago.edu/~jhr)
350    Date: 2011/04/08
351    Description:
352    
353    Added fix for comments in code bug (#63).
354    Thanks to Michael Norrish.
355    
356    ----------------------------------------------------------------------
357    Name: John Reppy (http://cs.uchicago.edu/~jhr)
358    Date: 2011/04/08
359    Description:
360    
361    Fixed bug in Socket.acceptNB (bug #59)
362    
363    ----------------------------------------------------------------------
364    Name: John Reppy (http://cs.uchicago.edu/~jhr)
365    Date: 2011/03/31
366    Description:
367    
368    Fixed syntax error in ml-lex compatibility mode (bug #49)
369    
370    ----------------------------------------------------------------------
371    Name: John Reppy (http://cs.uchicago.edu/~jhr)
372    Date: 2011/03/22
373    Description:
374    
375    Update _arch-n-opsys script for Mac OS X Lion (10.7).
376    
377    ----------------------------------------------------------------------
378    Name: John Reppy (http://cs.uchicago.edu/~jhr)
379    Date: 2011/02/18
380    Description:
381    
382    Added Barriers module to CML.
383    
384    ----------------------------------------------------------------------
385    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
386    Date: 2011/02/10
387    Description:
388    
389    Fixed ml-yacc examples to respect the changed signatures with respect
390    to TextIO.inputLine.
391    
392    ----------------------------------------------------------------------
393    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
394    Date: 2010/09/16
395    Description:
396    
397    Changed the Win32 implementation of validArc to support directories
398    with extended characters (umlauts, etc.).
399    
400    ----------------------------------------------------------------------
401    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
402    Date: 2010/09/16
403    Description:
404    
405    Fixed the Win32 socket and polling implementation to work correctly
406    with CML. Signature of poll was wrong and didn't handle sockets at all.
407    
408    ----------------------------------------------------------------------
409    Name: John Reppy (http://cs.uchicago.edu/~jhr)
410    Date: 2010/06/16
411    Description:
412    
413    Fixed Real.toString and Real.fmt to include sign for negative zero.
414    
415    ----------------------------------------------------------------------
416    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
417    Date: 2010/03/23
418    Description:
419    
420    Fixed the bug with Win32 calls to OS.Process.system not quoting the string.
421    
422    ----------------------------------------------------------------------
423    Name: Jon Riehl (http://jonriehl.com/)
424    Date: 2010/02/11
425    Description:
426    
427    Applied patch for building on more recent NetBSD's.  See bug #39 in the
428    tracker:
429    
430    http://smlnj-gforge.cs.uchicago.edu/tracker/index.php?func=detail&aid=39&group_id=33&atid=215
431    
432    ----------------------------------------------------------------------
433    Name: Jon Riehl (http://jonriehl.com/)
434    Date: 2010/02/02
435    Description:
436    
437    Cutting version 110.72.  New bootfiles.
438    
439    ----------------------------------------------------------------------
440    Name John Reppy (http://cs.uchicago.edu/~jhr)
441    Date 2009/12/20
442    Description:
443    
444    Fixed performance bugs in List module by making @ and foldr be
445    tail recursive.
446    
447    ----------------------------------------------------------------------
448    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
449    Date: 2009/12/11
450    Description:
451    
452    Fixed the Win32 unable to print long strings bug.
453    ----------------------------------------------------------------------
454    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
455    Date: 2009/12/10
456    Description:
457    
458    Fixed an overrun during major GC. If the string arena was nearly full, it was possible
459    for alignment padding added during copy to the to-space to overrun the allocated
460    size.
461    ----------------------------------------------------------------------
462    Name John Reppy (http://cs.uchicago.edu/~jhr)
463    Date 2009/11/18
464    Description:
465    
466    The ml-antlr and ml-ulex programs have been ported to build under
467    mlton.
468    
469    ----------------------------------------------------------------------
470    Name John Reppy (http://cs.uchicago.edu/~jhr)
471    Date 2009/11/17
472    Description:
473    
474    Added %header directive to the ml-ulex scanner generator.  Also
475    updated the documentation.
476    
477    ----------------------------------------------------------------------
478    Name John Reppy (http://cs.uchicago.edu/~jhr)
479    Date 2009/11/17
480    Description:
481    
482    Added "@SMLsuffix" flag to sml command.  This can be used to get
483    the suffix for heap files.
484    
485    ----------------------------------------------------------------------
486    Name John Reppy (http://cs.uchicago.edu/~jhr)
487    Date 2009/11/17
488    Description:
489    
490    Added "--strict-sml" flag to ml-ulex for MLton compatibility.
491    
492    ----------------------------------------------------------------------
493    Name John Reppy (http://cs.uchicago.edu/~jhr)
494    Date 2009/11/10
495    Description:
496    
497    Added %header directive to the ml-antlr parser generator.  Also
498    updated the documentation.
499    
500    ----------------------------------------------------------------------
501    Name: Jon Riehl (http://www.jonriehl.com/)
502    Date: 2009/09/16
503    Description:
504    
505    Cutting version 110.71.  New bootfiles.
506    
507    ----------------------------------------------------------------------
508    Name John Reppy (http://cs.uchicago.edu/~jhr)
509    Date 2009/09/13
510    Description:
511    
512    Changes to support compiling the runtime system on Mac OS X 10.6
513    (aka Snow Leopard).
514    
515    ----------------------------------------------------------------------
516    Name Mike Rainey (http://cs.uchicago.edu/~mrainey)
517    Date 2009/08/19
518    Description:
519    
520    Fixed a bug in the register-spill generator that is part of the MLRISC
521    register allocator. The problem was that the code in RASpillWithRenaming
522    functor assumed incorrectly that dedicated registers would appear in
523    def/use information generated by ClusterRA. Thanks to Allen Leung for
524    helping with this bug.
525    
526    ----------------------------------------------------------------------
527    Name John Reppy (http://cs.uchicago.edu/~jhr)
528    Date 2009/07/09
529    Description:
530    
531    Removed redundant implementations of various top-level operations by
532    consolidating them in base/system/smlnj/init/pervasive.sml.  This
533    change also fixes a bug in that the top-level version of round was
534    incorrect.
535    
536    ----------------------------------------------------------------------
537    Name: Matthias Blume (http://www.tti-c.org/blume/)
538    Date: 2009/06/15 11:17:00 CDT
539    Description:
540    
541    Bumped version number to 110.70.  New bootfiles.
542    
543    ----------------------------------------------------------------------
544    Name: Matthias Blume (http://www.tti-c.org/blume/)
545    Date: 2009/06/12 11:02:00 CDT
546    Description:
547    
548    1. Corrected problem in config/actions that led to the so-called
549       "unpickling bug" which appeared in version 110.68.
550    
551    2. Provided fix for the 64-bit pattern match bug.
552    
553    ----------------------------------------------------------------------
554    Name John Reppy (http://cs.uchicago.edu/~jhr)
555    Date 2009/03/21
556    Description:
557    
558    Fixed bug in Int32.fmt when the argument was the minimum int and the
559    radix was something other than DEC.
560    
561    ----------------------------------------------------------------------
562    Name Aaron Turon (turon@ccs.neu.edu)
563    Date 2009/02/21
564    Description:
565    
566    Fixed bugs in how ml-antlr parsed ML types in %tokens specifications.
567    
568    ----------------------------------------------------------------------
569    Name: Jon Riehl (http://www.jonriehl.com/)
570    Date: 2009/01/13
571    Description:
572    
573    Picking up some additional fixes for 110.69, including a fix for
574    spaces in CM file paths.
575    
576    ----------------------------------------------------------------------
577    Name: Jon Riehl (http://www.jonriehl.com/)
578    Date: 2008/12/22
579    Description:
580    
581    Version bumped to 110.69.  New bootfiles.
582    
583    ----------------------------------------------------------------------
584    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
585    Date: 2008/12/06
586    Description:
587    
588    Re-enabled some CPS optimizations (first_contract and eta).  The most
589    important effect of this change is to make uses of SMLofNJ.Cont.capture
590    be properly tail recursive.
591    
592    ----------------------------------------------------------------------
593    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
594    Date: 2008/12/03
595    Description:
596    
597    New concurrency-related instructions for x86 and amd64 code
598    generators.
599      - PAUSE: Notify the CPU that the program is spin waiting.
600      - MFENCE: memory fence for reads and writes.
601      - SFENCE: memory fence for writes.
602      - LFENCE: memory fence for reads.
603    
604    ----------------------------------------------------------------------
605    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
606    Date: 2008/12/02
607    Description:
608    
609    Added makefile and other support for building runtime on OpenBSD.
610    
611    ----------------------------------------------------------------------
612    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
613    Date: 2008/08/13
614    Description:
615    
616    Version bumped to 110.68.  New bootfiles.
617    
618    ----------------------------------------------------------------------
619    Name Aaron Turon (turon@ccs.neu.edu)
620    Date 2008/08/11
621    Description:
622    
623    Minor fix to ml-ulex backend for regexps that match any character
624    and perform a single action.  Previously the emitted code would
625    not allow the regexps to match any character at all.
626    
627    ----------------------------------------------------------------------
628    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
629    Date: 2008/08/05
630    Description:
631    
632    Added build support for OpenBSD (thanks to Brian O'Hanlon).
633    
634    ----------------------------------------------------------------------
635    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
636    Date: 2008/07/12
637    Description:
638    
639    Fixed Int64.fromString to use base-10.
640    
641    ----------------------------------------------------------------------
642    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
643    Date: 2008/04/12
644    Description:
645    
646    Various updates to the ml-lpt tree.  The documentation has been updated;
647    bugs in the parsing of negation and character classes in ml-ulex have
648    been fixed; and changes have been made to make the ml-lpt tools more
649    compatible with MLton (and other SML implementations).  Thanks to
650    Matthew Fluet and Aaron Turon for their patches.
651    
652    ----------------------------------------------------------------------
653    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
654    Date: 2008/20/04
655    Description:
656    
657    Implemented timer-based profiling on Windows, with behavior as close
658    to the *nix ITIMER-based profiling as possible.
659    ----------------------------------------------------------------------
660    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
661    Date: 2008/07/04
662    Description:
663    
664    Finished off the Windows subset of the basis library. Added process
665    support and various configuration and system identification utils.
666    ----------------------------------------------------------------------
667    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
668    Date: 2008/03/18
669    Description:
670    
671    Major changes to the RegExp library: see smlnj-lib/CHANGES for details.
672    ----------------------------------------------------------------------
673    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
674    Date: 2008/02/14
675    Description:
676    
677    Added the Windows Status structure
678    ----------------------------------------------------------------------
679    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
680    Date: 2008/02/14
681    Description:
682    
683    Added the Windows DDE structure
684    ----------------------------------------------------------------------
685    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
686    Date: 2008/02/05
687    Description:
688    
689    Added the Windows Config structure
690    ----------------------------------------------------------------------
691    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
692    Date: 2008/01/31
693    Description:
694    
695    Added outline of the Windows basis library and the basic registry
696    functionality.
697    ----------------------------------------------------------------------
698    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
699    Date: 2008/01/23
700    Description:
701    
702    Fixed the amd64 code generator to compile with the current MLRISC.
703    ----------------------------------------------------------------------
704    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
705    Date: 2007/11/26
706    Description:
707    
708    nlffi was updated to work on Windows. It needed to pass in the correct
709    value for the name of the kernel32 DLL to obtain 'base' bindings.
710    Additionally updated the README for the most basic nlffi sample with
711    what you need to do on MacOSX and on Windows to make it work.
712    ----------------------------------------------------------------------
713    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
714    Date: 2007/11/21
715    Description:
716    
717    Overwrite the SMLNJ_HOME environment variable on installation
718    Properly change the package code so that subsequent version
719    installations prompt for uninstall (instead of 'repair/remove')
720    ----------------------------------------------------------------------
721    Name: Lars Bergstrom (larsberg@cs.uchicago.edu)
722    Date: 2007/11/14
723    Description:
724    
725    Cleaned up WININSTALL file for new MSI-based setup.
726    ----------------------------------------------------------------------
727    Name: Matthias Blume (http://www.tti-c.org/blume/)
728    Date: 2007/11/13 14:05:00 CST
729    Description:
730    
731    Version bumped to 110.67.  New bootfiles.
732    
733    ----------------------------------------------------------------------
734    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
735    Date: 2007/11/12
736    Description:
737    
738    Ensure that the size of the allocation space is at least 128K.
739    ----------------------------------------------------------------------
740    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
741    Date: 2007/11/05
742    Description:
743    
744    Fixed type error in ml-lpt library that occurs when compiling
745    against a basis that was compiled with the USE_64_BIT_POSITIONS
746    symbol set.
747    (Thanks to Johannes Joemann)
748    ----------------------------------------------------------------------
749    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
750    Date: 2007/11/03
751    Description:
752    
753    Fixed the amd64 code generator to compile with the current MLRISC.
754    ----------------------------------------------------------------------
755    Name: Lars Bergstrom (web page or e-mail)
756    Date: 2007/11/02
757    Description:
758    
759    Made sml.bat more resilient to either not having run the installer
760    and having no SMLNJ_HOME set or having just shuffled the directory
761    around.
762    ----------------------------------------------------------------------
763    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
764    Date: 2007/11/01
765    Description:
766    
767    A collection of bug fixes for machine.sml in the Reactive library.
768    (Thanks to Timothy Bourke)
769    ----------------------------------------------------------------------
770    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
771    Date: 2007/10/28
772    Description:
773    
774    Patches for Mac OS X 10.5 (Leopard).
775    ----------------------------------------------------------------------
776    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
777    Date: 2007/10/28
778    Description:
779    
780    Fixed some bugs in the AMD64 floating-point spilling code.
781    ----------------------------------------------------------------------
782    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
783    Date: 2007/10/25
784    Description:
785    
786    Added support for the atomic XCHG instruction.
787    ----------------------------------------------------------------------
788    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
789    Date: 2007/10/22
790    Description:
791    
792    Added AMD64 support for floating-point negation.
793    ----------------------------------------------------------------------
794    Name: Lars Bergstrom (web page or e-mail)
795    Date: 2007/10/22
796    Description:
797    
798    Fixed ^C handling in Windows
799    Added a Windows installer
800    Made it possible to build for Windows on a mapped drive from Parallels
801    ----------------------------------------------------------------------
802    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
803    Date: 2007/10/22
804    Description:
805    
806    Added AMD64 support for the atomic fetch and add instruction.
807    ----------------------------------------------------------------------
808    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
809    Date: 2007/10/18
810    Description:
811    
812    The GAS output now favors p2align over align, since the
813    former is guaranteed to be consistent over multiple architectures
814    and the latter is not.
815    ----------------------------------------------------------------------
816    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
817    Date: 2007/10/18
818    Description:
819    
820    Fixed a bug in register spilling.
821    ----------------------------------------------------------------------
822    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
823    Date: 2007/10/2
824    Description:
825    
826    Added demo support for AMD64 for quick testing and fixed support for
827    64-bit label constants.
828    ----------------------------------------------------------------------
829    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
830    Date: 2007/09/20
831    Description:
832    
833    Added support for the MLRISC COND instruction and the x86-64 CMOVCC
834    instruction.
835    ----------------------------------------------------------------------
836    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
837    Date: 2007/09/17
838    Description:
839    
840    Fixed an instruction-selection bug when loading 64-bit labels.
841    
842    ----------------------------------------------------------------------
843    Name: George Kuan (http://www.cs.uchicago.edu/~gkuan)
844    Date: 2007/09/14
845    Description:
846    
847    Fixed Elaborator and Translate performance bugs
848    
849    ----------------------------------------------------------------------
850    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
851    Date: 2007/09/12
852    Description:
853    
854    Fixed xorl memory argument bug.
855    
856    ----------------------------------------------------------------------
857    Name: George Kuan (http://www.cs.uchicago.edu/~gkuan)
858    Date: 2007/07/27
859    Description:
860    
861    Added f64sgn (for Real64.signBit) as a primop defined
862    in MLRiscGen. signBit(~0.0) not handled correctly.
863    
864    ----------------------------------------------------------------------
865    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
866    Date: 2007/06/21
867    Description:
868    
869    Fixed bug in {TextIO,BinIO}.StreamIO.endOfStream that would incorrectly
870    signal end of stream.
871    
872    ----------------------------------------------------------------------
873    Name: Matthias Blume (http://www.tti-c.org/blume/)
874    Date: 2007/06/12 11:22:00 CDT
875    Description:
876    
877    Eliminated config/allsources.  The information is now drawn directly
878    from config/actions.
879    
880    ----------------------------------------------------------------------
881    Name: Matthias Blume (http://www.tti-c.org/blume/)
882    Date: 2007/06/07 23:30:00 CDT
883    Tag: release-110.65
884    Description:
885    
886    Version 110.65. NEW BOOTFILES!
887    
888    ----------------------------------------------------------------------
889    Name: Matthias Blume (http://www.tti-c.org/blume/)
890    Date: 2007/06/06 21:45:00 CDT
891    Description:
892    
893    - Aaron: fixed a number of bugs in ml-ulex.
894    - Matthias:
895       - added CM control "cm.force-tools"; this is false by default;
896         when set to true, then tools like ml-yacc, ml-lex, ml-ulex, etc.
897         will be forced to run regardless of whether or not their targets
898         are up-to-date
899       - changed installer code so that config/install.sh will re-build
900         heap images for all tools even if those heap images already existed
901    
902    ----------------------------------------------------------------------
903    Name: Matthias Blume (http://www.tti-c.org/blume/)
904    Date: 2007/06/04 21:21:00 CDT
905    Description:
906    
907    After Aaron Turon's bug fix for ml-ulex (handling the ^ character
908    in legacy mode), re-ran the lexer generator on all lex input files
909    and committed the results.
910    
911    This should fix the problem with ckit and nlffi that was reported
912    by Vesa A. Norrman.
913    
914    ----------------------------------------------------------------------
915    Name: Matthias Blume (http://www.tti-c.org/blume/)
916    Date: 2007/05/31 11:40:00 CDT
917    Tag: release-110.64
918    Description:
919    
920    Version 110.64. NEW BOOTFILES!
921    
922    ----------------------------------------------------------------------
923    Name: Dave MacQueen (dbm@cs.uchicago.edu)
924    Date: 2007/05/31 14:55:00 CDT
925    Revision: 2650
926    Description:
927    
928    3rd merge of base from primop-branch-3 into the trunk.
929    Additional bug fixes included:
930    
931     * Timer.cpu_timer, etc. type printing corrected (by making
932         Timer have opaque sig constraint in basis/Implementation/timer.sml)
933     * Infinite loop in FLINT (tests/typing/tests/25.sml) (fix by
934         Stefan Monnier)
935    
936    ----------------------------------------------------------------------
937    Name: Matthias Blume (http://www.tti-c.org/blume/)
938    Date: 2007/05/31 11:40:00 CDT
939    Description:
940    
941    Fixed some bugs in new Div code in FLINT/trans/translate.sml.
942    
943    Also, changed the handling of "no core access":  When translate.sml
944    needs access to a core exception at a time when the core has not
945    been set up yet (this only happens when compiling system/smlnj/init/*),
946    then don't bother generating the corresponding tests.
947    
948    The old scheme was to generate a bogus value to be used in place of
949    the exception.  Unfortunately, that confuses the plambda type checker.
950    Moreover, it does not do any good, because at runtime we don't expect
951    such an exception to be ever raised.  (The code in system/smlnj/init/*
952    has to be written very carefully with this in mind!)
953    
954    ----------------------------------------------------------------------
955    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
956    Date: 2007/05/29
957    Description:
958    
959    Added FSQRT instructions for the AMD64 code generator.
960    
961    ----------------------------------------------------------------------
962    Name: Matthias Blume (http://www.tti-c.org/blume/)
963    Date: 2007/05/29 19:00:00 CDT
964    Description:
965    
966    FLINT/trans/translate.sml now wraps all DIV/MOD/QUOT/REM operations
967    with an explicit test for zero division.  This should fixes several
968    regressions and makes it possible for downstream optimization phases
969    to treat these operations as "pure" when they are applied to unsigned
970    operands.
971    
972    ----------------------------------------------------------------------
973    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
974    Date: 2007/05/29
975    Description:
976    
977    Added the new MLRISC code generator for the AMD64.  This version,
978    in contrast to the previous one, uses SSE registers and instructions
979    for all floating-point computations.
980    
981    ----------------------------------------------------------------------
982    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
983    Date: 2007/05/29
984    Description:
985    
986    A number of fixes related to the formatting of dates.  These include fixes
987    for bugs #1415 and #1416.  We also now correctly handle format characters that
988    lie outside the specified set.
989    
990    ----------------------------------------------------------------------
991    Name: Matthias Blume (http://www.tti-c.org/blume/)
992    Date: 2007/05/23 22:30:00 CDT
993    Description:
994    
995    CMB (and CM) now automatically defines the CM "preprocessor" symbol
996    NO_PLUGINS during "makeml -rebuild" or when CM operates in "slave" mode.
997    
998      (In addition, CMB_REBUILD_MODE is defined for makeml -rebuild,
999       CM_SLAVE_MODE is defined in attached slaves while running CM.make
1000       or CM.rebuild, and CMB_SLAVE_MODE is defined in attached slaves
1001       while running CMB.make.  The point is that the single symbol
1002       NO_PLUGINS is definde in all three cases.)
1003    
1004    I changed the three locations within the sources that get compiled
1005    during CMB.make where ml-yacc or ml-lex input is processed: When
1006    NO_PLUGINS defined, then the use of the mlyacc and mllex tools
1007    is bypassed.
1008    
1009    When bootstrapping new versions of the compiler, there can be
1010    situations where the plugin tools for ml-yacc and ml-lex (or ml-ulex)
1011    are not available or otherwise not operational.  In this case one can
1012    manually define the NO_PLUGINS symbol prior to running CMB.make().  To
1013    do so, the following command should be issued at the interactive
1014    prompt:
1015    
1016       #set (CMB.symval "NO_PLUGINS") (SOME 1);
1017    
1018    A CMB.make with NO_PLUGINS defined relies on the existence of the
1019    files that normally would be generated by ml-yacc and ml-lex.
1020    (Copies of these files are in the repository.)
1021    
1022    ----------------------------------------------------------------------
1023    Name: David MacQueen (dbm@cs.uchicago.edu)
1024    Date: 2007/5/23 17:23:00 CDT
1025    Revision: 2603
1026    Description:
1027    
1028    2nd merge of base from primop-branch-3 into the trunk.
1029    Additional bug fixes included:
1030     Date.scan and Date.fromString fixed;
1031     Overloading resolution fixed and some type printing problems corrected.
1032    
1033    ----------------------------------------------------------------------
1034    Name: Matthias Blume (http://www.tti-c.org/blume/)
1035    Date: 2007/05/23 09:50:00 CDT
1036    Description:
1037    
1038    Changed the installation mechanism for CM tool plugins.  These are
1039    just libaries and now get installed like ordinary libaries.
1040    
1041    There are now a number of new installation targets that give some
1042    fine-grain control over what classes and suffixes are known, and what
1043    they will map to.
1044    See config/targets for details.
1045    
1046    The code that caused plugin installation as part of running a
1047    tool's "build" script has been removed.  (The build script is for
1048    building, not for installing.)
1049    
1050    ----------------------------------------------------------------------
1051    Name: Matthias Blume (http://www.tti-c.org/blume/)
1052    Date: 2007/05/22 11:50:00 CDT
1053    Description:
1054    
1055    Added a boolean control named cm.tolerate-tool-failures (env. variable
1056    name: CM_TOLERATE_TOOL_FAILURES).  The default is false and makes
1057    CM fail if a shell tool reports a non-success exit status.  If
1058    the control is set to true, then CM will press on after tool failures
1059    in the event that the target files exist (even though they are
1060    considered outdated).  Turning the control to true can be useful for
1061    bootstrapping.
1062    
1063    ----------------------------------------------------------------------
1064    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
1065    Date: 2007/05/19
1066    Description:
1067    
1068    Merge of ml-lpt revisions for 110.64.
1069    
1070    The name of several ml-lpt-lib modules has changed:
1071      Repair        => AntlrRepair
1072      StreamPos     => AntlrStreamPos
1073      ErrHandlerFn  => AntlrErrHandler
1074      EBNF          => AntlrEBNF
1075    
1076    The ml-antlr specification format has changed: declarations such as
1077    %tokens and nonterminal definitions can occur *multiple* times in the
1078    same specification.  The semantics are such that each new declaration
1079    extends the previous ones.  This does not apply to %start or %name,
1080    of course.
1081    
1082    Importing a grammar via %import now includes *all* declarations in from
1083    the imported grammar, except for %name, %entry, and %start.  Tokens
1084    and nonterminals can be dropped using the new %dropping clause of the
1085    %import directive; the separate %drop and %extend have been removed.
1086    
1087    We now allow optional type annotations on nonterminals, using the %nonterms
1088    directive as in ml-yacc.
1089    
1090    The refcell construct is now implemented using SML's regular reference
1091    cells, so the :== and !! notation has been deprecated.
1092    
1093    The ml-antlr tool now does much more checking of specifications, and
1094    its error messages have been greatly improved.  Error repair for
1095    generated parsers has been completely rewritten, and is now both
1096    much faster and more accurate.
1097    
1098    ml-ulex is now more lenient with escape codes (non-SML-standard
1099    escape codes are now interpreted literally, so e.g. \| denotes "|").
1100    Also, character classes may now include a "-" character at the beginning
1101    as is standard in most other regexp tools.
1102    
1103    All of these changes are documented in the user guide, which has
1104    been updated and improved with this merge.
1105    
1106    ----------------------------------------------------------------------
1107    Name: David MacQueen (http://www.cs.uchicago.edu/~jhr)
1108    Date: 2007/05/03
1109    Revision: r2492
1110    Description:
1111    
1112    Merge of the primop3 branch (base) into the trunk to create 110.63.1.
1113    Significant changes in FLINT and the front end, mostly having to do
1114    with a reorganized system for handling primops.  Various bug fixes
1115    and improvements in printing signatures.
1116    
1117    ----------------------------------------------------------------------
1118    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
1119    Date: 2007/05/02
1120    Description:
1121    
1122    Preliminary commit of large ml-lpt revisions (more to come for 110.64).
1123    The ml-antlr specification format has changed: declarations such as
1124    %tokens and nonterminal definitions can occur *multiple* times in the
1125    same specification.  The semantics are such that each new declaration
1126    extends the previous ones.  Grammar extension constructs have also
1127    changed.  We now allow type annotations on nonterminals.  Finally,
1128    the refcell construct is now implemented using SML's regular reference
1129    cells, so the :== and !! notation has been deprecated.  All of these
1130    changes will appear in the 110.64 user guide for ml-lpt.
1131    
1132    The ml-antlr tool now does much more checking of specifications, and
1133    its error messages have been greatly improved.  There has also been
1134    some work on the error repair process for generated parsers, but this
1135    will be further improved in 110.64.
1136    
1137    ----------------------------------------------------------------------
1138    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1139    Date: 2007/04/24
1140    Description:
1141    
1142    More Basis fixes: The Char.fromString (etc.) functions did not handle
1143    the "\uxxxx" escape sequence.  There is still an outstanding bug with
1144    String.fromString the tail is a format escape.  I added a comment to
1145    this effect in Basis/Implementation/string.sml.
1146    Thanks to Andreas Rossberg.
1147    
1148    ----------------------------------------------------------------------
1149    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1150    Date: 2007/04/24
1151    Description:
1152    
1153    Added next function to Fifo and Queue modules in the SML/NJ Library.
1154    
1155    ----------------------------------------------------------------------
1156    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1157    Date: 2007/04/23
1158    Description:
1159    
1160    More Basis fixes: Time.fmt dropped the leading "~" for negative time
1161    values that had no whole part.
1162    
1163    ----------------------------------------------------------------------
1164    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1165    Date: 2007/04/23
1166    Description:
1167    
1168    More Basis fixes: the OS.Path module did not include the InvalidArc
1169    exception and did not do sufficient argument checking.
1170    Thanks to Stephen Weeks and Adam Chilpala.
1171    
1172    ----------------------------------------------------------------------
1173    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
1174    Date: 2007/04/16
1175    Description:
1176    
1177    Fixed an unbound functor bug in the AMD64 CM file.
1178    
1179    ----------------------------------------------------------------------
1180    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
1181    Date: 2007/04/12
1182    Description:
1183    
1184    Substantially changed the signature and implementation of AMD64
1185    SVID.  It now looks similar to the ia32 SVID, yet uses staged
1186    allocation.
1187    
1188    ----------------------------------------------------------------------
1189    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1190    Date: 2007/04/07
1191    Description:
1192    
1193    More Basis fixes: the WORD signature was missing {to,from}Large.
1194    Thanks to Andreas Rossberg.
1195    
1196    ----------------------------------------------------------------------
1197    Name: Matthias Blume (http://www.tti-c.org/blume/)
1198    Date: 2007/03/22 16:07:00 CDT
1199    Tag: release-110.63
1200    Description:
1201    
1202    Bumped version number to 110.63.
1203    
1204       !!!NEW BOOTFILES!!!
1205    
1206    ----------------------------------------------------------------------
1207    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
1208    Date: 2007/03/19
1209    Description:
1210    
1211    Fixed bogus operand sizes in AMD64 instruction spilling.
1212    
1213    ----------------------------------------------------------------------
1214    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1215    Date: 2007/03/19
1216    Description:
1217    
1218    Fixed a number of inconsistencies between the Posix.TTY structure
1219    and the Basis specification.  Thanks to Adam Chilpala.
1220    
1221    ----------------------------------------------------------------------
1222    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
1223    Date: 2007/02/26
1224    Description:
1225    
1226    Added preliminary support in MLRISC for Staged Allocation, a technique
1227    for specifying calling conventions (see
1228    http://www.eecs.harvard.edu/~nr/pubs/staged-abstract.html).
1229    Initially, we plan to use this code to generate C calls for the AMD64.
1230    
1231    The staged allocation code base resides in MLRISC/staged-allocation,
1232    and specialized calling conventions go in MLRISC/ARCH/staged-allocation.
1233    
1234    ----------------------------------------------------------------------
1235    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1236    Date: 2007/02/20
1237    Description:
1238    
1239      Bug fix: when SaveCState was called with two values to save, a subsequent
1240      GC could cause the RestoreCState to fail because the saved state had been
1241      promoted to tagless pair.
1242    
1243    ----------------------------------------------------------------------
1244    Name: Allen Leung (leunga (at) reservoir (dot) com)
1245    Date: 2007/02/20 19:08:00 EST
1246    Description:
1247    
1248        Bug triggered by:
1249    
1250        val a1 = Word8Array.array(a1, 0w0);
1251        val _  = Word8Array.update(a1, 0, 0w128);
1252    
1253        x86MCEmitter crashed when the immediate operand to MOVB was outside
1254    of the range -128 ... 127.  I've changed the code so that the range
1255    check is disabled.   Only the low order 8 bits of the immediate operand
1256    are now significant.
1257    
1258    
1259    ----------------------------------------------------------------------
1260    Name: Matthias Blume (http://www.tti-c.org/blume/)
1261    Date: 2007/02/15 09:20:00 CST
1262    Description:
1263    
1264    Eliminated any mention of lexgen.  (Lexgen was an early precursor
1265    to ml-ulex.)
1266    
1267    You should update your admin directory, so the shell scripts for
1268    maintaining your local copy of the repository reflect this change.
1269    
1270    ----------------------------------------------------------------------
1271    Name: Matthias Blume (http://www.tti-c.org/blume/)
1272    Date: 2007/02/14 15:45:00 CST
1273    Description:
1274    
1275    Fixed bug in CM's parallel make facility that failed to have
1276    the master re-link modules after letting slaves compile them.
1277    
1278    ----------------------------------------------------------------------
1279    Name: Matthias Blume (http://www.tti-c.org/blume/)
1280    Date: 2007/02/12 15:10:00 CST
1281    Description:
1282    
1283    Fixed typo in ml-build script that prevented library anchors
1284    from being registered.
1285    
1286    ----------------------------------------------------------------------
1287    Name: Matthias Blume (http://www.tti-c.org/blume/)
1288    Date: 2007/02/02 15:20:00 CST
1289    Tag: release-110.62
1290    Description:
1291    
1292    New working release (110.62).  NEW BOOTFILES!
1293    
1294    ----------------------------------------------------------------------
1295    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
1296    Date: 2007/01/31
1297    Description:
1298    
1299    Brought ml-lpt manual up-to-date with the code.  Many minor
1300    improvements to the tools, and a few minor bugfixes.  Prepared
1301    ml-lpt-lib for integration with new UTF8 structure.  Changed
1302    the interface for creating streams in ml-ulex (we now support
1303    stream creation from several kinds of sources).  Overall, the
1304    tools are now quite stable, and their interfaces are unlikely to
1305    change in a way that would break compatibility.  More work,
1306    however, is needed in the documentation.
1307    
1308    ----------------------------------------------------------------------
1309    Name: Matthias Blume (http://www.tti-c.org/blume/)
1310    Date: 2007/02/01 10:05:00 CST
1311    Description:
1312    
1313    Implemented library installer.  Moved CM plugin code for
1314    ml-burg, ml-lex, and ml-yacc out of CM source tree and into
1315    their respective trees.  Implemented CM plugin for ml-ulex
1316    and ml-antlr.  Used library installer for ml-burg, ml-ulex,
1317    and ml-antlr.
1318    
1319    For ml-yacc and ml-lex we continue to have permanently "plugged-in"
1320    CM tools.  (It turns out to be too messy to do otherwise because
1321    there is too much code that during installation relies on the presence
1322    of these tools -- resulting in a tricky ordering problem.)
1323    
1324    ----------------------------------------------------------------------
1325    Name: Matthias Blume (http://www.tti-c.org/blume/)
1326    Date: 2007/01/30 11:05:00 CST
1327    Description:
1328    
1329    Added SMLofNJ.shiftArgs which is like a shell's "shift" command.
1330    Modified CM's startup code to use shiftArgs as it processes
1331    command line arguments.  This way, the init code in each .sml-file
1332    or library that is mentioned at the top level will see only
1333    those arguments that have not yet been processed at this point.
1334    In other words, the init code can "seize control" and process the
1335    remaining command line.
1336    
1337    ----------------------------------------------------------------------
1338    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1339    Date: 2007/01/30
1340    Description:
1341    
1342    Added fromList function to the ORD_SET interface and lookup to the
1343    ORD_MAP interface.  See the SML/NJ Library CHANGES file for details.
1344    
1345    ----------------------------------------------------------------------
1346    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1347    Date: 2007/01/28
1348    Description:
1349    
1350    Added the UTF8 structure and signature from the Moby compiler to
1351    the SML/NJ library (and the CML library).  These modules will replace
1352    the version in the ml-lpt-lib.
1353    
1354    ----------------------------------------------------------------------
1355    Name: Matthias Blume (http://www.tti-c.org/blume/)
1356    Date: 2007/01/26 15:10:00 CST
1357    Description:
1358    
1359    Added entries to handle ml-lpt-lib.cm in installer.
1360    
1361    ----------------------------------------------------------------------
1362    Name: Matthias Blume (http://www.tti-c.org/blume/)
1363    Date: 2006/12/15 11:10:00 CST
1364    Tag: release-110.61
1365    Description:
1366    
1367    New working release (110.61).  NEW BOOTFILES!
1368    
1369    This supersedes the pre-brown-paper-bug release (see below).
1370    
1371    ----------------------------------------------------------------------
1372    Name: Matthias Blume (http://www.tti-c.org/blume/)
1373    Date: 2006/12/15 11:00:00 CST
1374    Description:
1375    
1376    Fixed brown-paper-bag bug with CM's pathname handling, which made
1377    installation fail under Win32.
1378    
1379    ----------------------------------------------------------------------
1380    Name: Matthias Blume (http://www.tti-c.org/blume/)
1381    Date: 2006/12/14 12:00:00 CST
1382    Description:
1383    
1384    Obsolete!
1385    
1386    [New working release (110.61).  NEW BOOTFILES!]
1387    
1388    ----------------------------------------------------------------------
1389    Name: John Reppy (http://cs.uchicago.edu/~jhr)
1390    Date: 2006/14/06 09:50:00 CST
1391    Description:
1392    
1393    Fixed the code in runtime/c-libs/posix-tty/{tcgetattr,tcsetattr}.c to
1394    get the c_cc termios data copied correctly.  Also moved the allocation
1395    of the string to avoid problems if it caused a GC.
1396    
1397    Thanks to Timothy Bourke for the bug report and fix.
1398    
1399    ----------------------------------------------------------------------
1400    Name: Matthias Blume (http://www.tti-c.org/blume)
1401    Date: 2006/12/08 09:50:00 CST
1402    Description:
1403    
1404    Added code to CM's "standard shell tool" implementation which
1405    causes it to tolerate (with a warning) the situation where the shell
1406    command fails (e.g., due to the shell command's non-existence)
1407    as long as all target files exist.
1408    
1409    This makes it possible to, e.g., build ml-yacc from sources even if
1410    svn checkout messed up the time stamps on files in such a way that
1411    yacc.grm is younger than yacc.grm.sml or yacc.grm.sig.  (Ml-yacc would
1412    be needed to re-process yacc.grm, but obviously it might not yet be
1413    available at that time.)
1414    
1415    ----------------------------------------------------------------------
1416    Name: John Reppy (http://cs.uchicago.edu/~jhr)
1417    Date: 2006/12/06 12:06:00 CST
1418    Description:
1419    
1420    Fixed the types of recvVecFrom, recvVecFrom', recvVecFromNB, and
1421    recvVecFromNB' in the SOCKET signature.  This error is actually
1422    in the SML Basis specification too.
1423    
1424    ----------------------------------------------------------------------
1425    Name: Matthias Blume (http://www.tti-c.org/blume/)
1426    Date: 2006/12/05 22:40:00 CST
1427    Description:
1428    
1429    CM now reports undefined anchors as errors and aborts execution
1430    rather than silently pressing on using bogus values.
1431    
1432    ----------------------------------------------------------------------
1433    Name: Matthias Blume (http://www.tti-c.org/blume/)
1434    Date: 2006/11/29 10:00:00 CST
1435    Description:
1436    
1437    Use Say.vsay for printing the "[autoloading]" message, so
1438    #set CM.Control.verbose false (or -Ccm.verbose=false) can be used
1439    to suppress them.
1440    
1441    ----------------------------------------------------------------------
1442    Name: Matthias Blume (http://www.tti-c.org/blume/)
1443    Date: 2006/11/10 11:00:00 CST
1444    Description:
1445    
1446    Fixed bug in CM where "with:" specifications that affect compilation
1447    (as opposed to parsing) were ignored.
1448    
1449    ----------------------------------------------------------------------
1450    Name: Matthias Blume (http://www.tti-c.org/blume/)
1451    Date: 2006/11/09 14:30:00 CST
1452    Tag: release-110.60
1453    Description:
1454    
1455    New working release (110.60).  NEW BOOTFILES!
1456    
1457    This is the first subversion-hosted release.  There are also changes
1458    to the directory layout.  Here is a table:
1459    
1460    (All pathnames are relative to the SML/NJ "root" directory.)
1461    
1462      config -> config
1463    
1464      src/cm -> base/cm
1465      src/compiler -> base/compiler
1466      src/runtime -> base/runtime
1467      src/system -> base/system
1468    
1469      src/cm/pgraph -> pgraph
1470    
1471      src/READMES -> base/READMES
1472      src/$notefile -> base/NOTES/$notefile
1473         for <notefile> in BOOT CVSNOTES CYGWININSTALL HISTORY INSTALL
1474                           MACOSXINSTALL WININSTALL
1475    
1476      src/smlnj-lib -> smlnj-lib
1477      src/MLRISC -> MLRISC
1478      ckit -> ckit
1479      src/cml -> cml
1480      src/eXene -> eXene
1481      src/heap2asm -> heap2asm
1482      src/lexgen -> lexgen
1483      src/ml-burg -> ml-burg
1484      src/ml-lex -> ml-lex
1485      src/ml-yacc -> ml-yacc
1486      src/ml-nlffi-lib -> nlffi/lib
1487      src/ml-nlffigen -> nlffi/gen
1488      src/smlnj-c -> smlnj-c
1489      src/tools/TraceDebugProf -> trace-debug-profile
1490    
1491    In addition, there is also a new
1492    
1493      ml-lpt
1494    
1495    directory containing two new program generator tools: ml-ulex and
1496    ml-antlr (a lexer generator that handles unicode and an ANTRL-inspired
1497    LL(k) parser generator). These tools are currently "beta-quality"
1498    
1499    The latest versios of the sources can now be obtained anonymously
1500    via subversion.  For this, it is useful to first check out
1501    
1502       svn://smlnj-gforge.cs.uchicago.edu/smlnj/admin
1503    
1504    and put the resulting directory on your shell's PATH.  This provides
1505    access to three shell scripts: checkout-all.sh, stat-all.sh,
1506    and refresh-all.sh.
1507    
1508    To create a freshly checked-out copy of the sources, do
1509    
1510       checkout-all.sh [dir]
1511    
1512    where dir is the optional SML/NJ root directory (default is ".").
1513    
1514    This creates the above directory layout.  Each subdirectory of
1515    the root is under individual subversion control.  The stat-all.sh
1516    and refresh-al.sh scripts apply "svn stat" or "svn update" to
1517    each of these subtrees.
1518    
1519    ----------------------------------------------------------------------
1520    Name: Matthias Blume (http://www.tti-c.org/blume/)
1521    Date: 2006/11/02 12:20:00 CST
1522    Description:
1523    
1524    Reorganized directory layout.
1525    
1526    This is a temporary solution, more reorganization is to come.
1527    
1528    The basic idea is to have a number of toplevel trees, each corresponding
1529    to a well-defined part of the overall system.  Each part can be
1530    maintained individually, even in separate source repositories,
1531    although currently we still serve everything out of the main
1532    smlnj-gforge tree.
1533    
1534    Installer and and scripts have been updated to reflect the new
1535    layout.  The installer (base/src/system/smlnj/installer) is now
1536    "scriptable" to avoid burning too much knowledge about the
1537    layout into SML source code.  The main script used by the installer
1538    is in config/actions.
1539    
1540    The main change is that many of the subdirectories of what used to
1541    be known as "src" have moved to the toplevel.  The "src" directory
1542    itself has moved down into a subtree called "base".  (We may eventually
1543    get rid of the extra level of indirection represented by "src".)
1544    
1545    The layout is now as follows:
1546    
1547      toplevel tree name | default repository
1548                         | (using gf=svn://smlnj-gforge.cs.uchicago.edu/smlnj)
1549      -------------------+----------------------------------------------------
1550      config             | $gf/config/trunk
1551                         |
1552      base               | $gf/sml/trunk
1553                         |
1554      smlnj-lib          | $gf/smlnj-lib/trunk
1555      MLRISC             | $gf/MLRISC/trunk
1556                         |
1557      ml-yacc            | $gf/ml-yacc/trunk
1558      ml-lex             | $gf/ml-lex/trunk
1559      ml-burg            | $gf/ml-burg/trunk
1560      lexgen             | $gf/lexgen/trunk
1561      heap2asm           | $gf/heap2asm/trunk
1562                         |
1563      cml                | $gf/cml/trunk
1564      eXene              | $gf/eXene/trunk
1565      ckit               | $gf/ckit/trunk
1566      nlffi              | $gf/nlffi/trunk
1567                         |
1568      smlnj-c            | $gf/smlnj-c/trunk
1569    
1570    In $gf/admin there are a few useful shell scripts for checking out
1571    and maintaining the entire collection of trees:
1572    
1573       admin/checkout-all.sh [dir]
1574          -- optionally creates dir and checks out all trees from their
1575             default repositories; if dir is missing, checkout into .
1576       admin/refresh-all.sh [dir]
1577          -- looks at all trees (from the above list) in dir (default: .)
1578             and runs "svn update" if the tree exists and is under
1579             subversion control;
1580             non-existing or non-subversion trees are skipped
1581       admin/stat-all.sh [dir]
1582          -- like refresh-all.sh, but runs "svn stat" instead
1583    
1584    ----------------------------------------------------------------------
1585    Name: Matthias Blume (http://www.tti-c.org/blume/)
1586    Date: 2006/10/05 11:30:00 CDT
1587    Tag: blume-20061005-merge-amd64
1588    Description:
1589    
1590    Merged code for AMD64 backend (Mike Rainey's work).
1591    Everything is hooked up but untested.
1592    
1593    ----------------------------------------------------------------------
1594    Name: Matthias Blume (http://www.tti-c.org/blume/)
1595    Date: 2006/05/17 14:00:00 CST
1596    Tag: Release_110_59
1597    Description:
1598    
1599    New working version (110.59).  NEW BOOTFILES!
1600    
1601    I am freezing 110.59.  Changes other than the version-number increase:
1602    
1603      eXene:
1604    
1605         * committed changes to eXene from Alley Stoughton:
1606             "fixed bugs in X authorization and resource handling, as well
1607              as in the pile and viewport widgets"
1608    
1609      Runtime:
1610        * fixed linking problem with NetBSD 3.x.
1611    
1612      Lexgen:
1613        * lexgen tool handles non-ascii characters in 7-bit mode the same
1614          way that ml-lex does
1615    
1616        * lexgen propagates exceptions the same way that ml-lex does
1617    
1618      CML:
1619        * Fixed a bug in the SyncVar polling functions (iGetPoll,
1620          mTakePoll, and mGetPoll) that could lead to livelock.
1621    
1622    ----------------------------------------------------------------------
1623    Name: Matthias Blume (http://www.tti-c.org/blume/)
1624    Date: 2006/05/12 15:20:00 CST
1625    Tag: blume-20060515-makedepend
1626    Description:
1627    
1628    Implemented ml-makedepend (i.e., CM.sources) in a better (more robust)
1629    way.  This should hopefully fix the ml-makedepend problem permanently.
1630    
1631    ----------------------------------------------------------------------
1632    Name: Matthias Blume (http://www.tti-c.org/blume/)
1633    Date: 2006/05/12 15:15:00 CST
1634    Tag: blume-20060512-makedepend
1635    Description:
1636    
1637    Fixed long-standing bug with ml-makedepend where it would output a
1638    spurious dependency to a non-existing file.  (This is a simple fix.
1639    It might need further looking into.)
1640    
1641    ----------------------------------------------------------------------
1642    Name: Matthias Blume (http://www.tti-c.org/blume/)
1643    Date: 2006/04/20 10:30:00 CDT
1644    Tag: blume-20060420-heap2exec
1645    Description:
1646    
1647    Committed patches received from Johannes 5 Joemann (joemann@befree.free.de)
1648    that enable heap2exec under Linux and FreeBSD.
1649    
1650    ----------------------------------------------------------------------
1651    Name: John Reppy
1652    Date: 2006/04/14
1653    Tag:
1654    Description:
1655    
1656    MLRISC changes:
1657      1) renamed GAS_PSEUDO_OPS to AS_PSEUDO_OPS and put it in its own file.
1658      2) added support for NOTB and XORB operators in pseudo-op expressions
1659      3) added DarwinPseudoOp functor that supports Darwin's assembler syntax.
1660      4) added support for 64-bit integer literals
1661    
1662    ----------------------------------------------------------------------
1663    Name: Matthias Blume (http://www.tti-c.org/blume/)
1664    Date: yyyy/mm/dd
1665    Tag: Release_110_58
1666    Description:
1667    
1668    New working version (110.58).  NEW BOOTFILES!
1669    
1670    ----------------------------------------------------------------------
1671    Name: Matthias Blume (http://www.tti-c.org/blume/)
1672    Date: 2006/03/01 22:15:00 CST
1673    Tag: blume-20060301-lexgen
1674    Description:
1675    
1676    Incorporated several bugfixes to lexgen.  Compiler now compiles to
1677    fixpoint when using lexgen instead of ml-lex.
1678    
1679    ----------------------------------------------------------------------
1680    Name: Matthias Blume (http://www.tti-c.org/blume/)
1681    Date: 2006/02/28 22:45:00 CST
1682    Tag: blume-20060228-lexgen
1683    Description:
1684    
1685    Removed ml-flex and added lexgen instead, using Aaron Turon's newly
1686    provided tarball.  The generated lexers still have problems.
1687    
1688    ----------------------------------------------------------------------
1689    Name: Matthias Blume (http://www.tti-c.org/blume/)
1690    Date: 2006/02/26 23:30:00 CST
1691    Tag: blume-20060226-ml-flex
1692    Description:
1693    
1694    Removed ml-flex' dependency on regexp-lib.cm.  Turned installation
1695    of ml-flex on by default.
1696    
1697    ----------------------------------------------------------------------
1698    Name: Matthias Blume (http://www.tti-c.org/blume/)
1699    Date: 2006/02/24 16:30:00 CST
1700    Tag: blume-20060224-ml-flex
1701    Description:
1702    
1703    Added ml-flex sources.  Partially integrated, but should not be
1704    turned on yet!  (Read: leave it commented-out in config/targets!)
1705    
1706    ----------------------------------------------------------------------
1707    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1708    Date: 2006/02/23
1709    Tag: jhr-20060223-x86-64
1710    Description:
1711    Changes to support building on x86-64 systems (using the 32-bit mode).
1712    Also cleaned up signal handling on Linux.  Support for pre-2.2 Linux
1713    kernels dropped.
1714    
1715    ----------------------------------------------------------------------
1716    Name: Allen Leung (leunga (at) reservoir (dot) com)
1717    Date: 2006/02/22 15:07:00 EST
1718    Tag: leunga-20060222-mdl-gen
1719    Description:
1720    
1721      CM has changed.  Updated the script for rebuilding the MLRISC generated
1722    files.
1723    
1724    ----------------------------------------------------------------------
1725    Name: Matthias Blume (http://www.tti-c.org/blume/)
1726    Date: 2006/02/14 17:30:00 CST
1727    Tag: blume-20060214-intel-mac
1728    Description:
1729    
1730    Hooked code for Darwin-specific Intel ABI into main compiler.
1731    (This is a temporary solution which relies on the fact that the
1732    compiler itself does not use NLFFI.  Eventually we need to divorce
1733    intel mac from generic x86 unix code and make separate sets of binaries.)
1734    
1735    ----------------------------------------------------------------------
1736    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1737    Date: 2006/02/13
1738    Tag: jhr-20060213-intel-mac
1739    Description:
1740    Changed MLRISC x86 CCalls for partial support of MacOS X ABI.
1741    
1742    ----------------------------------------------------------------------
1743    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1744    Date: 2006/02/06
1745    Tag: jhr-20060206-intel-mac
1746    Description:
1747    Changes to support MacOS X on Intel hardware.  The C-calls support in
1748    MLRISC must also be updated to support the MacOS X ABI.
1749    
1750    ----------------------------------------------------------------------
1751    Name: Matthias Blume (http://www.tti-c.org/blume/)
1752    Date: 2005/12/16 00:15:00 CST
1753    Tag: blume-20051216-cm
1754    Description:
1755    
1756    Improved error reporting and handling in CM.
1757    
1758    ----------------------------------------------------------------------
1759    Name: Matthias Blume (http://www.tti-c.org/blume/)
1760    Date: 2005/11/21 14:00:00 CST
1761    Tag: blume-20051121-html-lib
1762    Description:
1763    
1764    Enabling $/html-lib.cm in config/preloads did not work.  This is fixed
1765    now.  (Since the anchor mapping for html-lib.cm is not yet in effect
1766    at the time when config/preloads is processed, the library has to
1767    be referred to by another name.  In 110.57 this would be
1768    $SMLNJ-LIB/HTML/html-lib.cm.  I arranged for $smlnj/smlnj-lib/html-lib.cm
1769    to be valid as well.)
1770    
1771    Thanks to Todd Wilson (Fresno) for alerting me to this issue.
1772    
1773    ----------------------------------------------------------------------
1774    Name: Matthias Blume (http://www.tti-c.org/blume/)
1775    Date: 2005/11/19 13:45:00 CST
1776    Tag: Release_110_57
1777    Description:
1778    
1779    Moved release tag for 110.57.
1780    
1781    ----------------------------------------------------------------------
1782    Name: Matthias Blume (http://www.tti-c.org/blume/)
1783    Date: 2005/11/19 23:35:00 CST
1784    Tag: blume-20051119-fish
1785    Description:
1786    
1787    Fixed a problem in config/install.sh where it tries to "fish" the
1788    name of the CM metadata directory from the wrong place (because
1789    the physical location of basis.cm has changed).  Also, corrected the
1790    path anchor for $/html-lib.cm.  (Thanks to M. Fluet for pointing out
1791    these problems.)
1792    
1793    ----------------------------------------------------------------------
1794    Name: Matthias Blume (http://www.tti-c.org/blume/)
1795    Date: 2005/11/16 14:30:00 CST
1796    Tag: blume-orig-110_57
1797    Description:
1798    
1799    New working version (110.57).  NEW BOOTFILES!
1800    
1801    UPDATE: The release tag has been moved to include a fix for a brown-paper-
1802            bag glitch (see above).
1803    
1804    ----------------------------------------------------------------------
1805    Name: Matthias Blume (http://www.tti-c.org/blume/)
1806    Date: 2005/11/16 10:25:00 CST
1807    Tag: blume-22051116-btrace
1808    Description:
1809    
1810    Fixed problem with bogus exception message when using back-trace
1811    facility.
1812    
1813    ----------------------------------------------------------------------
1814    Name: Matthias Blume (http://www.tti-c.org/blume/)
1815    Date: 2005/11/15 22:35:00 CST
1816    Tag: blume-22051115-array2copy
1817    Description:
1818    
1819    Added simple implementation of Array2.copy.  (Warning: mostly untested.)
1820    
1821    ----------------------------------------------------------------------
1822    Name: Matthias Blume (http://www.tti-c.org/blume/)
1823    Date: 2005/11/15 21:35:00 CST
1824    Tag: blume-22051115-versiontool
1825    Description:
1826    
1827    Reversed change to src/system/smlnj/internals/versiontool.cm.  This
1828    file gets loaded as a tool -- by the equivalent of CM.make during the
1829    run of CMB.make.  Thus, CMB's path configuration is meaningless for
1830    it.  Instead, it has the status of "user code", so it should use
1831    $/basis.cm to refer to the Basis library.  (At least that's true for
1832    the purpose of bootstrapping the previous change.  In the future it
1833    might make sense to have versiontool.cm refer to
1834    $smlnj/basis/basis.cm, i.e., the version of the Basis that the
1835    compiler itself uses.)
1836    
1837    Also patched src/system/testml to have it activate those extra anchor
1838    bindings in config/extrapathconfig.
1839    
1840    ----------------------------------------------------------------------
1841    Name: Matthias Blume (http://www.tti-c.org/blume/)
1842    Date: 2005/11/15 16:35:00 CST
1843    Tag: blume-22051115-libraries
1844    Description:
1845    
1846    This change affects the way the following libraries are tied into
1847    the system:
1848    
1849       $/basis.cm
1850       $/smlnj-lib.cm
1851       $/pp-lib.cm
1852       $/controls-lib.cm
1853       $/html-lib.cm
1854       $/ml-yacc-lib.cm
1855    
1856    These libraries are now internally (as seen from the source code
1857    of the implementation itself) known by the following names:
1858    
1859       $smlnj/basis/basis.cm
1860       $smlnj/smlnj-lib/smlnj-lib.cm
1861       $smlnj/smlnj-lib/pp-lib.cm
1862       $smlnj/smlnj-lib/controls-lib.cm
1863       $smlnj/smlnj-lib/html-lib.cm
1864       $smlnj/ml-yacc/ml-yacc-lib.cm
1865    
1866    This makes it possible to work with code that requires different
1867    versions of these libraries, and which refers to these libraries using
1868    their "default" names (i.e., the first set of names above).  In other
1869    words, one can un-define or re-define those default names without
1870    compromising the proper functioning of the compiler itself.
1871    
1872    A similar procedure had already been performed for several of the
1873    MLRISC libraries that are linked into the compiler.  I did some
1874    cleanup on this code.
1875    
1876    A new file in the config directory (named extrapathconfig) is
1877    responsible for setting up path anchors that the compiler itself does
1878    not need, but that are typically required by user code.
1879    
1880    ----------------------------------------------------------------------
1881    Name: Matthias Blume
1882    Date: 2005/11/07 17:05:00 CST
1883    Tag: blume-20051107-slice
1884    Description:
1885    
1886    Fixed erroneous out-of-bounds test in the "update" function of
1887    various *ArraySlice modules.  (Thanks to Vesa A. Norrman for pointing
1888    out the problem.)
1889    
1890    Pushed some Basis changes through ML-Lex, CML, and eXene.
1891    
1892    ----------------------------------------------------------------------
1893    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1894    Date: 2005/11/07
1895    Description:
1896    Fixed a Basis incompatibility: The depreciated function Substring.all
1897    was removed (use Substring.full instead).
1898    
1899    ----------------------------------------------------------------------
1900    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1901    Date: 2005/11/05
1902    Description:
1903    Tweaked interval set API in SML/NJ library; see the CHANGES file for details.
1904    
1905    ----------------------------------------------------------------------
1906    Name: Matthias Blume (http://www.tti-c.org/blume/)
1907    Date: 2005/11/02 16:25:00 CST
1908    Tag: blume-20051102-hex
1909    Description:
1910    
1911    * Runtime system bootstrap code now accepts hex digits in BOOTLIST
1912      in either upper case or lower case format.
1913    * Pushed changes to names of Pack<N>{Big,Little} structures through
1914      CML and eXene.
1915    
1916    ----------------------------------------------------------------------
1917    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1918    Date: 2005/11/02
1919    Description:
1920    Fixed a Basis incompatibility: Pack<N>{Big,Little} structures should
1921    be called PackWord<N>{Big,Little}.
1922    
1923    ----------------------------------------------------------------------
1924    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1925    Date: 2005/10/28
1926    Description:
1927    Fixed a minor Basis incompatibility: hex digits should be upper case.
1928    
1929    ----------------------------------------------------------------------
1930    Name: Matthias Blume (blume (at) tti - c (dot) org)
1931    Date: 2005/10/25 16:00:00 CDT
1932    Tag: Release_110_56
1933    Description:
1934    
1935    New working version (110.56).  NEW BOOTFILES!
1936    
1937    ----------------------------------------------------------------------
1938    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1939    Date: 2005/10/25
1940    Description:
1941    Added interval sets to utility library (signatures INTERVAL_DOMAIN
1942    and INTERVAL_SET, and functor IntervalSetFn).
1943    
1944    ----------------------------------------------------------------------
1945    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1946    Date: 2005/10/14
1947    Description:
1948    Add Zhong Shao's fix for datatype equality functions.
1949    
1950    ----------------------------------------------------------------------
1951    Name: Allen Leung (leunga (at) reservoir (dot) com)
1952    Date: 2005/10/14 12:30:00 EST
1953    Tag: leunga-20051014-x86-spill
1954    Description:
1955    
1956    Bug fix a bug found by Carl Hauser.
1957    There was a typo in the reload code for FCMP in x86SpillInstr.sml.
1958    
1959    ----------------------------------------------------------------------
1960    Name: Allen Leung (leunga (at) reservoir (dot) com)
1961    Date: 2005/10/14 11:15:00 EST
1962    Tag: leunga-20051014-x86-asm
1963    Description:
1964    
1965    Removed some debugging code in file x86Asm.sml.
1966    The function emit_operand was printing out debugging output.
1967    
1968    ----------------------------------------------------------------------
1969    Name: John Reppy
1970    Date: 2005/07/27
1971    Tag:
1972    Description:
1973    
1974    Fixed ml-lex to recognize "\r" as representing carriage return.
1975    
1976    ----------------------------------------------------------------------
1977    Name: John Reppy
1978    Date: 2005/07/27
1979    Tag:
1980    Description:
1981    
1982    Fixed ml-yacc to work on files with non-native end-of-line
1983    encodings (e.g., Windows text file on a Unix system).
1984    
1985    ----------------------------------------------------------------------
1986    Name: John Reppy
1987    Date: 2005/07/20
1988    Tag:
1989    Description:
1990    
1991    Added changes from Dominic Evans (oldmanuk (at) gmail (dot) com)
1992    to support HPUX 11.
1993    
1994    ----------------------------------------------------------------------
1995    Name: John Reppy
1996    Date: 2005/07/06
1997    Tag:
1998    Description:
1999    
2000    Changes to the SML/NJ library.  See smlnj-lib/CHANGES for details.
2001    
2002    ----------------------------------------------------------------------
2003    Name: Matthias Blume (blume (at) tti - c (dot) org)
2004    Date: 2005/07/06 00:45:00 CDT
2005    Tag: blume-20050706-slice-copy
2006    Description:
2007    
2008    Fixed reversed logic for deciding whether to "copy up" or "copy down"
2009    in *-array-slice.sml.
2010    
2011    ----------------------------------------------------------------------
2012    Name: Allen Leung (leunga (at) reservoir (dot) com)
2013    Date: 2005/05/31 17:00:00 EST
2014    Tag: leunga-20050531-cygwin-fault-2
2015    Description:
2016    
2017    A typo in the cygwin code fixed.
2018    
2019    ----------------------------------------------------------------------
2020    Name: Allen Leung (leunga (at) reservoir (dot) com)
2021    Date: 2005/05/31 16:47:00 EST
2022    Tag: leunga-20050531-cygwin-fault
2023    Description:
2024    
2025    Updated Cygwin's fault/signal handling to match the Windows version.
2026    Updated the export list.
2027    
2028    ----------------------------------------------------------------------
2029    Name: Matthias Blume (blume (at) tti - c (dot) org)
2030    Date: 2005/05/18 13:35:00 CDT
2031    Tag: Release_110_54
2032    Description:
2033    
2034    New working version (110.54).  NEW BOOTFILES!
2035    
2036    ----------------------------------------------------------------------
2037    Name: Matthias Blume (blume (at) tti - c (dot) org)
2038    Date: 2005/05/18 11:58:00 CDT
2039    Tag: blume-20050518-installer
2040    Description:
2041    
2042    Added support scripts for Mac OS X PackageMaker and modified
2043    config/install.sh so that it supports re-dumping a heap image
2044    after customization.
2045    
2046    ----------------------------------------------------------------------
2047    Name: Matthias Blume (blume (at) tti - c (dot) org)
2048    Date: 2005/05/18 10:55:00 CDT
2049    Tag: blume-20050518-realdiv-noovld
2050    Description:
2051    
2052    Un-overloaded / to work around bug in overloading resolution code.
2053    
2054    ----------------------------------------------------------------------
2055    Name: Matthias Blume (blume (at) tti - c (dot) org)
2056    Date: 2005/05/16 23:50:00 CDT
2057    Tag: blume-20050516-redump-heap
2058    Description:
2059    
2060    Added mechanism for re-creating a heap file for the interactive system
2061    after configuration variables have been changed.
2062    
2063       CM.redump_heap : string -> unit
2064    
2065    This is much like SMLofNJ.exportML, but starting from the resulting
2066    heap does not return to the caller of CM.redump_heap but
2067    restarts the interactive system from scratch.  The original call of
2068    CM.redump_heap does not return but ends the interactive session.
2069    Thus, CM.redump_heap is a lot like SMLofNJ.exportFn.
2070    
2071    Internally, redump_heap winds the dynamic execution context back to
2072    the point where the original heap image was created and re-executes
2073    the heap image generation code in the boot code.
2074    
2075    ----------------------------------------------------------------------
2076    Name: Matthias Blume (blume (at) tti - c (dot) org)
2077    Date: 2005/05/09 21:55:00 CDT
2078    Tag: blume-20050509-word64
2079    Description:
2080    
2081    Added a hack to the existing hack known as Word64 to make fromString
2082    behave correctly.  I am still not sure whether Word64.scan will work
2083    as specified with respect to the interaction of radix and prefix.
2084    
2085    ----------------------------------------------------------------------
2086    Name: Allen Leung (leunga (at) reservoir (dot) com)
2087    Date: 2005/05/04 11:50:00 EST
2088    Tag: leunga-20050504-checkgc
2089    Description:
2090    
2091    Added a gc protocol checking phase.  This phase is enabled with
2092    the flag "check-gc".  "debug-check-gc" turns on the verbose mode.
2093    
2094    ----------------------------------------------------------------------
2095    Name: Matthias Blume (blume (at) tti - c (dot) org)
2096    Date: 2005/05/04 10:45:00 CDT
2097    Tag: blume-20050504-intinf
2098    Description:
2099    
2100    Fixed a bug in the implementation of div and mod for IntInf.
2101    Thanks to Neophytos Michael for reporting the problem.
2102    
2103    ----------------------------------------------------------------------
2104    Name: Matthias Blume (blume (at) tti - c (dot) org)
2105    Date: 2005/05/04 10:35:00 CDT
2106    Tag: blume-20050504-join
2107    Description:
2108    
2109    Added a "join" combinator to the ParserComb module in smlnj-lib.cm.
2110    
2111    ----------------------------------------------------------------------
2112    Name: Matthias Blume (blume (at) tti - c (dot) org)
2113    Date: 2005/02/28 23:40:00 CST
2114    Tag: blume-20050228-mVar
2115    Description:
2116    
2117    Fixed serious bug (brown paper bag variety) in new implementation of
2118    structure Atom in CML.  (I had accidentally used a mailbox instead of
2119    an mvar, leaving the door open for races.)
2120    
2121    ----------------------------------------------------------------------
2122    Name: Matthias Blume (blume (at) tti - c (dot) org)
2123    Date: 2005/02/25 15:00:00 CST
2124    Tag: Release_110_53
2125    Description:
2126    
2127    New working version (110.53).  NEW BOOTFILES!
2128    
2129    ----------------------------------------------------------------------
2130    Name: Matthias Blume (blume (at) tti - c (dot) org)
2131    Date: 2005/02/25 14:50:00 CST
2132    Tag: blume-20050225-susp
2133    Description:
2134    
2135    Brought back SMLofNJ.Susp.  The underlying suspension type is the one
2136    implemented in Core -- which means that it is the same as the one used
2137    by the lazy extension.
2138    
2139    ----------------------------------------------------------------------
2140    Name: Matthias Blume (blume (at) tti - c (dot) org)
2141    Date: 2005/02/24 16:50:00 CST
2142    Tag: blume-20050224-cml-atom
2143    Description:
2144    
2145    Simpler and at the same time more general implementation of structure
2146    Atom in CML.
2147    
2148    ----------------------------------------------------------------------
2149    Name: Matthias Blume (blume (at) tti - c (dot) org)
2150    Date: 2005/02/15 17:35:00 CST
2151    Tag: blume-20050215-tools
2152    Description:
2153    
2154    Created new "tools" directory under "src" and moved "TraceDebugProf"
2155    there.
2156    
2157    ----------------------------------------------------------------------
2158    Name: Matthias Blume (blume (at) tti - c (dot) org)
2159    Date: 2005/02/10 17:55:00 CST
2160    Tag: blume-20050210-longlong
2161    Description:
2162    
2163    Implemented "long long" arguments and results for NLFFI.  (Only the
2164    PPC/MacOS implementation is complete, the other backends still need to
2165    be updated.)
2166    
2167    ----------------------------------------------------------------------
2168    Name: Matthias Blume (blume (at) tti - c (dot) org)
2169    Date: 2005/01/24 17:40:00 CST
2170    Tag: blume-20050124-mlyacc
2171    Description:
2172    
2173    Minor cleanup in ML-Yacc rule printing mechanism.  This should fix a
2174    problem with certain "as" patterns which previously got rendered
2175    using incorrect syntax.
2176    
2177    ----------------------------------------------------------------------
2178    Name: Matthias Blume (blume (at) tti - c (dot) org)
2179    Date: 2005/01/18 12:00:00 CST
2180    Tag: blume-20050118-profile
2181    Description:
2182    
2183    Made time profiling code (interrupt handler) in runtime system aware
2184    of new array representation.
2185    
2186    ----------------------------------------------------------------------
2187    Name: Matthias Blume (blume (at) tti - c (dot) org)
2188    Date: 2005/01/14 18:00:00 CST
2189    Tag: blume-20050114-heap2exec
2190    Description:
2191    
2192    Implemented new (but still experimental) heap2exec facility.  This is
2193    tested under Mac OS X and should work under Linux (will test shortly).
2194    It will probably also work on the Sparc (will test some time later).
2195    
2196      - removed old "HACKED_STANDALONE" hack from runtime
2197    
2198    To be able to test this, uncomment the request for "heap2asm" in
2199    config/targets prior to installation.  (Notice that this is different
2200    from "heap2exec" mentioned below.  Not a typo.)
2201    
2202    To perform an actual test, run the command
2203    
2204       $ bin/heap2exec heapfile execfile
2205    
2206    (You can put heap2exec on your shell's path.)
2207    
2208    For example, run
2209    
2210      $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly
2211    
2212    This will create a standalone executable called "mly" which you can
2213    then invoke directly as a command.
2214    
2215    ----------------------------------------------------------------------
2216    Name: Matthias Blume (blume (at) tti - c (dot) org)
2217    Date: 2005/01/07 11:44:00 CST
2218    Tag: blume-20050107-mlstring
2219    Description:
2220    
2221    fixed off-by-one error in ML_STRING macro (globals.c)
2222    
2223    ----------------------------------------------------------------------
2224    Name: Matthias Blume (blume (at) tti - c (dot) org)
2225    Date: 2004/12/23 18:00:00 CST
2226    Tag: blume-20041223-santa
2227    Description:
2228    
2229    Made ml-build script "smarter" (but only very little).
2230    
2231    ----------------------------------------------------------------------
2232    Name: Matthias Blume (blume (at) tti - c (dot) org)
2233    Date: 2004/12/21 15:05:00 CST
2234    Tag: blume-20041221-longlong
2235    Description:
2236    
2237    * Implemented access to signed and unsigned long long data in NLFFI.
2238    (The parameter-passing part of the picture has not complete. But
2239    data structure access seems to work.)
2240    
2241    * Fixed CM's incorrect assumption that the PPC is little-endian.
2242      (On the Mac, it is big-endian.  And that's currently our only
2243      PPC platform.)
2244    
2245    ----------------------------------------------------------------------
2246    Name: Matthias Blume (blume (at) tti - c (dot) org)
2247    Date: 2004/12/21 12:50:00 CST
2248    Tag: blume-20041221-memory
2249    Description:
2250    
2251    Some cleanup in the $c/memory.cm library: separated some concerns by
2252    moving allocation code and memory access code each into their own
2253    files.
2254    
2255    ----------------------------------------------------------------------
2256    Name: Allen Leung (leunga (at) reservoir (dot) com)
2257    Date: 2004/12/17 16:12:00 EST
2258    Tag: leunga-20041217-cygwin-smlnj-home
2259    Description:
2260    
2261        The Unix I/O library of SML/NJ on cygwin does not understand
2262    Windows style pathname, so problems arise when SMLNJ_HOME is set
2263    to a Windows style pathname.  _run-sml now converts SMLNJ_HOME
2264    to a POSIX pathname on cygwin.
2265    
2266    ----------------------------------------------------------------------
2267    Name: Matthias Blume (blume (at) tti - c (dot) org)
2268    Date: 2004/12/16 13:35:00 CST
2269    Tag: Release_110_52
2270    Description:
2271    
2272    Last-minute changes incorporated into 110.52.  Release tag moved.
2273    
2274    The changes:
2275       - HashString.hashString' -> HashString.hashSubstring
2276       - bug fix in UnivariateStats
2277    
2278    ----------------------------------------------------------------------
2279    Name: Matthias Blume (blume (at) tti - c (dot) org)
2280    Date: 2004/12/15 23:40:00 CST
2281    Tag: blume-20041215-hashSubstring
2282    Description:
2283    
2284    - HashString.hashString' -> HashString.hashSubstring
2285    - corresponding changes in atom.sml
2286    - "de-compressed" (aka. un-obfuscated) code for UnivariateStats and
2287      added some comments
2288    
2289    ----------------------------------------------------------------------
2290    Name: Matthias Blume (blume (at) tti - c (dot) org)
2291    Date: 2004/12/15 15:30:00 CST
2292    Tag: (Release_110_52)
2293    Description:
2294    
2295    New working version (110.52).  NEW BOOTFILES!
2296    
2297    ----------------------------------------------------------------------
2298    Name: Matthias Blume (blume (at) tti - c (dot) org)
2299    Date: 2004/12/15 12:45:00 CST
2300    Tag: blume-20041215-spaces
2301    Description:
2302    
2303    More on the space problem (this time for Win32).
2304    
2305    ----------------------------------------------------------------------
2306    Name: Matthias Blume (blume (at) tti - c (dot) org)
2307    Date: 2004/12/14 17:30:00 CST
2308    Tag: blume-20041214-spaces
2309    Description:
2310    
2311    Hacked some of the scripts (in particular: the installer) to cope with
2312    spaces in filenames a bit better.  But beware: the current "solution"
2313    is likely still full of bugs and inherently incomplete.  (We need to
2314    do away with those shell scripts for a comprehensive solution.)
2315    
2316    ----------------------------------------------------------------------
2317    Name: Matthias Blume (blume (at) tti - c (dot) org)
2318    Date: 2004/12/13 14:45:00 CST
2319    Tag: blume-20041213-ml-makedepend
2320    Description:
2321    
2322    Fixed bug in code for ml-makedepend.
2323    
2324    ----------------------------------------------------------------------
2325    Name: Matthias Blume (blume (at) tti - c (dot) org)
2326    Date: 2004/12/09 16:30:00 CST
2327    Tag: blume-20041209-statistics
2328    Description:
2329    
2330    Added two simple but potentially useful statistics modules to SML/NJ Library.
2331    (See CHANGES file there.)
2332    
2333    ----------------------------------------------------------------------
2334    Name: Matthias Blume (blume (at) tti - c (dot) org)
2335    Date: 2004/12/01 16:50:00 CST
2336    Tag: blume-20041201-atom
2337    Description:
2338    
2339    smlnj-lib:
2340    
2341      Added function HashString.hashString' for substrings.
2342      Hand-inlined CharVector.foldl into HashString (for speed).
2343      Modified implementation of structure Atom to avoid extracting
2344      strings from substrings unless necessary.
2345      (Also see CHANGES file for smlnj-lib.)
2346    
2347    ----------------------------------------------------------------------
2348    Name: Matthias Blume (blume (at) tti - c (dot) org)
2349    Date: 2004/11/24 22:15:00 CST
2350    Tag: blume-20041124-cml
2351    Description:
2352    
2353    Made sure CML compiles when Position = Int64.
2354    
2355    ----------------------------------------------------------------------
2356    Name: Matthias Blume (blume (at) tti - c (dot) org)
2357    Date: 2004/11/24 14:30:00 CST
2358    Tag: blume-20041124-position
2359    Description:
2360    
2361    The compiler can now be compiled in a mode that makes structure Position
2362    equal to Int64.  The default, however, is unchanged (Position = Int31)
2363    for the time being.
2364    
2365    To enable 64-bit positions, use the following procedure:
2366    
2367    1. Start sml
2368    2. Autoload $smlnj/cmb.cm (if not already autoloaded)
2369    3. Type
2370          #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);
2371    4. Run CMB.make() as usual.
2372    
2373    This is barely tested.  The only test so far was a little SML program
2374    counting the number of characters in an 8-gigabyte file by
2375    reading it character-by-character.  That test was successful.
2376    
2377    In support of 64-bit positions, a number of new functions have been
2378    added to the runtime system.
2379    
2380    ----------------------------------------------------------------------
2381    Name: Matthias Blume (blume (at) tti - c (dot) org)
2382    Date: 2004/11/23 14:45:00 CST
2383    Tag: blume-20041123-useFile
2384    Description:
2385    
2386    Fixed a problem with unhelpful error messages related to problems with
2387    .cm- or .sml files that appear as part of the sml command line.
2388    
2389    ----------------------------------------------------------------------
2390    Name: Matthias Blume (blume (at) tti - c (dot) org)
2391    Date: 2004/11/18 15:40:00 CST
2392    Tag: Release_110_51
2393    Description:
2394    
2395    New working version (110.51).  NEW BOOTFILES!
2396    
2397    ----------------------------------------------------------------------
2398    Name: Matthias Blume (blume (at) tti - c (dot) org)
2399    Date: 2004/11/18 15:35:00 CST
2400    Tag: <none>
2401    Description:
2402    
2403    Enabled dlopen and friends for FreeBSD (as recommended by Johannes 5
2404    Joemann).
2405    
2406    ----------------------------------------------------------------------
2407    Name: Allen Leung (leunga (at) reservoir (dot) com)
2408    Date: 2004/11/17 16:05:21 EST 2004
2409    Tag: leunga-20041117-mlrisc-live-kill
2410    Description:
2411    
2412       Added support for MLTree constructs LIVE and KILL
2413    to all the architectures.
2414    
2415    ----------------------------------------------------------------------
2416    Name: Matthias Blume (blume (at) tti - c (dot) org)
2417    Date: 2004/11/13 00:20:00 CST
2418    Tag: blume-20041113-versiontool
2419    Description:
2420    
2421    - Stripped down the versiontool: It now only handles the version number.
2422      The date string is generated at bootstrap time (during makeml).
2423    
2424    - In a previous commit, fixed a minor issue with how polyequal is being
2425      translated.  In particular, the code now "looks through" abstractions.
2426      This results in slightly fewer polyEqual warnings and hopefully slightly
2427      more efficient code.  Important examples for where this matters are
2428      the new int64 and word64 types.
2429    
2430    ----------------------------------------------------------------------
2431    Name: Matthias Blume (blume (at) tti - c (dot) org)
2432    Date: 2004/11/12 00:30:00 CST
2433    Tag: blume-20041112-int64
2434    Description:
2435    
2436    Structure Int64 fully hooked in.  (The implementation is not very
2437    efficient, though.)
2438    
2439    ----------------------------------------------------------------------
2440    Name: Matthias Blume (blume (at) tti - c (dot) org)
2441    Date: 2004/11/11 17:30:00 CST
2442    Tag: blume-20041111-more64
2443    Description:
2444    
2445    All the pieces of Word64 are now there, with the exception of the
2446    conversions from and to LargeWord. (Eventually these need to be identities,
2447    but for the time being they don't even make sense because LargeWord is
2448    32-bit wide.)
2449    
2450    Also started to add similar support for Int64, but major pieces of that
2451    are still missing.
2452    
2453    ----------------------------------------------------------------------
2454    Name: Matthias Blume (blume (at) tti - c (dot) org)
2455    Date: 2004/11/11 00:15:00 CST
2456    Tag: blume-20041111-word64
2457    Description:
2458    
2459    Structure Word64 is now (almost) complete, word literals and patterns
2460    seem to work.  There are a few odd pieces missing.  In particular,
2461    I didn't do the {from,to}LargeWord parts because LargeWord is still Word32
2462    at the moment.
2463    
2464    Making Word64 official would mean that LargeWord becomes Word64.  But
2465    this requires extreme care because most word-word conversions have to
2466    go through LargeWord, so making a mistake means loss of efficiency or
2467    worse.  Eventually there will be a solution similar to (but actually
2468    simpler than) what I did with IntInf.
2469    
2470    ----------------------------------------------------------------------
2471    Name: Matthias Blume (blume (at) tti - c (dot) org)
2472    Date: 2004/11/10 18:12:00 CST
2473    Tag: blume-20041110-64bit
2474    Description:
2475    
2476    More 64-bit hacking (but still not even half-way there yet).
2477    Also, some assorted improvements to the handling of 8-bit words.
2478    
2479    ----------------------------------------------------------------------
2480    Name: Matthias Blume (blume (at) tti - c (dot) org)
2481    Date: 2004/11/09 17:50:00 CST
2482    Tag: <none>
2483    Description:
2484    
2485    Started adding some infrastructure for supporting 64-bit int- and
2486    word-types.  (Still in its very early stages.)
2487    
2488    ----------------------------------------------------------------------
2489    Name: Matthias Blume (blume (at) tti - c (dot) org)
2490    Date: 2004/10/28 10:45:00 CDT
2491    Tag: Release_110_50
2492    Description:
2493    
2494    New working version (110.50).  NEW BOOTFILES!
2495    
2496                 =====================
2497    
2498    Also:
2499    
2500      - Changend config/srcarchiveurl from a file just
2501        containing the URL string into a file containing
2502        shell script code.  The code has access to the $VERSION variable.
2503      - Made corresponding changes to config/install.sh and config/unpack.
2504      - Default contents of config/srcarchiveurl uses $VERSION and
2505        normally does not have to be edited to reflect a version change.
2506    
2507      (As a result, a version change can be done by just editing
2508       config/version, the rest is now automatic.)
2509    
2510    ----------------------------------------------------------------------
2511    Name: Matthias Blume (blume (at) tti - c (dot) org)
2512    Date: 2004/10/27 17:50:00 CDT
2513    Tag: blume-20041027-btrace-msg
2514    Description:
2515    
2516    BackTrace.monitor now also reports the source of the exception that
2517    triggered the trace.
2518    
2519    ----------------------------------------------------------------------
2520    Name: Matthias Blume (blume (at) tti - c (dot) org)
2521    Date: 2004/10/27 17:20:00 CDT
2522    Tag: blume-20041027-x86-c-calls
2523    Description:
2524    
2525    This is the HISTORY entry for two earlier commits, both concerning
2526    the x86 c-calls code in MLRISC:
2527    
2528      - added a missing LOAD in the code that deals with struct arguments
2529      - made sure the caller does not add the wrong number of bytes to the
2530        stack pointer after a call of a function returning a struct
2531        (the callee already pops the implicit argument which points to
2532         the space reserved for the result)
2533    
2534    ----------------------------------------------------------------------
2535    Name: Allen Leung (leunga (at) reservoir (dot) com)
2536    Date: 2004/10/24 14:00:00 EST
2537    Tag: leunga-20041024-x86-gas-fucomip
2538    Description:
2539    
2540       John discovered a bug in the syntax of fucomip.
2541       The opcodes FU?COMIP? have been changed to
2542    
2543           fu?comip? %st(i), %st
2544    
2545    ----------------------------------------------------------------------
2546    Name: Matthias Blume (blume (at) tti - c (dot) org)
2547    Date: 2004/10/20 15:06:00 CDT
2548    Tag: blume-20041020-standalone-backtrace
2549    Description:
2550    
2551    Added a mechanism for getting back-trace information from standalone
2552    programs.  Here is how it works:
2553    
2554       1. The part of the program from which you want to get backtrace
2555          information (usually the whole program) should be wrapped with
2556          BackTrace.monitor.  This is a (unit->'a)->'a function, and your
2557          main program could be modified from something like
2558    
2559             fun main (pgm, args) = ...
2560    
2561         to
2562    
2563            fun main (pgm, args) = BackTrace.monitor (fn () => ...)
2564    
2565       2. To be able to access BackTrace.monitor, you have to add
2566          library $smlnj-tdp/plugins.cm to the .cm file that contains your
2567          main function.
2568    
2569       3. Remove all compiled code (i.e., all the .cm/ subdirectories that
2570          CM might have created in the past for your project).
2571    
2572       4. Build the system using this command line:
2573    
2574             ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \
2575                      myprog.cm MyProg.main myprog
2576    
2577          instead of the usual
2578    
2579             ml-build myprog.cm MyProg.main myprog
2580    
2581    I changed a library name:
2582    
2583       $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm
2584    
2585    New libraries:
2586    
2587       $smlnj-tdp/back-trace.cm
2588          -- when loaded causes the back-trace plugin to be installed
2589       $smlnj-tdp/coverage.cm
2590          -- when loaded causes the coverage plugin to be installed
2591    
2592    ----------------------------------------------------------------------
2593    Name: Matthias Blume (blume (at) tti - c (dot) org)
2594    Date: 2004/10/18 16:45:00 CDT
2595    Tag: blume-20041018-groupowner
2596    Description:
2597    
2598    Added an "obsolete" warning for the "group owner" syntax to CM's parser.
2599    
2600    Eliminated group owner specs from .cm files throughout the source tree.
2601    
2602    ----------------------------------------------------------------------
2603    Name: Matthias Blume (blume (at) tti - c (dot) org)
2604    Date: 2004/10/15 15:45:00 CDT
2605    Tag: blume-20041015-coverage
2606    Description:
2607    
2608    * Test coverage tool added!
2609    * Further reorganization of tracing-, debugging-, and profiling support:
2610    
2611        - moved original BTImp -- now called BackTrace -- into a separate
2612          library called $/trace-debug-profile.cm
2613        - eliminated all mentions of BTrace from SMLofNJ.Internals
2614        - only the instrumentation mechanism is now left in the compiler proper
2615        - BackTrace module is a plugin which is NOT plugged in by default
2616        - Coverage module is another such plugin
2617    
2618    To get the benefits of any of these plugin modules, the code in
2619    question must be compiled with tdp instrumentation turned on.  This
2620    can be done by setting SMLofNJ.Internals.TDP.mode to true.
2621    (The ref cell is also controlled via the -Ctdp.instrument=... switch.)
2622    
2623    Plugins are selected at link time.  (Pre-compiled instrumented code
2624    can be re-loaded with different plugins in effect.)  When an
2625    instrumented module is linked, whatever plugins are at that time
2626    enabled will come into effect for that module.
2627    
2628    To enable the back-trace plugin, load library $/trace-debug-profile.cm
2629    and invoke BackTrace.install() (e.g., from the interactive prompt).
2630    To enable the coverage plugin, load the same library and invoke
2631    Coverage.install().
2632    
2633    Back-traces are generated automatically on uncaught exceptions and
2634    when the code in question explicitly invokes BackTrace.trigger().
2635    
2636    Coverage (and execution frequency-) information must be queried
2637    explicitly by calling Coverage.not_covered and Coverage.hot_spots.
2638    
2639    ----------------------------------------------------------------------
2640    Name: Matthias Blume (blume (at) tti - c (dot) org)
2641    Date: 2004/10/14 17:40:00 CDT
2642    Tag: blume-20041014-tdp-core
2643    Description:
2644    
2645    Snapshot of a significant overhaul of how the trace/debug/profile support
2646    is hooked into the system (specifically: Core and SMLofNJ.Internals).
2647    
2648    ----------------------------------------------------------------------
2649    Name: Matthias Blume (blume (at) tti - c (dot) org)
2650    Date: 2004/10/13 16:34:00 CDT
2651    Tag: blume-20041013-tdp
2652    Description:
2653    
2654    Some rationalization of names:
2655    
2656       structure BTrace -> structure TDPInstrument
2657       etc.
2658    
2659    This is is preparation of using the original back-trace
2660    instrumentation for other purposes.  "TDP" stands for
2661    Trace/Debug/Profile.
2662    
2663    The control flag controlling whether instrumentation is on or off is now
2664    registered under a different name, so instead of running sml as
2665    
2666     sml -Cinstrument.btrace-mode=true
2667    
2668    one has to say
2669    
2670     sml -Ctdp.instrument=true
2671    
2672    ----------------------------------------------------------------------
2673    Name: Matthias Blume (blume (at) tti - c (dot) org)
2674    Date: 2004/10/11 16:37:00 CDT
2675    Tag: blume-20041011-regions
2676    Description:
2677    
2678    Made some minor modifications to elabcore.sml to have source regions
2679    be propagated more tightly -- resulting in better (i.e., smaller)
2680    regions being reported in error- and debug messages.
2681    
2682    ----------------------------------------------------------------------
2683    Name: Matthias Blume (blume (at) tti - c (dot) org)
2684    Date: 2004/10/08 22:50:00 CDT
2685    Tag: blume-20041008-cmkw
2686    Description:
2687    
2688    Fixed handling of keywords in .cm files: After seeing "is" the lexer
2689    treats subsequent occurrences of "group", "library", "source", "is",
2690    "*", and "-" as ordinary identifiers rather than keywords.
2691    
2692    Most seriously, this fixes a problem with CM's "shell" tool.  The tool
2693    is supposed to accept a tool argument called "source", but this did
2694    not work because of the clash with the keyword.
2695    
2696    ----------------------------------------------------------------------
2697    Name: Matthias Blume (blume (at) tti - c (dot) org)
2698    Date: 2004/10/07 16:00:00 CDT
2699    Tag: blume-20041007-cleanup
2700    Description:
2701    
2702    Assorted cleanup work:
2703    
2704      - got rid of intstrmap in favor of using the library's
2705        hash table implementation
2706      - threw out most of the pathnames stuff, as it was not used anyway
2707      - simplified tokentable implementation
2708      - fixed some minor spelling errors
2709    
2710    ----------------------------------------------------------------------
2711    Name: Matthias Blume (blume (at) tti - c (dot) org)
2712    Date: 2004/10/06 15:15:15 CDT
2713    Tag: blume-20041006-handler
2714    Description:
2715    
2716    Cleaned up the absyn to reflect the invariant that HANDLE always
2717    carries a FNexp as part of the type definition.  This eliminates some
2718    superfluous sanity checks at runtime down the road.
2719    
2720    Some minor cleanup of the btrace code.
2721    
2722    ----------------------------------------------------------------------
2723    Name: Matthias Blume (blume (at) tti - c (dot) org)
2724    Date: 2004/10/01 10:20:30 CDT
2725    Tag: blume-20041001-slave
2726    Description:
2727    
2728    Added hack to make slave mode work in the presence of the version
2729    tool.  (Still, since the master does two passes over the code for
2730    CMB.make, the release number gets bumped twice when slaves are
2731    attached.  I don't know if this is worth fixing...)
2732    
2733    ----------------------------------------------------------------------
2734    Name: Matthias Blume (blume (at) tti - c (dot) org)
2735    Date: 2004/09/30 10:55:00 CDT
2736    Tag: blume-20040930-version
2737    Description:
2738    
2739    * Moved the "version" magic into its own little library under
2740      src/system/smlnj/internal.  This avoids expensive reconstruction of
2741      a stable src/compiler/core.cm.
2742    
2743    * At the same time, structure CompilerVersion is now known as
2744      structure SMLNJVersion.
2745    
2746    * Arranged for the version tool to NOT kick in when rebuilding the system
2747      (makeml -rebuild, fixpt).  Otherwise one would never reach a fixpoint.
2748      Also, loading the versiontool does not work when rebuilding the system
2749      because CM is not properly initialized at that time.
2750    
2751    ----------------------------------------------------------------------
2752    Name: Matthias Blume (blume (at) tti - c (dot) org)
2753    Date: 2004/09/29 14:00:00 CDT
2754    Tag: blume-20040929-autoversion
2755    Description:
2756    
2757    Implemented some CM magic to have
2758        file src/compiler/TopLevel/main/version.sml
2759    generated automagically.
2760    The version is taken from two files: config/version and config/release.
2761    The first is expected to contain a two-part version number such as 110.49.
2762    The second should contain a single number, but it may be missing.
2763    
2764    If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the
2765    time the version tool is loaded (which is the first time you say CMB.make),
2766    then the tool will increment the value stored in config/release every
2767    time CMB.make is invoked.
2768    
2769    The binfile format is now insensitive to anything beyond the first
2770    two components of a version number, so bumping the release does not render
2771    binfiles incompatible.  Auto-bumping can be used to keep track of versions
2772    during development without invalidating existing binfiles.
2773    
2774    In any case, every CMB.make updates the date information in version.sml.
2775    (This is the date that is printed in the banner.)
2776    
2777    ----------------------------------------------------------------------
2778    Name: Matthias Blume (blume (at) tti - c (dot) org)
2779    Date: 2004/09/28 10:53:00 CDT
2780    Tag: blume-20040928-controls
2781    Description:
2782    
2783    Some cleanup of the controls code.
2784    
2785    ----------------------------------------------------------------------
2786    Name: Matthias Blume (blume (at) tti - c (dot) org)
2787    Date: 2004/09/27 22:08:00 CDT
2788    Tag: blume-20040927-controls
2789    Description:
2790    
2791    Added two pieces of functionality to the Controls interface:
2792    
2793    1.   val save'restore: 'a control -> unit -> unit
2794    
2795       grabs the current value of the control in stage 1 and restores it
2796       in stage 2.
2797    
2798    2.   val set' : 'a control * 'a -> unit -> unit
2799    
2800       stores the given value into the control in stage 2 (i.e., delayed)
2801       but does all error checking in stage 1.
2802       (This is for string controls that need to do parse their argument --
2803        something that might fail.  In some cases, notably in CM, one
2804        already knows the intended argument but wants to delay the actual
2805        assignment until a time when error recovery would be more difficult.)
2806    
2807    Changed the handling of controls in tool arguments to classes "sml" and
2808    "lazysml":
2809       - use Controls.save'restore as a more robust way of restoring the
2810         old value (in particular: without having to re-parse the string)
2811       - use controls to handle the "overload" keyword in the init group
2812         (I believe this change actually fixes a long-standing obscure bug.)
2813    
2814    ----------------------------------------------------------------------
2815    Name: Matthias Blume (blume (at) tti - c (dot) org)
2816    Date: 2004/09/27 17:00:00 CDT
2817    Tag: blume-20040927-lazysml
2818    Description:
2819    
2820    Added a new tool class called "lazysml" to CM's tool chest.  The only
2821    difference to "sml" is that compilation is done with Control.lazysml
2822    set to true.  A source of class "lazysml" is automatically recognized
2823    by a file name suffix of ".lml".
2824    
2825    In addition to the above feature, the original class "sml" now also
2826    supports a tool argument "lazy" which has the same effect.  As a
2827    result, the following three lines are equivalent:
2828    
2829        foo.sml : lazysml
2830        foo.sml : sml (lazy)
2831        foo.sml (lazy)
2832    
2833    The setting goes into effect both during parsing and during
2834    compilation.  The original setting is restored right after parsing and
2835    after compilation, respectively.
2836    
2837    In addition to all the above, there is also a general mechanism to set
2838    ANY of the "controls" that are available at the command line via
2839    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
2840    apply as well. (In fact, "lazy" is implemented as a special case of
2841    the general mechanism.)
2842    
2843    The .cm file syntax uses a new keyword tool argument called "with".
2844    There are several ways of indicating the desired settings:
2845    
2846        foo.sml (with:parser.quotations=true)
2847        foo.sml (with:(name:parser.quotations value:true))
2848        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
2849        foo.sml (with:(name1=value1 name2=value2 ...))
2850        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
2851    
2852        etc.
2853    
2854    Another possible abbreviation is to leave out the =v or value:v part
2855    if the name refers to a boolean control (in which case the value is
2856    taken to be true).  Thus, one could get lazy sml also by saying:
2857    
2858        foo.sml (with:parser.lazy-keyword=true)
2859        foo.sml (with:parser.lazy-keyword)
2860        foo.sml (with:(name:parser.lazy-keyword value:true))
2861        foo.sml (with:(name:parser.lazy-keyword))
2862    
2863    ----------------------------------------------------------------------
2864    Name: Matthias Blume (blume (at) tti - c (dot) org)
2865    Date: 2004/09/24 16:22:00 CDT
2866    Tag: blume-20040924-ppc-long-branch
2867    Description:
2868    
2869    Turned message about "emiting long form of branch" off by default.
2870    Added a control flag to turn it back on when desired.
2871    
2872    ----------------------------------------------------------------------
2873    Name: Matthias Blume (blume (at) tti - c (dot) org)
2874    Date: 2004/09/24 16:05:00 CDT
2875    Tag: blume-20040924-rounding
2876    Description:
2877    
2878    Applied patch for setting rounding modes under Mac OS X.  Thanks to
2879    Melissa O'Neill for providing the code!
2880    
2881    ----------------------------------------------------------------------
2882    Name: Matthias Blume (blume (at) tti - c (dot) org)
2883    Date: 2004/09/23 17:30:00 CDT
2884    Tag: blume-20040923-envvars
2885    Description:
2886    
2887    1. Changed definition of type ControlRegistry.registry_tree to
2888       include control_info (i.e., the name of the controlling environment
2889       variable).
2890    
2891    2. Added command-line flags -e and -E to print the names of environment
2892       variables that can be used to control internal settings.
2893       (This uses the new API mentioned in 1.)
2894    
2895    ----------------------------------------------------------------------
2896    Name: Matthias Blume (blume (at) tti - c (dot) org)
2897    Date: 2004/09/13 16:50:00 CDT
2898    Tag: Release_110_49
2899    Description:
2900    
2901    New working version (110.49).  NEW BOOTFILES!
2902    
2903    ----------------------------------------------------------------------
2904    Name: Matthias Blume
2905    Date: 2004/09/13 16:20:00 CDT
2906    Tag: blume-20040913-config-mlrisc
2907    Description:
2908    
2909    Put target "mlrisc" back into the default list.
2910    (There is no harm in having it, and some users have expressed their
2911    wish to have "mlrisc" included by default.)
2912    
2913    ----------------------------------------------------------------------
2914    Name: John Reppy
2915    Date: 2004/09/13
2916    Tag: jhr-20040913-signals
2917    Description:
2918    
2919    Fixed the signal masking code to properly nest mask/unmask operations
2920    on a per-signal basis.
2921    
2922    ----------------------------------------------------------------------
2923    Name: Matthias Blume (blume (at) tti - c (dot) org)
2924    Date: 2004/09/08 13:20:00 CDT
2925    Tag: blume-20040908-heap-magic
2926    Description:
2927    
2928    Bumped the heap macig number to 0x09082004 to account for the changed
2929    layout of the ML frame under MacOS X.
2930    
2931    ----------------------------------------------------------------------
2932    Name: Allen Leung (leunga (at) reservoir (dot) com)
2933    Date: 2004/09/03 11:26:00 EST
2934    Tag: leunga-20040903-cygwin-install
2935    Description:
2936    
2937       Added a patch to _arch-n-opsys to enable the Cygwin runtime.
2938    The Cygwin runtime is turned on by setting the environment
2939    variable SMLNJ_CYGWIN_RUNTIME to 1.
2940    
2941    ----------------------------------------------------------------------
2942    Name: Matthias Blume (blume (at) tti - c (dot) org)
2943    Date: 2004/08/31 17:15:00 CDT
2944    Tag: blume-20040831-core
2945    Description:
2946    
2947    Added some exports to src/compiler/core.cm upon request by J. Joemann.
2948    
2949    ----------------------------------------------------------------------
2950    Name: Matthias Blume (blume (at) tti - c (dot) org)
2951    Date: 2004/08/30 17:55:00 CDT
2952    Tag: blume-20040830-installer
2953    Description:
2954    
2955    Upon request by Johannes Joemann:
2956    
2957    - improved ML code of installer to fall back to coping when renaming
2958      fails (i.e., when source and target are on different file systems);
2959      the code compiles but has yet to be tested in anger
2960    - removed mlrisc from list of default targets (config/targets)
2961    
2962    ----------------------------------------------------------------------
2963    Name: Matthias Blume (blume (at) tti - c (dot) org)
2964    Date: 2004/08/27 17:20:00 CDT
2965    Tag: blume-20040827-ptreql
2966    Description:
2967    
2968    Added ptreql primop to structure InlineT (upon request from Larry
2969    Paulson).
2970    
2971    ----------------------------------------------------------------------
2972    Name: Allen Leung (leunga (at) reservoir (dot) com)
2973    Date: 2004/08/15 21:21:00 EST
2974    Tag: leunga-110_48-udgraph
2975    Description:
2976    
2977    Another bug fix from Carl Hauser:
2978    
2979    diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
2980    > 48c48
2981    > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
2982    > e::L)
2983    > ---
2984    > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
2985    > Without this, any deletion of an edge in an undirected graph does severe
2986    > violence to the graph.
2987    
2988    ----------------------------------------------------------------------
2989    Name: Allen Leung (leunga (at) reservoir (dot) com)
2990    Date: 2004/08/10 23:35:00 EST
2991    Tag: leunga-110_48-ppc
2992    Description:
2993    
2994       The IBM/MacOS syntax switch on PPC was incorrectly swapped.
2995    
2996    ----------------------------------------------------------------------
2997    Name: Matthias Blume (blume (at) tti - c (dot) org)
2998    Date: 2004/08/10 12:00:00 CDT
2999    Tag: Release_110_48
3000    Description:
3001    
3002    New working version (110.48).  NEW BOOTFILES!
3003    
3004    ----------------------------------------------------------------------
3005    Name: Allen Leung (leunga (at) reservoir (dot) com)
3006    Date: 2004/08/09 12:21:00 EST
3007    Tag: leunga-110_47-dijsktra
3008    Description:
3009    
3010    Bug fix from Carl Hauser:
3011    
3012    single_source_shortest_paths in dijkstra.sml was observed to get wrong
3013    answers (by comparing to single_source_shortest_paths in bellman-ford.sml).
3014    
3015    The problem is that following the expression A.update(dist,s,Num.zero)
3016    it is necessary to update the priority queue using Q.decreaseWeight(Q,s).
3017    
3018    ----------------------------------------------------------------------
3019    Name: Matthias Blume (blume (at) tti - c (dot) org)
3020    Date: 2004/08/06 18:10:00 CDT
3021    Tag: blume-20040806-cmdline
3022    Description:
3023    
3024    Fiddled with handling of command-line options:
3025    
3026      * sml now quits after processing the command line
3027        if -H, -S, -h<n>, or -s<n> appears as the last
3028        command-line argument
3029      * a new option -q terminates the session when encountered on
3030        the command line; subsequent arguments will be ignored
3031      * bug fixes: short (erroneous) arguments are no longer ignored
3032        completely
3033    
3034    ----------------------------------------------------------------------
3035    Name: Allen Leung (leunga (at) reservoir (dot) com)
3036    Date: 2004/08/04 18:17:00 EST
3037    Tag: leunga-110_47-ppc-ibm-asm
3038    Description:
3039    
3040      - Added minimal IBM assembly syntax support for PowerPC.
3041    
3042      - Cygwin: manually changed the file cygwin.def.  Some exported symbols have
3043        been altered in the runtime.  We need an automatic way to keep the file
3044        in sync.
3045    
3046    ----------------------------------------------------------------------
3047    Name: Matthias Blume (blume (at) tti - c (dot) org)
3048    Date: 2004/08/04 14:00:00 CDT
3049    Tag: Release_110_47
3050    Description:
3051    
3052    New working version (110.47).  NEW BOOTFILES!
3053    
3054    ----------------------------------------------------------------------
3055    Name: Matthias Blume (blume (at) tti - c (dot) org)
3056    Date: 2004/08/03 14:25:00 CDT
3057    Tag: blume-20040803-callingconv
3058    Description:
3059    
3060    Added low-level support for choosing C calling conventions by
3061    twiddling the type of rawccall.  (See
3062    src/compiler/Semant/types/cproto.sml for details.)
3063    
3064    ----------------------------------------------------------------------
3065    Name: Matthias Blume (blume (at) tti - c (dot) org)
3066    Date: 2004/08/02 15:55:00 CDT
3067    Tag: blume-20040802-backout
3068    Description:
3069    
3070    Backed out of change to win32-filesys.c.  The earlier patch to
3071    get_file_time caused CM to produce files with the wrong time stamp.
3072    
3073    ----------------------------------------------------------------------
3074    Name: Matthias Blume (blume (at) tti - c (dot) org)
3075    Date: 2004/08/02 14:45:00 CDT
3076    Tag: blume-20040802-nlffi-win32
3077    Description:
3078    
3079    Added NLFFI support for Win32, adapted from a patch provided by David
3080    Hansel.  This is currently completely untested.  Also, the issue
3081    concerning stdcall vs. ccall is still unresolved.
3082    
3083    ----------------------------------------------------------------------
3084    Name: Matthias Blume (blume (at) tti - c (dot) org)
3085    Date: 2004/07/30 17:55:00 CDT
3086    Tag: blume-20040730-various
3087    Description:
3088    
3089    Gearing up towards 110.47...
3090    
3091    - various minor bugfixes to ml-nlffigen
3092    - a beginning of a manual for nlffi
3093    
3094    - eliminated 'export name=value' in config/install.sh as this does
3095      not work with certain versions of /bin/sh
3096      (Thanks to David King at Motorola for catching this.)
3097    
3098    - several bugfixes provided or suggested by David Hansel at Reactive Systems:
3099      - added a test for tm==NULL to gmtime.c and localtime.c
3100      - applied patch for incorrect GetFileTime under win32
3101      - toSeconds -> toMilliseconds in Win32/win32-process.sml
3102    
3103    ----------------------------------------------------------------------
3104    Name: Matthias Blume (blume (at) tti - c (dot) org)
3105    Date: 2004/07/21 18:20:00 CDT
3106    Tag: blume-20040721-nlffigen
3107    Description:
3108    
3109    - Fixed minor issue in ml-nlffigen: Now generate structure T_foo
3110      for a typedef to an incomplete type, but leave out the "typ" member.
3111      (This is just for consistency.)
3112    - Started to produce what is supposed to become better (i.e., comprehensive)
3113      documentation of what ml-nlffigen does and produces.
3114    
3115    ----------------------------------------------------------------------
3116    Name: Matthias Blume (blume (at) tti - c (dot) org)
3117    Date: 2004/07/14 16:25:00 CDT
3118    Tag: blume-20040714-union
3119    Description:
3120    
3121    Added C_UNION to c-calls/c-types.sml and updated the machinery
3122    (ml-nlffigen, cproto.sml) that conveys C function interface
3123    information to the code generator.
3124    
3125    However, the actual architecture-specific implementation of function
3126    arguments and results that are C unions is still not implemented.
3127    
3128    ----------------------------------------------------------------------
3129    Name: Allen Leung (leunga (at) reservoir (dot) com)
3130    Date: 2004/07/14 14:38:00 EST
3131    Tag: leunga-110_46_1-ppc-lwzu
3132    Description:
3133    
3134        Added these instructions to the PowerPC architecture:
3135        LBZU(X), LHZU(X), LWZU(X),
3136        STWU(X), STFDU, STFSU
3137    
3138        etc...
3139    
3140        Note: I haven't added their instruction encoding into the description.
3141    
3142    ----------------------------------------------------------------------
3143    Name: Allen Leung (leunga (at) reservoir (dot) com)
3144    Date: 2004/07/13 15:04:00 EST
3145    Tag: leunga-110_46_1-ppc-lwarx
3146    Description:
3147    
3148       Added the two instructions LWARX and STWCX to the PowerPC
3149    instruction set.
3150    
3151       A (untested) rewrite of loop-structure.sml.  The old version
3152    is completely broken.
3153    
3154    ----------------------------------------------------------------------
3155    Name: Matthias Blume (blume (at) tti - c (dot) org)
3156    Date: 2004/07/13 13:50:00 CDT
3157    Tag: blume-20040713-nlffi
3158    Description:
3159    
3160    - use paramAlloc to report c-calls with too many arguments
3161      (for PPC version where parameter area is pre-allocated)
3162    - added ccall_maxargspace to machspec (to implement the above)
3163    - made "make" commend in CM's "make" tool configurable
3164    - added option (default: on) for passing the name of the SML/NJ's "bin"
3165      directory to "make"; the call looks like this:
3166    
3167         make <options> SMLNJ_BINDIR=<dir> <target>
3168    
3169      This can be used by the Makefile to, e.g., pick the "right" version
3170      of ml-nlffigen.
3171    - minor code tweaks
3172    
3173    ----------------------------------------------------------------------
3174    Name: Matthias Blume (blume (at) tti - c (dot) org)
3175    Date: 2004/07/12 22:50:00 CDT
3176    Tag: blume-110_46_1-macosx-nlffi
3177    Description:
3178    
3179    NLFFI under Mac OS X now working (sort of).  This is largely untested,
3180    though.
3181    
3182    Note:  1. You have to make a new, clean build of the runtime system.
3183           2. There are new BOOTFILES, you have to use them!
3184              (Doing the bootstrap process yourself would be *very* painful!
3185               If you absolutely have to do it, build the system under
3186               a different architecture and then cross-compile.)
3187    
3188    Version bumped to 110.46.1 to account for runtime data format changes.
3189    
3190    ----------------------------------------------------------------------
3191    Name: Matthias Blume (blume (at) tti - c (dot) org)
3192    Date: 2004/06/18 14:30:00 CDT
3193    Tag: blume-20040618-unix
3194    Description:
3195    
3196    Changed the implementation of structure Unix so that the same stream
3197    is returned every time one of the {text,bin}{In,Out}streamOf functions
3198    is invoked on the same proc.  This is not what the spec currently
3199    says -- although IMO it arguably should.  (See discussion below.)
3200    
3201    ----------------------------------------------------------------------
3202    Name: Matthias Blume (blume (at) tti - c (dot) org)
3203    Date: 2004/06/17 18:15:00 CDT
3204    Tag: Release_110_46
3205    Description:
3206    
3207    New working version (110.46).  NEW BOOTFILES!
3208    
3209    ----------------------------------------------------------------------
3210    Name: Matthias Blume (blume (at) tti - c (dot) org)
3211    Date: 2004/06/17 17:20:00 CDT
3212    Tag: blume-20040617-timer-unix
3213    Description:
3214    
3215    Changed the interface of structures Timer and Unix to match the most
3216    recent Basis spec.
3217    
3218    In the case of Unix there still seems to be an open/weird issue:
3219    
3220       The {text,bin}{In,Out}streamOf functions are supposed to create
3221       fresh streams whenever they are called -- as opposed to have them
3222       return the same stream every time.  This design is supposed to
3223       prevent space leaks caused by proc values hanging on to streams.
3224    
3225       The reap function, on the other hand, is supposed to close the
3226       streams.  This cannot be done without having a handle on the
3227       stream in proc after all...
3228    
3229    I took the liberty to implement the following stopgap solution:
3230    
3231      The proc value hangs on to the most recently created stream(s).
3232      Reap closes those.  If either or both of the two streams hadn't
3233      been created at all yet, then reap will close the corresponding
3234      file descriptors directly.
3235    
3236    PS: I don't understand the original space leak argument anymore.  If
3237    a proc hangs on to the imperative stream, then I/O operations on those
3238    will advance the state of the cached stream and avoid the space leak.
3239    
3240    ----------------------------------------------------------------------
3241    Name: Matthias Blume (blume (at) tti - c (dot) org)
3242    Date: 2004/05/28 16:45:00 CDT
3243    Tag: blume-20040528-basis
3244    Description:
3245    
3246    Added signature PACK_REAL and exported functor PrimIO.
3247    
3248    ----------------------------------------------------------------------
3249    Name: Matthias Blume (blume (at) tti - c (dot) org)
3250    Date: 2004/05/25 16:00:00 CDT
3251    Tag: blume-20040525-group-owner
3252    Description:
3253    
3254    CM now ignores (but still accepts) the "owner" information in group
3255    descriptions.  The owner of a group is its next enclosing
3256    library. Each group must have a unique owner.  (There is a virtual
3257    "toplevel" library that owns groups which are not nested within a real
3258    library.)  Previously, each group had to explicitly declare its owner,
3259    and CM would check that such a declaration is correct.  The new scheme
3260    is to have CM check that for each group there is precisely one owning
3261    library.
3262    
3263    The advantage of the new scheme is that the programmer no longer needs
3264    to maintain the somewhat annoying owner information.  The downside is
3265    that CM cannot enforce the ownership rule across multiple runs of
3266    CM.make.  Fortunately, enclosing the same group in two different
3267    libraries A and B which are not part of the same program does not
3268    cause real problems.
3269    
3270    ----------------------------------------------------------------------
3271    Name: Matthias Blume (blume (at) tti - c (dot) org)
3272    Date: 2004/05/20 16:00:00 CDT
3273    Tag: blume-20040520-win32
3274    Description:
3275    
3276    Made the win32 version work again.  (Strangely, a misplaced comma had
3277    slipped into win32-process.c which prevented the runtime from being
3278    compiled correctly.)
3279    
3280    Also, included a minor addition to ml-build.bat analogous to what was
3281    done in blume-20040519-ml-build.
3282    
3283    ----------------------------------------------------------------------
3284    Name: Matthias Blume (blume (at) tti - c (dot) org)
3285    Date: 2004/05/19 22:10:00 CDT
3286    Tag: blume-20040519-ml-build
3287    Description:
3288    
3289    Arranged for ml-build to clean up after itself a little bit better.
3290    The script generates a temporary SML source file and compiles it using
3291    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
3292    gets rid of those at the end, so they don't accumulate under .cm.
3293    
3294    This required a minor change to install.sh because the name of the
3295    metadata directory (default: .cm) is actually configurable at
3296    installation time.
3297    
3298    ----------------------------------------------------------------------
3299    Name: Matthias Blume (blume (at) tti - c (dot) org)
3300    Date: 2004/05/18 15:50:00 CDT
3301    Tag: blume-20040518-mkreader
3302    Description:
3303    
3304    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
3305    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
3306    
3307    ----------------------------------------------------------------------
3308    Name: Matthias Blume (blume (at) tti - c (dot) org)
3309    Date: 2004/05/11 14:35:00 CDT
3310    Tag: blume-20040511-win32sock
3311    Description:
3312    
3313    Added previously missing support for many socket-related functions
3314    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
3315    for the voluminous patch!
3316    
3317    (I have not tested this patch under win32 yet.)
3318    
3319    Here is David's e-mail:
3320    
3321    Hi,
3322    
3323    Attached to this email you find a diff against sml/nj 110.45
3324    that will enable socket support under Windows.
3325    
3326    To apply the patch (using unix or cygwin)
3327    1) gunzip runtime.diff.gz
3328    2) "cd" into "src/runtime" in the source tree of a fresh
3329       110.45 installation.
3330    3) patch -p 1 < [your/path/to]runtime.diff
3331    
3332    The code compiles fine but has NOT yet been extensively tested.
3333    I only ran a few tests for basic socket client functionality
3334    (which worked fine).  Especially the functions that use ioctl
3335    are not tested at all and might not work (see below).
3336    
3337    I implemented this since we want to move to a newer version of sml/nj
3338    but need socket support in order to use it.  This is the first time I
3339    even had a look at the sml/nj source,  so please review my changes
3340    before making this part of the distribution!  Here are a few issues
3341    that I think might be better for someone to solve who is more
3342    familiar with the sml/nj source (and socket programming):
3343    
3344    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
3345      exception since I could not figure out what the windows equivalent
3346      of these functions is
3347    
3348    - In sockets-osdep.h there are a some #include statements that are
3349      only used in a few files that include sockets-osdep.h
3350    
3351    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
3352      does not process its return value since I don't know how to
3353      report an error upwards.
3354    
3355    - It would probably be good to have a call to WSACleanup() when
3356      the library is unloaded (if there is such a possibility).
3357      Otherwise I think Windows will take care of this automatically
3358      when the process finishes.
3359    
3360    - I used ioctlsocket() as a replacement for ioctl() but I have
3361      no idea if that is actually the proper replacement on Windows.
3362    
3363    - All these issues are marked in the code by "FIXME" comments.
3364    
3365    We use sml/nj extensively in our products and are quite happy
3366    with it.  I hope this contribution will help you.
3367    
3368    Keep up the good work!
3369    
3370    David
3371    
3372    ----------------------------------------------------------------------
3373    Name: Matthias Blume (blume (at) tti - c (dot) org)
3374    Date: 2004/05/11 14:20:00 CDT
3375    Tag: blume-20040511-installml
3376    Description:
3377    
3378    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
3379    the patch.)
3380    
3381    ----------------------------------------------------------------------
3382    Name: Matthias Blume (blume (at) tti - c (dot) org)
3383    Date: 2004/05/11 14:05:00 CDT
3384    Tag: blume-20040511-nlffi-netbsd
3385    Description:
3386    
3387    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
3388    the patch.)
3389    
3390    ----------------------------------------------------------------------
3391    Name: Matthias Blume (blume (at) tti - c (dot) org)
3392    Date: 2004/05/11 12:05:00 CDT
3393    Tag: blume-20040511-exports
3394    Description:
3395    
3396    As per request by Adam Chlipala <adam@hcoop.net>, extended various
3397    export lists in compiler-related .cm-files.
3398    
3399    ----------------------------------------------------------------------
3400    Name: Matthias Blume (blume (at) tti - c (dot) org)
3401    Date: 2004/05/11 11:35:00 CDT
3402    Tag: blume-20040511-allsource
3403    Description:
3404    
3405    The installer now honors the "src-smlnj" target again, although its meaning
3406    has changed from "all sources required for the compiler" to "all sources
3407    the installer knows about".  In other words, if you enable "src-smlnj"
3408    in the "targets" file, then the installer will pull in sources for
3409    everything.  (Notice that this refers to source code only.  Compiled
3410    code is still only installed for modules that were requested explicitly
3411    or which are required for other modules that were requested explicitly.)
3412    
3413    ----------------------------------------------------------------------
3414    Name: Matthias Blume (blume (at) tti - c (dot) org)
3415    Date: 2004/04/23 17:40:00 CDT
3416    Tag: blume-20040423-ieee-scan
3417    Description:
3418    
3419    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
3420    in the exponent calculation we get INF or ZERO (depending on the mantissa
3421    and the sign of the exponent).
3422    
3423    ----------------------------------------------------------------------
3424    Name: Matthias Blume (blume (at) tti - c (dot) org)
3425    Date: 2004/04/23 10:40:00 CDT
3426    Tag: blume-20040423-ml-build
3427    Description:
3428    
3429    The ml-build script now terminates with a non-0 status when something
3430    goes wrong.
3431    
3432    ----------------------------------------------------------------------
3433    Name: Matthias Blume (blume (at) tti - c (dot) org)
3434    Date: 2004/04/22 16:35:00 CDT
3435    Tag: blume-20040422-Option
3436    Description:
3437    
3438    Made exception Option to be the same as exception Option.Option
3439    (as it should be).
3440    
3441    ----------------------------------------------------------------------
3442    Name: Allen Leung (leunga (at) reservoir (dot) com)
3443    Date: 2004/03/19 14:40:00 EST
3444    Tag: leunga-20040319-cygwin-nlffi
3445    Description:
3446    
3447    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
3448    of SML/NJ.  The problem is that
3449    
3450       lib = dlopen(NULL, ...)
3451       f   = dlsym(lib, "malloc");
3452    
3453    does not work on Windows unless we explicitly export symbols
3454    such as 'malloc' during linking.  We fixed this by explicitly
3455    exporting the required symbols with the magic gcc incantation:
3456    
3457        -Wl,--export-all cygwin.def
3458    
3459    where cygwin.def is a file containing all the symbols that
3460    we wish to export.
3461    
3462    I suspect this is a Windows problem and we'll have to
3463    do the same (somehow with windows compilers) when
3464    we build the native win32 version with the system
3465    calls LoadLibrary/GetProcAddress.
3466    
3467    ----------------------------------------------------------------------
3468    Name: Matthias Blume (blume (at) tti - c (dot) org)
3469    Date: 2004/03/04 16:35:00 CST
3470    Tag: blume-20040304-intinf-fmt
3471    Description:
3472    
3473    Fixed problem with IntInf.fmt (sign would show up on the right instead
3474    of on the left for BIN, OCT, and HEX).
3475    
3476    ----------------------------------------------------------------------
3477    Name: Matthias Blume (blume (at) tti - c (dot) org)
3478    Date: 2004/03/04 11:25:00 CST
3479    Tag: blume-20040304-symlinks
3480    Description:
3481    
3482    Fixed problem with installer script (unix only) where bin/ml-yacc and
3483    friends pointed (via symlinks) to absolute locations instead of just
3484    .run-sml.  This was reported by Vesa A Norrman.
3485    
3486    ----------------------------------------------------------------------
3487    Name: Matthias Blume (blume (at) tti - c (dot) org)
3488    Date: 2004/02/13 14:50:00 CST
3489    Tag: Release_110_45
3490    Description:
3491    
3492    New working version (110.45). New bootfiles.
3493    
3494    ----------------------------------------------------------------------
3495    Name: Matthias Blume (blume (at) tti - c (dot) org)
3496    Date: 2004/01/26 15:15:15 CST
3497    Tag: blume-20040126-toplevel
3498    Description:
3499    
3500    Improved handling of exceptions at the interactive toplevel.
3501    
3502    ----------------------------------------------------------------------
3503    Name: Matthias Blume (blume (at) tti - c (dot) org)
3504    Date: 2004/01/26 11:25:00
3505    Tag: blume-20040126-app
3506    Description:
3507    
3508    Type of top-level "app" corrected.
3509    Added code for setting vp_limitPtrMask to Win32-specific runtime.
3510    
3511    ----------------------------------------------------------------------
3512    Name: Matthias Blume (blume (at) tti - c (dot) org)
3513    Date: 2003/11/18 17:10 CST
3514    Tag: blume-20031118-basis-fiddle
3515    Description:
3516    
3517    - changed Timer interface to what might become the spec
3518    - POSIX_FLAGS -> BIT_FLAGS according to spec
3519    - some other minor discrepancies wrt. spec eliminated
3520    
3521    ----------------------------------------------------------------------
3522    Name: Matthias Blume (blume (at) tti - c (dot) org)
3523    Date: 2003/11/06 12:00:00 CST
3524    Tag: Release_110_44
3525    Description:
3526    
3527    New working version (110.44). New bootfiles.
3528    
3529    ----------------------------------------------------------------------
3530    Name: Matthias Blume (blume (at) tti - c (dot) org)
3531    Date: 2003/11/04 11:50:00 CST
3532    Tag: blume-20031104-move-libraries
3533    Description:
3534    
3535    Eliminated the "dont_move_libraries" directive in config/targets.
3536    (The mechanism was broken and could not be fixed easily.  Moreover,
3537    there does not seem to be any reason not to move all libraries into
3538    lib during installation.  I originally implemented this directive as a
3539    backward-compatibility feature when I first introduced the new CM.
3540    Now that things have been stable for a long time and going back to the
3541    old CM is not an option, there is no reason to keep it around.)
3542    
3543    ----------------------------------------------------------------------
3544    Name: Matthias Blume (blume (at) tti - c (dot) org)
3545    Date: 2003/11/03 16:00:00 CST
3546    Tag: blume-20031103-installdir
3547    Description:
3548    
3549    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
3550    Richards for pointing out the problem and providing the solution.)