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