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