Standard ML of New Jersey
Version 110.84 NEWS
September 3, 2018

SML/NJ HOME:
https://smlnj.org
FILES:
https://smlnj.org/dist/working/110.84/

Summary:

This is a minor release whose primary purpose is to support future changes to the compiler's implementation.

This release introduces a new implementation of the Abstract Syntax Description Library (ASDL). It also adds support for Mac OS X 10.14 (Mojave) and includes a few other enhancements and bug fixes.

Details:

ASDL

This release of SML/NJ includes a beta-version of a new implementation of the Abstract Syntax Description Library (ASDL), which was originally designed and implemented by Daniel Wang as part of the Zephyr project. ASDL allows one to declare a collection of inductive types and then use the asdlgen tool to generate an implementation of the types with pickler/unpickler operations. We plan to replace the compiler's current environment pickler with ASDL and eventually also use it in a new LLVM-based backend.

While the previous versions of ASDL supported many different target languages, the new version currently only supports SML and C++ (note that C++ support is currently incomplete).

See the ASDL Manual (Version 3.0) for details about the specification language and the asdlgen tool.

Also note that ASDL is not currently part of the Windows installation.

Basis Library:

This version adds support for the Basis Library proposal:

[2018-002] Additional slice operations
This proposal adds four functions to the various slice structures: triml, trimr, splitAt, and getVec.

Note that this change is a proposal that have not yet been ratified and is subject to change!

SML/NJ Library

Added pretty printing (structure SExpPP) to the S-Expression library.

Installer

A couple of changes were made to the installer (base/base/system/smlnj/installer).

Bugs:

There are no numbered bug fixes in this release, but the following unnumbered bugs were 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)
macOS 10.12 (Sierra) Tested
macOS 10.13 (High Sierra) Tested
macOS 10.14 (Mojave) Tested (see note below)
Ubuntu 16.04.3 LTS Tested
Other Linux variants
BSD variants
Windows 7
Windows 10 Tested
Cygwin (hosted on Windows 7 or 10) 

Apple is in the process of deprecating 32-bit support in macOS. With macOS 10.14 (Mojave), it is no longer possible to compile 32-bit applications, such as the SML/NJ runtime system. Thus, while it is possible to install SML/NJ using the installer, installing using the config/install.sh script will not work without extra effort.

We have been working on 64-bit support since 110.82 we expect to have it in place before the release of macOS 10.15.