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 /doc/trunk/src/changelog/HISTORY.txt
ViewVC logotype

Diff of /doc/trunk/src/changelog/HISTORY.txt

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

revision 4001, Sat Dec 20 00:08:33 2014 UTC revision 4002, Sat Dec 20 16:46:57 2014 UTC
# Line 3  Line 3 
3  The Fellowship of SML/NJ  The Fellowship of SML/NJ
4  {version}, {releasedate}:  {version}, {releasedate}:
5    
6    This file documents changes to the Standard ML of New Jersey system since
7    March of 2000 (around Version 110.26).  The change log  primarily covers
8    the compiler, the compilation manager (*CM*), the *MLRISC* library, and
9    the runtime system.  There are occasional entries about other components
10    (_e.g._, the *SML/NJ Library* and *ML-LPT*), but these components have
11    their own change logs that should be consulted.
12    
13  //////////////////////////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////////
14  This change log is in ASCII doc format.  An HTML version of the  This change log is in ASCII doc format.  An HTML version of the
15  change log can be generated using the command  change log can be generated using the command
# Line 70  Line 77 
77    
78  More information about asciidoc can be found at http://asciidoc.org.  More information about asciidoc can be found at http://asciidoc.org.
79    
80    NOTE: the original HISTORY file was converted to ASCIIDOC using a Perl
81    script.  This script gets the basic structure for entries correct,
82    but there still needs to be a fair bit of editing to add ASCIIDOC
83    markup, fix indentation issues, nested lists, etc.  Working from most
84    recent to oldest, I've edited back to release 110.46 (2004/06/17).
85    
86  //////////////////////////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////////
87    
88  == Recent updates  // == Recent updates
89    
90    //====================================================================
91    == Version 110.78; 2014/12/25
92    
93  //--------------------------------------------------------------------  //--------------------------------------------------------------------
94  [2014/12/19]::  [2014/12/19]::
# Line 84  Line 100 
100  major changes in +overload.sml+, +types.sml+, +unify.sml+, +elabcore.sml+,  major changes in +overload.sml+, +types.sml+, +unify.sml+, +elabcore.sml+,
101  +typesutil.sml+. The overload declaration is still used in  +typesutil.sml+. The overload declaration is still used in
102  +pervasives.sml+, where the order of the specified instances of an  +pervasives.sml+, where the order of the specified instances of an
103  ordering determines the default interpretation (i.e. the first one).  ordering determines the default interpretation (_i.e._, the first one).
104  +  +
105  The +SCHEME+ and +LITERAL+ forms of tyvars are replaced by a new  The +SCHEME+ and +LITERAL+ forms of tyvars are replaced by a new
106  +OVLD+ form that tracks potential instantiations of the type of the  +OVLD+ form that tracks potential instantiations of the type of the
# Line 93  Line 109 
109  owner:[David MacQueen,http://cs.uchicago.edu/~dbm]  owner:[David MacQueen,http://cs.uchicago.edu/~dbm]
110    
111  //--------------------------------------------------------------------  //--------------------------------------------------------------------
112    [2014/12/18]::
113    +
114    Moved +base/NOTES/HISTORY+ file to +doc/src/changelog/HISTORY.txt+
115    and converted it to http://asciidoc.org[ASCIIDOC] format.  Have also
116    moved the +README+ files from +base/READMES+ to +doc/src/release-notes+.
117    These changes are part of a general effort to rationalize and improve
118    the documentation of the *SML/NJ* system.
119    +
120    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
121    
122    //--------------------------------------------------------------------
123  [2014/12/13]::  [2014/12/13]::
124  +  +
125    Preliminary cleanups before changes to overloading
126    +
127  Minor cleanup in +Elaborator/elaborate/elabcore+ (function +elabOVERLOADdec+)  Minor cleanup in +Elaborator/elaborate/elabcore+ (function +elabOVERLOADdec+)
128  and in +ElabData/types/typesutil.sml+ (function  +matchScheme+). Preparing for  and in +ElabData/types/typesutil.sml+ (function  +matchScheme+). Preparing for
129  a new method of handling type checking of overloaded operators. [Note  a new method of handling type checking of overloaded operators. [Note
# Line 140  Line 169 
169    
170    
171  //--------------------------------------------------------------------  //--------------------------------------------------------------------
172    [2014/08/21]::
173    +
174    Created new +doc+ tree in *SML/NJ* repository.  Currently this
175    tree just holds the sources for UNIX-style manual pages for
176    the command-line tools (fixing bug bugref:[35]).  The documentation
177    is written using the http://asciidoc.org[ASCIIDOC] format.  Use
178    the following *svn* command to checkout a copy of the documentation tree:
179    +
180    [source,sh]
181    -----------
182    svn co https://smlnj-gforge.cs.uchicago.edu/svn/smlnj/doc/trunk doc
183    -----------
184    +
185    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
186    
187    //--------------------------------------------------------------------
188  [2014/08/19]::  [2014/08/19]::
189  +  +
190  Compiling the runtime system on *cygwin* was failing because the file  Compiling the runtime system on *cygwin* was failing because the file
# Line 152  Line 197 
197  //--------------------------------------------------------------------  //--------------------------------------------------------------------
198  [2014/08/19]::  [2014/08/19]::
199  +  +
200  Added the actionToString' and repairToString' functions  Added the +actionToString'+ and +repairToString'+ functions
201  to the AntlrRepair structure.  These functions allow one to  to the +AntlrRepair+ structure.  These functions allow one to
202  specialize the printing of tokens based on whether they are  specialize the printing of tokens based on whether they are
203  being added or deleted.  being added or deleted.
204  +  +
# Line 1704  Line 1749 
1749  +  +
1750  The layout is now as follows:  The layout is now as follows:
1751  +  +
1752    toplevel tree name | default repository  [frame="none",width="90%",cols="<2,<3",options="header"]
1753                       | (using gf=svn://smlnj-gforge.cs.uchicago.edu/smlnj)  |===========================================================
1754    -------------------+----------------------------------------------------  | toplevel tree name | default repository
1755    config             | $gf/config/trunk                         (using +svn://smlnj-gforge.cs.uchicago.edu/smlnj+ for +$gf+)
1756                       |  +
1757    base               | $gf/sml/trunk  | +config+           | +$gf/config/trunk+
1758                       |  +
1759    smlnj-lib          | $gf/smlnj-lib/trunk  | +base+             | +$gf/sml/trunk+
1760    MLRISC             | $gf/MLRISC/trunk  +
1761                       |  | +smlnj-lib+        | +$gf/smlnj-lib/trunk+
1762    ml-yacc            | $gf/ml-yacc/trunk  | +MLRISC+           | +$gf/MLRISC/trunk+
   ml-lex             | $gf/ml-lex/trunk  
   ml-burg            | $gf/ml-burg/trunk  
   lexgen             | $gf/lexgen/trunk  
   heap2asm           | $gf/heap2asm/trunk  
                      |  
   cml                | $gf/cml/trunk  
   eXene              | $gf/eXene/trunk  
   ckit               | $gf/ckit/trunk  
   nlffi              | $gf/nlffi/trunk  
                      |  
   smlnj-c            | $gf/smlnj-c/trunk  
1763  +  +
1764  In $gf/admin there are a few useful shell scripts for checking out  | +ml-yacc+          | +$gf/ml-yacc/trunk+
1765    | +ml-lex+           | +$gf/ml-lex/trunk+
1766    | +ml-burg+          | +$gf/ml-burg/trunk+
1767    | +lexgen+           | +$gf/lexgen/trunk+
1768    | +heap2asm+         | +$gf/heap2asm/trunk+
1769    +
1770    | +cml+              | +$gf/cml/trunk+
1771    | +eXene+            | +$gf/eXene/trunk+
1772    | +ckit+             | +$gf/ckit/trunk+
1773    | +nlffi+            | +$gf/nlffi/trunk+
1774    +
1775    | +smlnj-c+          | +$gf/smlnj-c/trunk+
1776    |===========================================================
1777    +
1778    In +$gf/admin+ there are a few useful shell scripts for checking out
1779  and maintaining the entire collection of trees:  and maintaining the entire collection of trees:
1780  +  +
1781     admin/checkout-all.sh [dir]  --
1782        -- optionally creates dir and checks out all trees from their  +admin/checkout-all.sh+ [__dir__]::
1783           default repositories; if dir is missing, checkout into .  +
1784     admin/refresh-all.sh [dir]  optionally creates _dir_ and checks out all trees from their
1785        -- looks at all trees (from the above list) in dir (default: .)  default repositories; if _dir_ is missing, checkout into the
1786           and runs "svn update" if the tree exists and is under  current working directory.
1787    +
1788    +admin/refresh-all.sh+ [__dir__]::
1789    looks at all trees (from the above list) in _dir_ (default: .)
1790    and runs "+svn update+" if the tree exists and is under
1791           subversion control;           subversion control;
1792           non-existing or non-subversion trees are skipped           non-existing or non-subversion trees are skipped
1793     admin/stat-all.sh [dir]  +
1794        -- like refresh-all.sh, but runs "svn stat" instead  +admin/stat-all.sh+ [__dir__]::
1795    like +refresh-all.sh+, but runs "+svn stat+" instead
1796    --
1797  +  +
1798  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
1799    
# Line 1760  Line 1814 
1814  +  +
1815  I am freezing 110.59.  Changes other than the version-number increase:  I am freezing 110.59.  Changes other than the version-number increase:
1816  +  +
1817    eXene:  --
1818    eXene::
1819  +  +
1820       * committed changes to eXene from Alley Stoughton:  committed changes to eXene from Alley Stoughton:
1821           "fixed bugs in X authorization and resource handling, as well           "fixed bugs in X authorization and resource handling, as well
1822            as in the pile and viewport widgets"            as in the pile and viewport widgets"
1823  +  +
1824    Runtime:  Runtime::
     * fixed linking problem with NetBSD 3.x.  
1825  +  +
1826    Lexgen:    fixed linking problem with *NetBSD 3.x*.
1827      * lexgen tool handles non-ascii characters in 7-bit mode the same  +
1828    Lexgen::
1829    +
1830    --
1831        * *lexgen* tool handles non-ascii characters in 7-bit mode the same
1832        way that *ml-lex* does        way that *ml-lex* does
1833  +  +
1834      * lexgen propagates exceptions the same way that *ml-lex* does      * lexgen propagates exceptions the same way that *ml-lex* does
1835    --
1836    +
1837    CML::
1838  +  +
1839    CML:  Fixed a bug in the +SyncVar+ polling functions (+iGetPoll+,
1840      * Fixed a bug in the SyncVar polling functions (iGetPoll,  +mTakePoll+, and +mGetPoll+) that could lead to livelock.
1841        mTakePoll, and mGetPoll) that could lead to livelock.  --
1842  +  +
1843  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
1844    
# Line 1802  Line 1863 
1863  [2006/04/20]::  [2006/04/20]::
1864  +  +
1865  Committed patches received from Johannes 5 Joemann (joemann@befree.free.de)  Committed patches received from Johannes 5 Joemann (joemann@befree.free.de)
1866  that enable heap2exec under Linux and FreeBSD.  that enable *heap2exec* under +Linux+ and +FreeBSD+.
1867  +  +
1868  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
1869    
# Line 1810  Line 1871 
1871  [2006/04/14]::  [2006/04/14]::
1872  +  +
1873  MLRISC changes:  MLRISC changes:
1874    1) renamed GAS_PSEUDO_OPS to AS_PSEUDO_OPS and put it in its own file.  +
1875    2) added support for NOTB and XORB operators in pseudo-op expressions  --
1876    3) added DarwinPseudoOp functor that supports Darwin's assembler syntax.  . renamed +GAS_PSEUDO_OPS+ to +AS_PSEUDO_OPS+ and put it in its own file.
1877    4) added support for 64-bit integer literals  . added support for +NOTB+ and +XORB+ operators in pseudo-op expressions
1878    . added +DarwinPseudoOp+ functor that supports Darwin's assembler syntax.
1879    . added support for 64-bit integer literals
1880    --
1881  +  +
1882  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
1883    
# Line 1824  Line 1888 
1888  //--------------------------------------------------------------------  //--------------------------------------------------------------------
1889  [2006/03/01]::  [2006/03/01]::
1890  +  +
1891  Incorporated several bugfixes to lexgen.  Compiler now compiles to  Incorporated several bugfixes to *lexgen*.  Compiler now compiles to
1892  fixpoint when using lexgen instead of *ml-lex*.  fixpoint when using lexgen instead of *ml-lex*.
1893  +  +
1894  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 1832  Line 1896 
1896  //--------------------------------------------------------------------  //--------------------------------------------------------------------
1897  [2006/02/28]::  [2006/02/28]::
1898  +  +
1899  Removed ml-flex and added lexgen instead, using Aaron Turon's newly  Removed *ml-flex* and added *lexgen* instead, using Aaron Turon's newly
1900  provided tarball.  The generated lexers still have problems.  provided tarball.  The generated lexers still have problems.
1901  +  +
1902  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 1840  Line 1904 
1904  //--------------------------------------------------------------------  //--------------------------------------------------------------------
1905  [2006/02/26]::  [2006/02/26]::
1906  +  +
1907  Removed ml-flex' dependency on regexp-lib.cm.  Turned installation  Removed *ml-flex*'s dependency on *regexp-lib.cm*.  Turned installation
1908  of ml-flex on by default.  of *ml-flex* on by default.
1909  +  +
1910  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
1911    
1912  //--------------------------------------------------------------------  //--------------------------------------------------------------------
1913  [2006/02/24]::  [2006/02/24]::
1914  +  +
1915  Added ml-flex sources.  Partially integrated, but should not be  Added *ml-flex* sources.  Partially integrated, but should not be
1916  turned on yet!  (Read: leave it commented-out in config/targets!)  turned on yet!  (Read: leave it commented-out in ++config/targets++!)
1917  +  +
1918  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
1919    
1920  //--------------------------------------------------------------------  //--------------------------------------------------------------------
1921  [2006/02/23]::  [2006/02/23]::
1922  +  +
1923  Changes to support building on x86-64 systems (using the 32-bit mode).  Changes to support building on *x86-64* systems (using the 32-bit mode).
1924  Also cleaned up signal handling on Linux.  Support for pre-2.2 Linux  Also cleaned up signal handling on *Linux*.  Support for pre-2.2 *Linux*
1925  kernels dropped.  kernels dropped.
1926  +  +
1927  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
# Line 1865  Line 1929 
1929  //--------------------------------------------------------------------  //--------------------------------------------------------------------
1930  [2006/02/22]::  [2006/02/22]::
1931  +  +
1932    CM has changed.  Updated the script for rebuilding the MLRISC generated  *CM* has changed.  Updated the script for rebuilding the *MLRISC* generated
1933  files.  files.
1934  +  +
1935  owner:[Allen Leung]  owner:[Allen Leung]
# Line 1883  Line 1947 
1947  //--------------------------------------------------------------------  //--------------------------------------------------------------------
1948  [2006/02/13]::  [2006/02/13]::
1949  +  +
1950  Changed MLRISC x86 CCalls for partial support of MacOS X ABI.  Changed *MLRISC* x86 +CCalls+ for partial support of *Mac OS X* ABI.
1951  +  +
1952  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
1953    
1954  //--------------------------------------------------------------------  //--------------------------------------------------------------------
1955  [2006/02/06]::  [2006/02/06]::
1956  +  +
1957  Changes to support MacOS X on Intel hardware.  The C-calls support in  Changes to support *Mac OS X* on Intel hardware.  The C-calls support in
1958  MLRISC must also be updated to support the MacOS X ABI.  MLRISC must also be updated to support the *Mac OS X* ABI.
1959  +  +
1960  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
1961    
1962  //--------------------------------------------------------------------  //--------------------------------------------------------------------
1963  [2005/12/16]::  [2005/12/16]::
1964  +  +
1965  Improved error reporting and handling in CM.  Improved error reporting and handling in *CM*.
1966  +  +
1967  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
1968    
1969  //--------------------------------------------------------------------  //--------------------------------------------------------------------
1970  [2005/11/21]::  [2005/11/21]::
1971  +  +
1972  Enabling $/html-lib.cm in config/preloads did not work.  This is fixed  Enabling +$/html-lib.cm+ in +config/preloads+ did not work.  This is fixed
1973  now.  (Since the anchor mapping for html-lib.cm is not yet in effect  now.  (Since the anchor mapping for +html-lib.cm+ is not yet in effect
1974  at the time when config/preloads is processed, the library has to  at the time when +config/preloads+ is processed, the library has to
1975  be referred to by another name.  In 110.57 this would be  be referred to by another name.  In 110.57 this would be
1976  $SMLNJ-LIB/HTML/html-lib.cm.  I arranged for $smlnj/smlnj-lib/html-lib.cm  +$SMLNJ-LIB/HTML/html-lib.cm+.  I arranged for +$smlnj/smlnj-lib/html-lib.cm+
1977  to be valid as well.)  to be valid as well.)
1978  +  +
1979  Thanks to Todd Wilson (Fresno) for alerting me to this issue.  Thanks to Todd Wilson (Fresno) for alerting me to this issue.
# Line 1923  Line 1987 
1987  //--------------------------------------------------------------------  //--------------------------------------------------------------------
1988  [2005/11/19]::  [2005/11/19]::
1989  +  +
1990  Fixed a problem in config/install.sh where it tries to "fish" the  Fixed a problem in +config/install.sh+ where it tries to "fish" the
1991  name of the CM metadata directory from the wrong place (because  name of the *CM* metadata directory from the wrong place (because
1992  the physical location of basis.cm has changed).  Also, corrected the  the physical location of +basis.cm+ has changed).  Also, corrected the
1993  path anchor for $/html-lib.cm.  (Thanks to M. Fluet for pointing out  path anchor for +$/html-lib.cm+.  (Thanks to M. Fluet for pointing out
1994  these problems.)  these problems.)
1995  +  +
1996  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 1946  Line 2010 
2010  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2011  [2005/11/15]::  [2005/11/15]::
2012  +  +
2013  Added simple implementation of Array2.copy.  (Warning: mostly untested.)  Added simple implementation of +Array2.copy+.  (Warning: mostly untested.)
2014  +  +
2015  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2016    
2017  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2018  [2005/11/15]::  [2005/11/15]::
2019  +  +
2020  Reversed change to src/system/smlnj/internals/versiontool.cm.  This  Reversed change to +src/system/smlnj/internals/versiontool.cm+.  This
2021  file gets loaded as a tool -- by the equivalent of CM.make during the  file gets loaded as a tool -- by the equivalent of CM.make during the
2022  run of CMB.make.  Thus, CMB's path configuration is meaningless for  run of +CMB.make+.  Thus, CMB's path configuration is meaningless for
2023  it.  Instead, it has the status of "user code", so it should use  it.  Instead, it has the status of "user code", so it should use
2024  $/basis.cm to refer to the Basis library.  (At least that's true for  +$/basis.cm+ to refer to the Basis library.  (At least that's true for
2025  the purpose of bootstrapping the previous change.  In the future it  the purpose of bootstrapping the previous change.  In the future it
2026  might make sense to have versiontool.cm refer to  might make sense to have +versiontool.cm+ refer to
2027  $smlnj/basis/basis.cm, _i.e._, the version of the Basis that the  +$smlnj/basis/basis.cm+, _i.e._, the version of the Basis that the
2028  compiler itself uses.)  compiler itself uses.)
2029  +  +
2030  Also patched src/system/testml to have it activate those extra anchor  Also patched +src/system/testml+ to have it activate those extra anchor
2031  bindings in config/extrapathconfig.  bindings in +config/extrapathconfig+.
2032  +  +
2033  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2034    
# Line 1974  Line 2038 
2038  This change affects the way the following libraries are tied into  This change affects the way the following libraries are tied into
2039  the system:  the system:
2040  +  +
2041    ....................
2042     $/basis.cm     $/basis.cm
2043     $/smlnj-lib.cm     $/smlnj-lib.cm
2044     $/pp-lib.cm     $/pp-lib.cm
2045     $/controls-lib.cm     $/controls-lib.cm
2046     $/html-lib.cm     $/html-lib.cm
2047     $/ml-yacc-lib.cm     $/ml-yacc-lib.cm
2048    ....................
2049  +  +
2050  These libraries are now internally (as seen from the source code  These libraries are now internally (as seen from the source code
2051  of the implementation itself) known by the following names:  of the implementation itself) known by the following names:
2052  +  +
2053    ....................
2054     $smlnj/basis/basis.cm     $smlnj/basis/basis.cm
2055     $smlnj/smlnj-lib/smlnj-lib.cm     $smlnj/smlnj-lib/smlnj-lib.cm
2056     $smlnj/smlnj-lib/pp-lib.cm     $smlnj/smlnj-lib/pp-lib.cm
2057     $smlnj/smlnj-lib/controls-lib.cm     $smlnj/smlnj-lib/controls-lib.cm
2058     $smlnj/smlnj-lib/html-lib.cm     $smlnj/smlnj-lib/html-lib.cm
2059     $smlnj/ml-yacc/ml-yacc-lib.cm     $smlnj/ml-yacc/ml-yacc-lib.cm
2060    ....................
2061  +  +
2062  This makes it possible to work with code that requires different  This makes it possible to work with code that requires different
2063  versions of these libraries, and which refers to these libraries using  versions of these libraries, and which refers to these libraries using
# Line 1998  Line 2066 
2066  compromising the proper functioning of the compiler itself.  compromising the proper functioning of the compiler itself.
2067  +  +
2068  A similar procedure had already been performed for several of the  A similar procedure had already been performed for several of the
2069  MLRISC libraries that are linked into the compiler.  I did some  *MLRISC* libraries that are linked into the compiler.  I did some
2070  cleanup on this code.  cleanup on this code.
2071  +  +
2072  A new file in the config directory (named extrapathconfig) is  A new file in the config directory (named extrapathconfig) is
# Line 2010  Line 2078 
2078  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2079  [2005/11/07]::  [2005/11/07]::
2080  +  +
2081  Fixed erroneous out-of-bounds test in the "update" function of  Fixed erroneous out-of-bounds test in the "+update+" function of
2082  various *ArraySlice modules.  (Thanks to Vesa A. Norrman for pointing  various *++ArraySlice++ modules.  (Thanks to Vesa A. Norrman for pointing
2083  out the problem.)  out the problem.)
2084  +  +
2085  Pushed some Basis changes through ML-Lex, CML, and eXene.  Pushed some Basis changes through ML-Lex, CML, and eXene.
# Line 2021  Line 2089 
2089  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2090  [2005/11/07]::  [2005/11/07]::
2091  +  +
2092  Fixed a Basis incompatibility: The depreciated function Substring.all  Fixed a Basis incompatibility: The depreciated function +Substring.all+
2093  was removed (use Substring.full instead).  was removed (use +Substring.full+ instead).
2094  +  +
2095  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2096    
# Line 2036  Line 2104 
2104  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2105  [2005/11/02]::  [2005/11/02]::
2106  +  +
2107    --
2108  * Runtime system bootstrap code now accepts hex digits in BOOTLIST  * Runtime system bootstrap code now accepts hex digits in BOOTLIST
2109    in either upper case or lower case format.    in either upper case or lower case format.
2110  * Pushed changes to names of Pack<N>{Big,Little} structures through  * Pushed changes to names of ++Pack++<__N__>{++Big++,++Little++}
2111      structures through
2112    CML and eXene.    CML and eXene.
2113    --
2114  +  +
2115  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2116    
2117  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2118  [2005/11/02]::  [2005/11/02]::
2119  +  +
2120  Fixed a Basis incompatibility: Pack<N>{Big,Little} structures should  Fixed a Basis incompatibility: ++Pack++<__N__>{++Big++,++Little++}
2121  be called PackWord<N>{Big,Little}.  structures should be named ++PackWord++<__N__>{++Big++,++Little++}.
2122  +  +
2123  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2124    
# Line 2065  Line 2136 
2136  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2137  [2005/10/25]::  [2005/10/25]::
2138  +  +
2139  Added interval sets to utility library (signatures INTERVAL_DOMAIN  Added interval sets to utility library (signatures +INTERVAL_DOMAIN+
2140  and INTERVAL_SET, and functor IntervalSetFn).  and +INTERVAL_SET+, and functor +IntervalSetFn+).
2141  +  +
2142  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2143    
# Line 2081  Line 2152 
2152  [2005/10/14]::  [2005/10/14]::
2153  +  +
2154  Bug fix a bug found by Carl Hauser.  Bug fix a bug found by Carl Hauser.
2155  There was a typo in the reload code for FCMP in x86SpillInstr.sml.  There was a typo in the reload code for +FCMP+ in +x86SpillInstr.sml+.
2156  +  +
2157  owner:[Allen Leung]  owner:[Allen Leung]
2158    
2159  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2160  [2005/10/14]::  [2005/10/14]::
2161  +  +
2162  Removed some debugging code in file x86Asm.sml.  Removed some debugging code in file +x86Asm.sml+.
2163  The function emit_operand was printing out debugging output.  The function emit_operand was printing out debugging output.
2164  +  +
2165  owner:[Allen Leung]  owner:[Allen Leung]
# Line 2096  Line 2167 
2167  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2168  [2005/07/27]::  [2005/07/27]::
2169  +  +
2170  Fixed *ml-lex* to recognize "\r" as representing carriage return.  Fixed *ml-lex* to recognize "+\r+" as representing carriage return.
2171  +  +
2172  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2173    
# Line 2112  Line 2183 
2183  [2005/07/20]::  [2005/07/20]::
2184  +  +
2185  Added changes from Dominic Evans (oldmanuk (at) gmail (dot) com)  Added changes from Dominic Evans (oldmanuk (at) gmail (dot) com)
2186  to support HPUX 11.  to support *HPUX 11*.
2187  +  +
2188  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2189    
2190  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2191  [2005/07/06]::  [2005/07/06]::
2192  +  +
2193  Changes to the SML/NJ library.  See smlnj-lib/CHANGES for details.  Changes to the *SML/NJ Library*.  See smlnj-lib/CHANGES for details.
2194  +  +
2195  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2196    
# Line 2127  Line 2198 
2198  [2005/07/06]::  [2005/07/06]::
2199  +  +
2200  Fixed reversed logic for deciding whether to "copy up" or "copy down"  Fixed reversed logic for deciding whether to "copy up" or "copy down"
2201  in *-array-slice.sml.  in *++-array-slice.sml++.
2202  +  +
2203  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2204    
2205  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2206  [2005/05/31]::  [2005/05/31]::
2207  +  +
2208  A typo in the cygwin code fixed.  A typo in the Cygwin code fixed.
2209  +  +
2210  owner:[Allen Leung]  owner:[Allen Leung]
2211    
# Line 2153  Line 2224 
2224  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2225  [2005/05/18]::  [2005/05/18]::
2226  +  +
2227  Added support scripts for Mac OS X PackageMaker and modified  Added support scripts for *Mac OS X PackageMaker* and modified
2228  config/install.sh so that it supports re-dumping a heap image  +config/install.sh+ so that it supports re-dumping a heap image
2229  after customization.  after customization.
2230  +  +
2231  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2172  Line 2243 
2243  Added mechanism for re-creating a heap file for the interactive system  Added mechanism for re-creating a heap file for the interactive system
2244  after configuration variables have been changed.  after configuration variables have been changed.
2245  +  +
2246    [source,sml]
2247    ------------
2248     CM.redump_heap : string -> unit     CM.redump_heap : string -> unit
2249    ------------
2250  +  +
2251  This is much like SMLofNJ.exportML, but starting from the resulting  This is much like +SMLofNJ.exportML+, but starting from the resulting
2252  heap does not return to the caller of CM.redump_heap but  heap does not return to the caller of +CM.redump_heap+ but
2253  restarts the interactive system from scratch.  The original call of  restarts the interactive system from scratch.  The original call of
2254  CM.redump_heap does not return but ends the interactive session.  +CM.redump_heap+ does not return but ends the interactive session.
2255  Thus, CM.redump_heap is a lot like SMLofNJ.exportFn.  Thus, +CM.redump_heap+ is a lot like +SMLofNJ.exportFn+.
2256  +  +
2257  Internally, redump_heap winds the dynamic execution context back to  Internally, +redump_heap+ winds the dynamic execution context back to
2258  the point where the original heap image was created and re-executes  the point where the original heap image was created and re-executes
2259  the heap image generation code in the boot code.  the heap image generation code in the boot code.
2260  +  +
# Line 2189  Line 2263 
2263  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2264  [2005/05/09]::  [2005/05/09]::
2265  +  +
2266  Added a hack to the existing hack known as Word64 to make fromString  Added a hack to the existing hack known as +Word64+ to make +fromString+
2267  behave correctly.  I am still not sure whether Word64.scan will work  behave correctly.  I am still not sure whether +Word64.scan+ will work
2268  as specified with respect to the interaction of radix and prefix.  as specified with respect to the interaction of radix and prefix.
2269  +  +
2270  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2206  Line 2280 
2280  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2281  [2005/05/04]::  [2005/05/04]::
2282  +  +
2283  Fixed a bug in the implementation of div and mod for IntInf.  Fixed a bug in the implementation of +div+ and +mod+ for +IntInf+.
2284  Thanks to Neophytos Michael for reporting the problem.  Thanks to Neophytos Michael for reporting the problem.
2285  +  +
2286  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2214  Line 2288 
2288  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2289  [2005/05/04]::  [2005/05/04]::
2290  +  +
2291  Added a "join" combinator to the ParserComb module in smlnj-lib.cm.  Added the +join+ combinator to the +ParserComb+ module in the
2292    *SML/NJ Library*.
2293  +  +
2294  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2295    
# Line 2222  Line 2297 
2297  [2005/02/28]::  [2005/02/28]::
2298  +  +
2299  Fixed serious bug (brown paper bag variety) in new implementation of  Fixed serious bug (brown paper bag variety) in new implementation of
2300  structure Atom in CML.  (I had accidentally used a mailbox instead of  structure +Atom+ in *CML*.  (I had accidentally used a +mailbox+ instead of
2301  an mvar, leaving the door open for races.)  an +mvar+, leaving the door open for races.)
2302  +  +
2303  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2304    
# Line 2234  Line 2309 
2309  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2310  [2005/02/25]::  [2005/02/25]::
2311  +  +
2312  Brought back SMLofNJ.Susp.  The underlying suspension type is the one  Brought back +SMLofNJ.Susp+.  The underlying suspension type is the one
2313  implemented in Core -- which means that it is the same as the one used  implemented in Core, which means that it is the same as the one used
2314  by the lazy extension.  by the lazy extension.
2315  +  +
2316  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2244  Line 2319 
2319  [2005/02/24]::  [2005/02/24]::
2320  +  +
2321  Simpler and at the same time more general implementation of structure  Simpler and at the same time more general implementation of structure
2322  Atom in CML.  +Atom+ in *CML*.
2323  +  +
2324  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2325    
2326  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2327  [2005/02/15]::  [2005/02/15]::
2328  +  +
2329  Created new "tools" directory under "src" and moved "TraceDebugProf"  Created new "+tools+" directory under "+src+" and moved "+TraceDebugProf+"
2330  there.  there.
2331  +  +
2332  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2259  Line 2334 
2334  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2335  [2005/02/10]::  [2005/02/10]::
2336  +  +
2337  Implemented "long long" arguments and results for NLFFI.  (Only the  Implemented "+long long+" arguments and results for NLFFI.  (Only the
2338  PPC/MacOS implementation is complete, the other backends still need to  PPC/MacOS implementation is complete, the other backends still need to
2339  be updated.)  be updated.)
2340  +  +
# Line 2285  Line 2360 
2360  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2361  [2005/01/14]::  [2005/01/14]::
2362  +  +
2363  Implemented new (but still experimental) heap2exec facility.  This is  Implemented new (but still experimental) *heap2exec* facility.  This is
2364  tested under Mac OS X and should work under Linux (will test shortly).  tested under Mac OS X and should work under Linux (will test shortly).
2365  It will probably also work on the Sparc (will test some time later).  It will probably also work on the Sparc (will test some time later).
2366    Also removed old "+HACKED_STANDALONE+" hack from runtime
2367  +  +
2368    - removed old "HACKED_STANDALONE" hack from runtime  To be able to test *heap2exec*, uncomment the request for "+heap2asm+" in
 +  
 To be able to test this, uncomment the request for "heap2asm" in  
