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