Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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