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