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