                         S  M  L   /   N  J

                 1  1  0  .  4  6      N  E  W  S
			
                            June 17, 2004

                                WARNING

        This working version is believed to be stable, but
        we have not run our full regression-test suite.

             HOME:  http://www.smlnj.org/index.html
             FILES: http://smlnj.cs.uchicago.edu/dist/working/110.46/


Summary:

  This release fixes some bugs, moves the Basis implementation closer
  to conformance with the specification (i.e., the upcoming Basis Library
  book by Gansner and Reppy), and enhances some of the functionality by
  incorporating contributions from our users.

--------------------------------------------------------------------------

Basis:
------

  - interface to structure Timer now matches spec
  - interface to structure Unix now matches spec
    (Caveat:  There probably still is a problem with the spec --
     concerning the behavior of reap as well as {text,bin}{In,Out}streamOf
     when they get called multiple times.  However, fixing this will
     in all likelihood not change any types.)
  - signature PACK_REAL added
  - functor PrimIO exported
  - added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their
    respective implementations from internal modules PosixBinPrimIO
    and PosixTextPrimIO
  - exceptions Option and Option.Option are now identical (as they
    should be)
  - bug in IntInf.fmt fixed


Compilation Manager:
--------------------

   - CM now ignores (but still syntactically accepts) the "owner"
     information in group descriptions.  It continues to enforce the
     "single owner rule" for groups within each run of CM.make, but
     can no longer do so across multiple runs.  (Fortunately, there is
     no fundamental problem with this.)  The advantage of the new
     scheme is that the programmer no longer needs to provide this
     awkward piece of information.
   - fixed IEEEReal.scan (and .fromString) so that if there is an
     overflow in the exponent calculation we get INF or ZERO
     (depending on the mantissa and the sign of the exponent)


Windows port:
-------------

   - incorporated a voluminous patch kindly provided by David Hansel
     from Reactive Systems, implementing previously missing support
     for many socket-related functions

Command-line tools:
-------------------

   - arranged for ml-build to clean up after itself a little bit
     better
     (The script generates a temporary SML source file and
     compiles it using CM, so CM generates metadata (GUID, SKEL,
     objectfile) for it.  It now gets rid of those at the end, so they
     don't accumulate under .cm.)
   - ml-build now terminates with a non-0 status when something goes wrong

Installer:
----------

   - bugs fixed
   - src-smlnj now recognized as a valid target (in config/targets) again
     (The meaning of this has changed from "all sources required for the
      compiler" to "all sources the installer knows about".)

NLFFI:
------

   - support for NetBSD added (thanks to Vesa A. Norrman)
   - ml-nlffi-lib made to run on cygwin


Compiler internals:
-------------------

   - As per request by Adam Chlipala, extended
     various export lists in compiler-related .cm-files.
