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