Standard ML of New Jersey
Release Notes


Version 2023.1
December 10, 2023


Summary

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.

Details

Compiler

  • 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 Int.int 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).

Installation

Added macOS 14 (Sonoma) as a recognized system.

Bugs

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

Issue Description

32

ml-makedepend trashes dependency file on error

233

Installation of SML/NJ 2021.1 fails on Ubuntu 20.04

261

2022.1 distro bombs

272

Unable to build LLVM when running build.sh

276

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

AMD64

macOS 11 (Big Sur)

macOS 12 (Monterey)

Tested

macOS 13 (Ventura)

Tested

macOS 14 (Sonoma)

Ubuntu 20.04.6 LTS

Tested

Ubuntu 22.04.2 LTS

Tested