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