SML/NJ 110.78 NEWS

Standard ML of New Jersey
Version 110.78 NEWS
December 24, 2014

SML/NJ HOME:
  `http://www.smlnj.org/index.html`
FILES:
  `http://smlnj.cs.uchicago.edu/dist/working/110.78/`

### Summary:

The primary purpose of this release is improvements to libraries and tools, with some important bug fixes too.

### Details:

SML/NJ compiler:

  Major revision of the machinery for overloading resolution for both operators (vars) and literals, now using a common mechanism. These changes fixes bug #52 by improving the error message when an overloaded operator is inconsistent with its context. Updated 23 files, including major changes in `overload.sml`, `types.sml`, `unify.sml`, `elabcore.sml`, `typesutil.sml`. The overload declaration is still used in `pervasives.sml`, where the order of the specified instances of an ordering determines the default interpretation (i.e., the first one).

  The `SCHEME` and `LITERAL` forms of tyvars are replaced by a new `OVLD` form that tracks potential instantiations of the type of the overloaded vars or literals.

SML/NJ Library:

  A number of improvements and changes to the HTML4 library. Added the `HTML4Attrs` module, which provides help for constructing attribute-value pairs, and the `HTML4Entities` modules, which provides names for the standard HTML4 entities.

  New implementation of `ListMergeSort`. This implementation is better than the previous implementation on sorted data (both ascending and descending) and faster on smaller lists. It is slower than the previous implementation on very large lists (e.g., 106 elements or more).

SML/NJ runtime:

  Added `-D_FILE_OFFSET_BITS=64` flag to `x86-linux` makefile. This flag is necessary to avoid spurious `EOVERFLOW` errors on some versions of Linux. The problem appears to be limited to large file systems that have more than 232 inodes.

ml-lpt

  Improved error message for when the lookahead computation fails in ml-antlr.

  Improved error messages in ml-ulex for unclosed strings. Also made documentation improvements.

  Added `%value` directive to ml-antlr; this addition improves the error repair choices by allowing non-nullary tokens to be inserted when making repairs.

Documentation:

  Moved `base/NOTES/HISTORY` file to `doc/src/changelog/HISTORY.txt` and converted it to ASCIIDOC format. Also moved the `README` files from `base/READMES` to `doc/src/release-notes`. These changes are part of a general effort to rationalize and improve the documentation of the SML/NJ system.

### Bugs:

Here is a list of tracked bugs fixed (or closed) with this release, please see the bug tracker for more details.

52 | nonsensical type error message

The following unnumbered bugs were also fixed:

- Fixed bug with failures on very large Linux file systems (described above).

### Supported systems:

> We have verified that the system builds and runs on the following systems.

> Architecture | Operating System
> --- | ---
> PowerPC | Mac OS X 10.5 (Leopard)
> x86 | Mac OS X 10.6 (Snow Leopard)
> | Mac OS X 10.7 (Lion)
> | Mac OS X 10.8 (Mountain Lion)
> | Mac OS X 10.9 (Mavericks)
> | Mac OS X 10.10 (Yosemite)
> | Ubuntu 12.04.4 (GNU/Linux 3.2.0)
> | Windows 7
> | Cygwin (hosted on Windows 7)

> We believe that it runs on any recent Linux distribute that has support for 32-bit executables, as well as on BSD variants, SPARC/Solaris, and PPC/AIX, but we have not tested these systems.