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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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