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
InLinestructure has been made consistent with the operators for the other types.
LLVM
-
Disabled the "convert switch to lookup table" optimization in LLVM because it can result in non-position-independent code being generated. See Pull Request #342 (Fix relocation issues causing MLton crash) for the details. This change fixes Issue #318 (Segmentation fault with SML/NJ compiled MLton).
Runtime System
-
Removed the redundant
raw64object 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
Raw64constructor from theUnsafe.Object.representationdatatype. -
Added functions
Unsafe.==andUnsafe.!=that implement "pointer equality" (as requested in Legacy Issue #327).
SML/NJ Library
-
Added the
Trileanstructure, which implements a three-valued logic that is useful for some program analyses
ML-LPT
-
Fixed Issue 341.
Installation
-
The macOS installers are now notarized.
-
The
build.shscript now supports the-installoption for specifying a target installation directory.
Bugs
Here is a list of the issues and pull requests that are closed with this release.
| Issue | Description |
|---|---|
318 |
|
340 |
|
341 |
The value of |
342 |
|
343 |
Comparison of `Word8Vector.vector`s results in polymorphic equality |
344 |
|
345 |
|
346 |
|
352 |
Pattern-matching for |
354 |
|
357 |
|
359 |
|
360 |
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) |
||
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 |
||
|