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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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