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