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