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