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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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