2369  config/targets prior to installation.  (Notice that this is different  config/targets prior to installation.  (Notice that this is different
2370  from "heap2exec" mentioned below.  Not a typo.)  from "heap2exec" mentioned below.  Not a typo.)
2371  +  +
# Line 2299  Line 2373 
2373  +  +
2374     $ bin/heap2exec heapfile execfile     $ bin/heap2exec heapfile execfile
2375  +  +
2376  (You can put heap2exec on your shell's path.)  (You can put *heap2exec* on your shell's path.)
2377  +  +
2378  For example, run  For example, run
2379  +  +
2380    $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly    $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly
2381  +  +
2382  This will create a standalone executable called "mly" which you can  This will create a standalone executable called "+mly+" that you can
2383  then invoke directly as a command.  then invoke directly as a command.
2384  +  +
2385  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2313  Line 2387 
2387  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2388  [2005/01/07]::  [2005/01/07]::
2389  +  +
2390  fixed off-by-one error in ML_STRING macro (globals.c)  fixed off-by-one error in +ML_STRING+ macro (+globals.c+)
2391  +  +
2392  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2393    
# Line 2327  Line 2401 
2401  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2402  [2004/12/21]::  [2004/12/21]::
2403  +  +
2404  * Implemented access to signed and unsigned long long data in NLFFI.  * Implemented access to signed and unsigned long long data in *NLFFI*.
2405  (The parameter-passing part of the picture has not complete. But  (The parameter-passing part of the picture has not complete. But
2406  data structure access seems to work.)  data structure access seems to work.)
2407  +  +
2408  * Fixed CM's incorrect assumption that the PPC is little-endian.  * Fixed *CM*'s incorrect assumption that the PPC is little-endian.
2409    (On the Mac, it is big-endian.  And that's currently our only    (On the Mac, it is big-endian.  And that's currently our only
2410    PPC platform.)    *PPC* platform.)
2411  +  +
2412  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2413    
2414  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2415  [2004/12/21]::  [2004/12/21]::
2416  +  +
2417  Some cleanup in the $c/memory.cm library: separated some concerns by  Some cleanup in the +$c/memory.cm+ library: separated some concerns by
2418  moving allocation code and memory access code each into their own  moving allocation code and memory access code each into their own
2419  files.  files.
2420  +  +
# Line 2349  Line 2423 
2423  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2424  [2004/12/17]::  [2004/12/17]::
2425  +  +
2426      The Unix I/O library of SML/NJ on cygwin does not understand  The Unix I/O library of SML/NJ on Cygwin does not understand
2427  Windows style pathname, so problems arise when +SMLNJ_HOME+ is set  Windows style pathname, so problems arise when +SMLNJ_HOME+ is set
2428  to a Windows style pathname.  _run-sml now converts +SMLNJ_HOME+  to a Windows style pathname.  The _run-sml script now
2429  to a POSIX pathname on cygwin.  converts +SMLNJ_HOME+ to a POSIX pathname on Cygwin.
2430  +  +
2431  owner:[Allen Leung]  owner:[Allen Leung]
2432    
# Line 2362  Line 2436 
2436  Last-minute changes incorporated into 110.52.  Release tag moved.  Last-minute changes incorporated into 110.52.  Release tag moved.
2437  +  +
2438  The changes:  The changes:
2439     - HashString.hashString' -> HashString.hashSubstring     - +HashString.hashString'+ -> +HashString.hashSubstring+
2440     - bug fix in UnivariateStats     - bug fix in +UnivariateStats+
2441  +  +
2442  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2443    
2444  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2445  [2004/12/15]::  [2004/12/15]::
2446  +  +
2447  - HashString.hashString' -> HashString.hashSubstring  - +HashString.hashString' -> HashString.hashSubstring
2448  - corresponding changes in atom.sml  - corresponding changes in +atom.sml+
2449  - "de-compressed" (aka. un-obfuscated) code for UnivariateStats and  - "de-compressed" (aka. un-obfuscated) code for +UnivariateStats+ and
2450    added some comments    added some comments
2451  +  +
2452  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2416  Line 2490 
2490  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2491  [2004/12/01]::  [2004/12/01]::
2492  +  +
2493  smlnj-lib:  Updates to *SML/NJ Library*
2494  +  +
2495    Added function HashString.hashString' for substrings.  --
2496    Hand-inlined CharVector.foldl into HashString (for speed).    * Added function +HashString.hashString'+ for substrings.
2497    Modified implementation of structure Atom to avoid extracting    * Hand-inlined +CharVector.foldl+ into +HashString+ (for speed).
2498      * Modified implementation of structure +Atom+ to avoid extracting
2499    strings from substrings unless necessary.    strings from substrings unless necessary.
2500    --
2501    +
2502    (Also see CHANGES file for smlnj-lib.)    (Also see CHANGES file for smlnj-lib.)
2503  +  +
2504  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2429  Line 2506 
2506  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2507  [2004/11/24]::  [2004/11/24]::
2508  +  +
2509  Made sure CML compiles when Position = Int64.  Made sure *CML* compiles when the +Position+ structure is +Int64+.
2510  +  +
2511  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2512    
2513  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2514  [2004/11/24]::  [2004/11/24]::
2515  +  +
2516  The compiler can now be compiled in a mode that makes structure Position  The compiler can now be compiled in a mode that makes structure +Position+
2517  equal to Int64.  The default, however, is unchanged (Position = Int31)  equal to +Int64+.  The default, however, is unchanged (+Position+ is +Int31+)
2518  for the time being.  for the time being.
2519  +  +
2520  To enable 64-bit positions, use the following procedure:  To enable 64-bit positions, use the following procedure:
2521  +  +
2522  1. Start sml  --
2523  2. Autoload $smlnj/cmb.cm (if not already autoloaded)  . Start sml
2524  3. Type  . Autoload $smlnj/cmb.cm (if not already autoloaded)
2525    . Type
2526    +
2527    [source,sml]
2528    ------------
2529        #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);        #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);
2530  4. Run CMB.make() as usual.  ------------
2531    +
2532    . Run +CMB.make()+ as usual.
2533    --
2534  +  +
2535  This is barely tested.  The only test so far was a little SML program  This is barely tested.  The only test so far was a little SML program
2536  counting the number of characters in an 8-gigabyte file by  counting the number of characters in an 8-gigabyte file by
# Line 2461  Line 2545 
2545  [2004/11/23]::  [2004/11/23]::
2546  +  +
2547  Fixed a problem with unhelpful error messages related to problems with  Fixed a problem with unhelpful error messages related to problems with
2548  .cm- or .sml files that appear as part of the sml command line.  +.cm+ or +.sml+ files that appear as part of the *sml* command line.
2549  +  +
2550  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2551    
# Line 2567  Line 2651 
2651      normally does not have to be edited to reflect a version change.      normally does not have to be edited to reflect a version change.
2652  +  +
2653    (As a result, a version change can be done by just editing    (As a result, a version change can be done by just editing
2654     config/version, the rest is now automatic.)  +config/version+, the rest is now automatic.)
2655  +  +
2656  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2657    
# Line 2583  Line 2667 
2667  [2004/10/27]::  [2004/10/27]::
2668  +  +
2669  This is the HISTORY entry for two earlier commits, both concerning  This is the HISTORY entry for two earlier commits, both concerning
2670  the x86 c-calls code in MLRISC:  the *x86* c-calls code in *MLRISC*:
2671  +  +
2672    - added a missing LOAD in the code that deals with struct arguments    - added a missing LOAD in the code that deals with struct arguments
2673    - made sure the caller does not add the wrong number of bytes to the    - made sure the caller does not add the wrong number of bytes to the
# Line 2596  Line 2680 
2680  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2681  [2004/10/24]::  [2004/10/24]::
2682  +  +
2683     John discovered a bug in the syntax of fucomip.  John discovered a bug in the syntax of +fucomip+.
2684     The opcodes FU?COMIP? have been changed to  The opcodes ++FU++?++COMIP++? have been changed to
2685  +  +
2686         fu?comip? %st(i), %st         fu?comip? %st(i), %st
2687  +  +
# Line 2609  Line 2693 
2693  Added a mechanism for getting back-trace information from standalone  Added a mechanism for getting back-trace information from standalone
2694  programs.  Here is how it works:  programs.  Here is how it works:
2695  +  +
2696     1. The part of the program from which you want to get backtrace  --
2697    . The part of the program from which you want to get backtrace
2698        information (usually the whole program) should be wrapped with        information (usually the whole program) should be wrapped with
2699        BackTrace.monitor.  This is a (unit->'a)->'a function, and your    BackTrace.monitor.  This is a +(unit->'a)->'a+ function, and your
2700        main program could be modified from something like        main program could be modified from something like
2701  +  +
2702    [source,sml]
2703    ------------
2704           fun main (pgm, args) = ...           fun main (pgm, args) = ...
2705    ------------
2706  +  +
2707       to       to
2708  +  +
2709    [source,sml]
2710    ------------
2711          fun main (pgm, args) = BackTrace.monitor (fn () => ...)          fun main (pgm, args) = BackTrace.monitor (fn () => ...)
2712    ------------
2713  +  +
2714     2. To be able to access BackTrace.monitor, you have to add  . To be able to access +BackTrace.monitor+, you have to add the
2715        library $smlnj-tdp/plugins.cm to the .cm file that contains your    library +$smlnj-tdp/plugins.cm+ to the +.cm+ file that contains your
2716        main function.        main function.
2717  +  +
2718     3. Remove all compiled code (_i.e._, all the .cm/ subdirectories that  . Remove all compiled code (_i.e._, all the .cm/ subdirectories that
2719        CM might have created in the past for your project).    *CM* might have created in the past for your project).
2720  +  +
2721     4. Build the system using this command line:  . Build the system using this command line:
2722  +  +
2723           ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \  [source,sh]
2724                    myprog.cm MyProg.main myprog  ------------
2725    ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm myprog.cm MyProg.main myprog
2726    ------------
2727  +  +
2728        instead of the usual        instead of the usual
2729  +  +
2730    [source,sh]
2731    ------------
2732           ml-build myprog.cm MyProg.main myprog           ml-build myprog.cm MyProg.main myprog
2733    ------------
2734    --
2735    +
2736    I changed the library name +$/trace-debug-profile.cm+ to +$smlnj-tdp/plugins.cm+,
2737    and added the following new libraries:
2738  +  +
2739  I changed a library name:  --
2740    +$smlnj-tdp/back-trace.cm+::
2741  +  +
2742     $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm  when loaded causes the back-trace plugin to be installed
2743  +  +
2744  New libraries:  +$smlnj-tdp/coverage.cm+::
2745  +  +
2746     $smlnj-tdp/back-trace.cm  when loaded causes the coverage plugin to be installed
2747        -- when loaded causes the back-trace plugin to be installed  --
    $smlnj-tdp/coverage.cm  
       -- when loaded causes the coverage plugin to be installed  
2748  +  +
2749  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2750    
2751  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2752  [2004/10/18]::  [2004/10/18]::
2753  +  +
2754  Added an "obsolete" warning for the "group owner" syntax to CM's parser.  Added an "obsolete" warning for the "group owner" syntax to *CM*'s parser.
2755  +  +
2756  Eliminated group owner specs from .cm files throughout the source tree.  Eliminated group owner specs from +.cm+ files throughout the source tree.
2757  +  +
2758  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2759    
2760  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2761  [2004/10/15]::  [2004/10/15]::
2762  +  +
2763    --
2764  * Test coverage tool added!  * Test coverage tool added!
2765  * Further reorganization of tracing-, debugging-, and profiling support:  * Further reorganization of tracing-, debugging-, and profiling support:
2766  +  +
# Line 2670  Line 2770 
2770      - only the instrumentation mechanism is now left in the compiler proper      - only the instrumentation mechanism is now left in the compiler proper
2771      - BackTrace module is a plugin which is NOT plugged in by default      - BackTrace module is a plugin which is NOT plugged in by default
2772      - Coverage module is another such plugin      - Coverage module is another such plugin
2773    --
2774  +  +
2775  To get the benefits of any of these plugin modules, the code in  To get the benefits of any of these plugin modules, the code in
2776  question must be compiled with tdp instrumentation turned on.  This  question must be compiled with TDP instrumentation turned on.  This
2777  can be done by setting SMLofNJ.Internals.TDP.mode to true.  can be done by setting +SMLofNJ.Internals.TDP.mode+ to +true+.
2778  (The ref cell is also controlled via the -Ctdp.instrument=... switch.)  (The ref cell is also controlled via the +-Ctdp.instrument=...+ switch.)
2779  +  +
2780  Plugins are selected at link time.  (Pre-compiled instrumented code  Plugins are selected at link time.  (Pre-compiled instrumented code
2781  can be re-loaded with different plugins in effect.)  When an  can be re-loaded with different plugins in effect.)  When an
2782  instrumented module is linked, whatever plugins are at that time  instrumented module is linked, whatever plugins are at that time
2783  enabled will come into effect for that module.  enabled will come into effect for that module.
2784  +  +
2785  To enable the back-trace plugin, load library $/trace-debug-profile.cm  To enable the back-trace plugin, load library +$/trace-debug-profile.cm+
2786  and invoke BackTrace.install() (_e.g._, from the interactive prompt).  and invoke +BackTrace.install()+ (_e.g._, from the interactive prompt).
2787  To enable the coverage plugin, load the same library and invoke  To enable the coverage plugin, load the same library and invoke
2788  Coverage.install().  +Coverage.install()+.
2789  +  +
2790  Back-traces are generated automatically on uncaught exceptions and  Back-traces are generated automatically on uncaught exceptions and
2791  when the code in question explicitly invokes BackTrace.trigger().  when the code in question explicitly invokes +BackTrace.trigger()+.
2792  +  +
2793  Coverage (and execution frequency-) information must be queried  Coverage (and execution frequency-) information must be queried
2794  explicitly by calling Coverage.not_covered and Coverage.hot_spots.  explicitly by calling +Coverage.not_covered+ and +Coverage.hot_spots+.
2795  +  +
2796  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2797    
2798  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2799  [2004/10/14]::  [2004/10/14]::
2800  +  +
2801  Snapshot of a significant overhaul of how the trace/debug/profile support  Snapshot of a significant overhaul of how the +trace/debug/profile+ support
2802  is hooked into the system (specifically: Core and SMLofNJ.Internals).  is hooked into the system (specifically: +Core+ and +SMLofNJ.Internals+).
2803  +  +
2804  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2805    
# Line 2857  Line 2958 
2958  +  +
2959  Also changed the handling of controls in tool arguments to classes "+sml+" and  Also changed the handling of controls in tool arguments to classes "+sml+" and
2960  "+lazysml+":  "+lazysml+":
2961    +
2962  --  --
2963     - use +Controls.save'restore+ as a more robust way of restoring the     - use +Controls.save'restore+ as a more robust way of restoring the
2964       old value (in particular: without having to re-parse the string)       old value (in particular: without having to re-parse the string)
# Line 2929  Line 3031 
3031  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3032  [2004/09/24]::  [2004/09/24]::
3033  +  +
3034  Applied patch for setting rounding modes under Mac OS X.  Thanks to  Applied patch for setting rounding modes under *Mac OS X*.  Thanks to
3035  Melissa O'Neill for providing the code!  Melissa O'Neill for providing the code!
3036  +  +
3037  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2937  Line 3039 
3039  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3040  [2004/09/23]::  [2004/09/23]::
3041  +  +
3042  1. Changed definition of type ControlRegistry.registry_tree to  --
3043    . Changed definition of type +ControlRegistry.registry_tree+ to
3044     include control_info (_i.e._, the name of the controlling environment     include control_info (_i.e._, the name of the controlling environment
3045     variable).     variable).
3046  +  +
3047  2. Added command-line flags -e and -E to print the names of environment  . Added command-line flags ++-e++ and ++-E++ to print the names of
3048     variables that can be used to control internal settings.    environment variables that can be used to control internal settings.
3049     (This uses the new API mentioned in 1.)     (This uses the new API mentioned in 1.)
3050    --
3051  +  +
3052  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3053    
# Line 2954  Line 3058 
3058  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3059  [2004/09/13]::  [2004/09/13]::
3060  +  +
3061  Put target "mlrisc" back into the default list.  Put target "+mlrisc+" back into the default list.
3062  (There is no harm in having it, and some users have expressed their  (There is no harm in having it, and some users have expressed their
3063  wish to have "mlrisc" included by default.)  wish to have "+mlrisc+" included by default.)
3064  +  +
3065  owner:[Matthias Blume]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3066    
3067  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3068  [2004/09/13]::  [2004/09/13]::
# Line 2971  Line 3075 
3075  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3076  [2004/09/08]::  [2004/09/08]::
3077  +  +
3078  Bumped the heap magic number to 0x09082004 to account for the changed  Bumped the heap magic number to +0x09082004+ to account for the changed
3079  layout of the ML frame under MacOS X.  layout of the ML frame under *Mac OS X*.
3080  +  +
3081  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3082    
# Line 2997  Line 3101 
3101  +  +
3102  Upon request by Johannes Joemann:  Upon request by Johannes Joemann:
3103  +  +
3104    --
3105  - improved ML code of installer to fall back to coping when renaming  - improved ML code of installer to fall back to coping when renaming
3106    fails (_i.e._, when source and target are on different file systems);    fails (_i.e._, when source and target are on different file systems);
3107    the code compiles but has yet to be tested in anger    the code compiles but has yet to be tested in anger
3108  - removed mlrisc from list of default targets (config/targets)  - removed +mlrisc+ from list of default targets (+config/targets+)
3109    --
3110  +  +
3111  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3112    
3113  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3114  [2004/08/27]::  [2004/08/27]::
3115  +  +
3116  Added ptreql primop to structure InlineT (upon request from Larry  Added +ptreql+ primop to structure +InlineT+ (upon request from Larry
3117  Paulson).  Paulson).
3118  +  +
3119  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 3017  Line 3123 
3123  +  +
3124  Another bug fix from Carl Hauser:  Another bug fix from Carl Hauser:
3125  +  +
3126    ....................
3127  diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml  diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
3128  > 48c48  > 48c48
3129  > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else  > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
3130  > e::L)  > e::L)
3131  > ---  > ---
3132  > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)  > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
3133  > Without this, any deletion of an edge in an undirected graph does severe  ....................
3134  > violence to the graph.  +
3135    Without this, any deletion of an edge in an undirected graph does severe
3136    violence to the graph.
3137  +  +
3138  owner:[Allen Leung]  owner:[Allen Leung]
3139    
3140  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3141  [2004/08/10]::  [2004/08/10]::
3142  +  +
3143     The IBM/MacOS syntax switch on PPC was incorrectly swapped.  The IBM/MacOS syntax switch on *PPC* was incorrectly swapped.
3144  +  +
3145  owner:[Allen Leung]  owner:[Allen Leung]
3146    
# Line 3044  Line 3153 
3153  +  +
3154  Bug fix from Carl Hauser:  Bug fix from Carl Hauser:
3155  +  +
3156  single_source_shortest_paths in dijkstra.sml was observed to get wrong  +single_source_shortest_paths+ in +dijkstra.sml+ was observed to get wrong
3157  answers (by comparing to single_source_shortest_paths in bellman-ford.sml).  answers (by comparing to +single_source_shortest_paths+ in +bellman-ford.sml+).
3158  +  +
3159  The problem is that following the expression A.update(dist,s,Num.zero)  The problem is that following the expression +A.update(dist,s,Num.zero)+
3160  it is necessary to update the priority queue using Q.decreaseWeight(Q,s).  it is necessary to update the priority queue using +Q.decreaseWeight(Q,s)+.
3161  +  +
3162  owner:[Allen Leung]  owner:[Allen Leung]
3163    
# Line 3057  Line 3166 
3166  +  +
3167  Fiddled with handling of command-line options:  Fiddled with handling of command-line options:
3168  +  +
3169    * sml now quits after processing the command line  --
3170      if -H, -S, -h<n>, or -s<n> appears as the last    * *sml* now quits after processing the command line
3171        if ++-H++, ++-S++, ++-h++<__n__>, or ++-s++<__n__> appears as the last
3172      command-line argument      command-line argument
3173    * a new option -q terminates the session when encountered on    * a new option +-q+ terminates the session when encountered on
3174      the command line; subsequent arguments will be ignored      the command line; subsequent arguments will be ignored
3175    * bug fixes: short (erroneous) arguments are no longer ignored    * bug fixes: short (erroneous) arguments are no longer ignored
3176      completely      completely
3177    --
3178  +  +
3179  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3180    
3181  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3182  [2004/08/04]::  [2004/08/04]::
3183  +  +
3184    --
3185    - Added minimal IBM assembly syntax support for PowerPC.    - Added minimal IBM assembly syntax support for PowerPC.
3186  +  +
3187    - Cygwin: manually changed the file cygwin.def.  Some exported symbols have    - Cygwin: manually changed the file +cygwin.def+.  Some exported symbols have
3188      been altered in the runtime.  We need an automatic way to keep the file      been altered in the runtime.  We need an automatic way to keep the file
3189      in sync.      in sync.
3190    --
3191  +  +
3192  owner:[Allen Leung]  owner:[Allen Leung]
3193    
# Line 3087  Line 3200 
3200  +  +
3201  Added low-level support for choosing C calling conventions by  Added low-level support for choosing C calling conventions by
3202  twiddling the type of rawccall.  (See  twiddling the type of rawccall.  (See
3203  src/compiler/Semant/types/cproto.sml for details.)  +src/compiler/Semant/types/cproto.sml+ for details.)
3204  +  +
3205  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3206    
3207  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3208  [2004/08/02]::  [2004/08/02]::
3209  +  +
3210  Backed out of change to win32-filesys.c.  The earlier patch to  Backed out of change to +win32-filesys.c+.  The earlier patch to
3211  get_file_time caused CM to produce files with the wrong time stamp.  +get_file_time+ caused *CM* to produce files with the wrong time stamp.
3212  +  +
3213  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3214    
3215  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3216  [2004/08/02]::  [2004/08/02]::
3217  +  +
3218  Added NLFFI support for *Win32*, adapted from a patch provided by David  Added *NLFFI* support for *Win32*, adapted from a patch provided by David
3219  Hansel.  This is currently completely untested.  Also, the issue  Hansel.  This is currently completely untested.  Also, the issue
3220  concerning stdcall vs. ccall is still unresolved.  concerning stdcall vs. ccall is still unresolved.
3221  +  +
# Line 3113  Line 3226 
3226  +  +
3227  Gearing up towards 110.47...  Gearing up towards 110.47...
3228  +  +
3229  - various minor bugfixes to ml-nlffigen  --
3230  - a beginning of a manual for nlffi  * various minor bugfixes to ml-nlffigen
3231    +
3232    * a beginning of a manual for nlffi
3233  +  +
3234  - eliminated 'export name=value' in config/install.sh as this does  * eliminated 'export name=value' in config/install.sh as this does
3235    not work with certain versions of /bin/sh    not work with certain versions of /bin/sh
3236    (Thanks to David King at Motorola for catching this.)    (Thanks to David King at Motorola for catching this.)
3237  +  +
3238  - several bugfixes provided or suggested by David Hansel at Reactive Systems:  * several bugfixes provided or suggested by David Hansel at Reactive Systems:
3239    - added a test for tm==NULL to gmtime.c and localtime.c    - added a test for +tm==NULL+ to +gmtime.c+ and +localtime.c+
3240    - applied patch for incorrect GetFileTime under win32    - applied patch for incorrect +GetFileTime+ under +win32+
3241    - toSeconds -> toMilliseconds in Win32/win32-process.sml    - +toSeconds+ -> +toMilliseconds+ in +Win32/win32-process.sml+
3242    --
3243  +  +
3244  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3245    
3246  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3247  [2004/07/21]::  [2004/07/21]::
3248  +  +
3249  - Fixed minor issue in ml-nlffigen: Now generate structure T_foo  --
3250    for a typedef to an incomplete type, but leave out the "typ" member.  - Fixed minor issue in *ml-nlffigen*: Now generate structure +T_foo+
3251      for a typedef to an incomplete type, but leave out the "+typ+" member.
3252    (This is just for consistency.)    (This is just for consistency.)
3253  - Started to produce what is supposed to become better (_i.e._, comprehensive)  - Started to produce what is supposed to become better (_i.e._, comprehensive)
3254    documentation of what ml-nlffigen does and produces.    documentation of what *ml-nlffigen* does and produces.
3255    --
3256  +  +
3257  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3258    
3259  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3260  [2004/07/14]::  [2004/07/14]::
3261  +  +
3262  Added C_UNION to c-calls/c-types.sml and updated the machinery  Added +C_UNION+ to +c-calls/c-types.sml+ and updated the machinery
3263  (ml-nlffigen, cproto.sml) that conveys C function interface  (*ml-nlffigen*, +cproto.sml+) that conveys *C* function interface
3264  information to the code generator.  information to the code generator.
3265  +  +
3266  However, the actual architecture-specific implementation of function  However, the actual architecture-specific implementation of function
3267  arguments and results that are C unions is still not implemented.  arguments and results that are *C* unions is still not implemented.
3268  +  +
3269  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3270    
# Line 3154  Line 3272 
3272  [2004/07/14]::  [2004/07/14]::
3273  +  +
3274      Added these instructions to the PowerPC architecture:      Added these instructions to the PowerPC architecture:
3275      LBZU(X), LHZU(X), LWZU(X),      +LBZU+(+X+), +LHZU+(+X+), +LWZU+(+X+),
3276      STWU(X), STFDU, STFSU      +STWU+(+X+), +STFDU+, +STFSU+,
 +  
