Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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