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