Standard ML of New Jersey
Version 110.82 NEWS
October 16, 2017

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

Summary:

This release continues the march toward 64-bit support (it looks to be a long march). There are many under-the-hood changes to the compiler to make supporting both 32-bit and 64-bit targets possible, as well as a number of bug fixes. It also adds support for macOS 10.13 (High Sierra).

Details:

Compiler

Rationalized the treatment of primitive operators in Absyn and FLINT, and removed unused primitive operators. These changes affected the pickle format, which means that the --rebuild option must be used when building the compiler from sources.

Added Target structure to Basics; this module specifies properties of the target, such as the size of ML values and the size of the default int type.

Changed the way that the InlineT structure is defined to be target sensitive. For example, on 32-bit targets, there will be an InlineT.i31add function for adding the default int type, whereas on 64-bit targets the corresponding function will be InlineT.i63add.

Restored the pre-110.80 behavior of having the shell command sml foo.sml return a non-zero exit status when there is an error in the compilation of foo.sml (bug #183).

Run-time system

Changed the way that we test for allocation-space addresses in minor GCs. Instead of using the BIBOP, we now do a pointer range test; this change produces a small speedup on 32-bit machines, but we expect a bigger benefit on 64-bit machines, which use the 2-level BIBOP.

Various changes to prepare for 64-bit targets, including adding a 2-level BIBOP implementation, and splitting assyntax.h into 32-bit (assyntax.h) and 64-bit (assyntax64.h) versions.

Bugs:

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

123missing warning for non-exaustive binding at top level.
183status code returned by sml REPL.
185Bring command line help text into parity with man page.

The following unnumbered bugs were also fixed:

Supported systems:

We believe that SML/NJ will build and run on the following systems, but have only tested some of them:

Architecture Operating System Status
Power PC Mac OS X 10.5 (Leopard)
AIX
   
Sparc Solaris
Linux
   
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)
Mac OS X 10.11 (El Capitan) Tested
macOS 10.12 (Sierra) Tested
macOS 10.13 (High Sierra) Tested
Ubuntu 14.04.3 (GNU/Linux 3.13.0)  Tested
Other Linux variants
BSD variants
Windows 7
Windows 10 Tested
Cygwin (hosted on Windows 7 or 10)