3277      etc...      etc...
3278  +  +
3279      Note: I haven't added their instruction encoding into the description.      Note: I haven't added their instruction encoding into the description.
# Line 3166  Line 3283 
3283  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3284  [2004/07/13]::  [2004/07/13]::
3285  +  +
3286     Added the two instructions LWARX and STWCX to the PowerPC  Added the two instructions +LWARX+ and +STWCX+ to the PowerPC
3287  instruction set.  instruction set.
3288  +  +
3289     A (untested) rewrite of loop-structure.sml.  The old version  A (untested) rewrite of +loop-structure.sml+.  The old version
3290  is completely broken.  is completely broken.
3291  +  +
3292  owner:[Allen Leung]  owner:[Allen Leung]
# Line 3177  Line 3294 
3294  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3295  [2004/07/13]::  [2004/07/13]::
3296  +  +
3297  - use paramAlloc to report c-calls with too many arguments  --
3298    - use +paramAlloc+ to report c-calls with too many arguments
3299    (for PPC version where parameter area is pre-allocated)    (for PPC version where parameter area is pre-allocated)
3300  - added ccall_maxargspace to machspec (to implement the above)  - added +ccall_maxargspace+ to machspec (to implement the above)
3301  - made "make" commend in CM's "make" tool configurable  - made "make" commend in CM's "make" tool configurable
3302  - added option (default: on) for passing the name of the SML/NJ's "bin"  - added option (default: on) for passing the name of the SML/NJ's "bin"
3303    directory to "make"; the call looks like this:    directory to "make"; the call looks like this:
3304  +  +
3305    [source,sh]
3306    -----------
3307       make <options> SMLNJ_BINDIR=<dir> <target>       make <options> SMLNJ_BINDIR=<dir> <target>
3308    -----------
3309  +  +
3310    This can be used by the Makefile to, _e.g._, pick the "right" version    This can be used by the Makefile to, _e.g._, pick the "right" version
3311    of ml-nlffigen.  of *ml-nlffigen*.
3312  - minor code tweaks  - minor code tweaks
3313    --
3314  +  +
3315  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3316    
# Line 3202  Line 3324 
3324  NLFFI under Mac OS X now working (sort of).  This is largely untested,  NLFFI under Mac OS X now working (sort of).  This is largely untested,
3325  though.  though.
3326  +  +
3327  Note:  1. You have to make a new, clean build of the runtime system.  .Note:
3328         2. There are new BOOTFILES, you have to use them!  --
3329      . You have to make a new, clean build of the runtime system.
3330      . There are new BOOTFILES, you have to use them!
3331            (Doing the bootstrap process yourself would be *very* painful!            (Doing the bootstrap process yourself would be *very* painful!
3332             If you absolutely have to do it, build the system under             If you absolutely have to do it, build the system under
3333             a different architecture and then cross-compile.)             a different architecture and then cross-compile.)
3334    --
3335  +  +
3336  Version bumped to 110.46.1 to account for runtime data format changes.  Version bumped to 110.46.1 to account for runtime data format changes.
3337  +  +
# Line 3215  Line 3340 
3340  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3341  [2004/06/18]::  [2004/06/18]::
3342  +  +
3343  Changed the implementation of structure Unix so that the same stream  Changed the implementation of structure +Unix+ so that the same stream
3344  is returned every time one of the {text,bin}{In,Out}streamOf functions  is returned every time one of the {++text++,++bin++}{++In++,++Out++}++streamOf++
3345  is invoked on the same proc.  This is not what the spec currently  functions is invoked on the same proc.  This is not what the spec currently
3346  says -- although IMO it arguably should.  (See discussion below.)  says -- although IMO it arguably should.  (See discussion below.)
3347  +  +
3348  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 3259  Line 3384 
3384  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3385  [2004/05/28]::  [2004/05/28]::
3386  +  +
3387  Added signature PACK_REAL and exported functor PrimIO.  Added signature +PACK_REAL+ and exported functor +PrimIO+.
3388  +  +
3389  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3390    

Legend:
Removed from v.4001  
changed lines
  Added in v.4002

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0