Standard ML of New Jersey
Release Notes


Version 2026.2
August 14, 2026


Summary

This release fixes a number of bugs; adds support for additional bit-level operations on words, and includes various improvements in the system’s internals.

The distinction between "raw" and "raw64" values has been eliminated, since they have the same representation on 64-bit hardware. This change affects the compiler, runtime system, and Basis library.

Details

Compiler

  • The printing of real results in the REPL has been improved.

  • The distinction between "raw" and "raw64" records has been eliminated inside the compiler.

  • The naming of default integer and word primitive operators in the InLine structure has been made consistent with the operators for the other types.

LLVM

Runtime System

  • Removed the redundant raw64 object descriptor tag.

Basis Library

  • Implemented inline bit operations for words as described in the Basis Library proposal 2026-001 (Additional Bitops for WORD signature).

  • Removed the Raw64 constructor from the Unsafe.Object.representation datatype.

  • Added functions Unsafe.== and Unsafe.!= that implement "pointer equality" (as requested in Legacy Issue #327).

SML/NJ Library

  • Added the Trilean structure, which implements a three-valued logic that is useful for some program analyses

ML-LPT

Installation

  • The macOS installers are now notarized.

  • The build.sh script now supports the -install option for specifying a target installation directory.

Bugs

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

AMD64

macOS 11 (Big Sur)

macOS 12 (Monterey)

macOS 13 (Ventura)

macOS 14 (Sonoma)

macOS 15 (Sequoia)

Tested

macOS 26 (Tahoe)

Ubuntu 20.04.6 LTS

Tested

Ubuntu 22.04.2 LTS

Tested

 

ARM64

macOS 11 (Big Sur)

macOS 12 (Monterey)

macOS 13 (Ventura)

macOS 14 (Sonoma)

macOS 15 (Sequoia)

macOS 26 (Tahoe)

Tested

macOS 27 (Golden Gate)

Linux