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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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