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