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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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