Standard ML of New Jersey
Version 110.83 NEWS
June 1, 2018



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.


Basis Library:

This version continues to track proposed Basis Library improvements. Note that these improvements are proposals that have not yet been ratified and are subject to change! Specifically, the following proposals are supported by this version of SML/NJ:

[2018-001] Addition of monomorphic buffers
This change adds the MONO_BUFFER signature to the Basis Library, with instances CharBuffer and Word8Buffer.

We also fixed a number of cases where our implementation of Basis functions did not agree with the specification. See the list of bug fixes for details.


Changed the internal representation of real literals from strings to a more structured representation (see compiler/Basics/reals/ for the code).

Changed the Absyn, PLambda, FLINT, and CPS IRs to represent integer and word literals as values. This change removes unnecessary complexity in code generation, improves constant folding, and lays the groundwork for 64-bit support.

Improved the reporting of errors involving literal values. We now use the original source text when describing the value in the error message. We also report an error in the front-end when real literals are too large to be represented (instead of letting the code generator fail).

Fixed a number of bugs where the compiler did not handle the language syntax as specified in the Definition. See the list of bug fixes for details.


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

191Compiler crash when handling large reals
194Real.fromString overflows or hangs
201The library is missing
206Parsing of explicit type variables and val rec is broken

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)
Sparc Solaris
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)
macOS 10.12 (Sierra) Tested
macOS 10.13 (High Sierra) Tested
Ubuntu 16.04.3 LTS Tested
Other Linux variants
BSD variants
Windows 7
Windows 10 Tested
Cygwin (hosted on Windows 7 or 10)