Standard ML of New Jersey
Release Notes


Version 2025.3
December 22, 2025


Summary

This release implements a new containerized binfile format that is more extensible that the previous format. This release also contains a number of bug fixes and library enhancements. This release also supports Linux on Arm64 processors.

Details

Compiler

  • Added support for normalizing the CFG before export. There is a new control (-Ccg.normalize-cfg or Control.CG.normalizeCFG) for enabling this feature. It affects code generation, dumping of CFG pickles, and printing of the CFG.

CM

  • We are now using ASDL to implement the pickling/unpickling of skeleton files.

Runtime System

  • fixed various space leaks in the runtime system

    • the ASDL generated code did not correctly free sequences

    • the heap-export code was failing to free some meta-data

SML/NJ Library

  • Added LEB128 module, which implements packed encoding and decoding of integer and word types using the Little Endian Base 128 encoding.

ASDL

  • Added the is_datatype property

  • Fixed the generation of destructors for sequences

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)

Tested

macOS 26 (Tahoe)

Tested

Linux