                             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.

## Details:

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