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