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