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