Standard ML of New Jersey
Release Notes

Version 2023.1
December 10, 2023


This is a bug-fix release of the development version of SML/NJ. The most important fix is that the system now correctly supports Linux and the latest versions of macOS. This release also incorporates a number of fixes from the legacy version 110.99.4.



  • Reworked the handling of relocation patching to resolve issues with the ELF object-file format on Linux systems.

SML/NJ Library

  • Added the NativeInt and NativeWord structure aliases to provide a portable way to refer to the native numeric types in signatures.

  • Reimplementation of the Random structure to use the Mersenne Twister algorithm. There are both 32-bit and 64-bit versions of the generator (which one is included depends on the target platform).

  • Reworked the code for determining the maximum hash-table size (used in the HashSetFn and HashTableRep modules) so that it does not depend on and Word.word being the same size (an issue for MLton). Also split that code out into the internal MaxHashTableSize module.

  • Added support for the end-of-line assertion ("$") and full support for intervals to the Thompson engine in the RegExp library.

  • Added modules for the representation of booleans, integers, and words as hash-consed values to the HashCons library.

  • Reworked the UTF8 structure to impose stricter validation of the encodings (Issue 276).

  • Modified the JSON.json datatype to include the INTLIT of string constructor (this change is to support future improvements to the JSON parsers).


Added macOS 14 (Sonoma) as a recognized system.


Here is a list of the issues that are fixed (or closed) with this release.

Issue Description


ml-makedepend trashes dependency file on error


Installation of SML/NJ 2021.1 fails on Ubuntu 20.04


2022.1 distro bombs


Unable to build LLVM when running


UTF8.getu should validate that it’s input is UTF-8

We also fixed the following bugs that did not have issues associated with them (or were bug fixes ported from the legacy repository):

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


macOS 11 (Big Sur)

macOS 12 (Monterey)


macOS 13 (Ventura)


macOS 14 (Sonoma)

Ubuntu 20.04.6 LTS


Ubuntu 22.04.2 LTS