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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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