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