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