:version: 2026.1
:date: March 14, 2026
:dist-url: https://smlnj.org/dist/working/{version}/
:history: {dist-url}HISTORY.html
:issue-base: https://github.com/smlnj/smlnj/issues
:legacy-issue-base: https://github.com/smlnj/legacy/issues
:pull-base: https://github.com/smlnj/smlnj/pull
:wiki-base: https://github.com/smlnj/.github/wiki
:legacy-pull-base: https://github.com/smlnj/legacy/pull
:stem: latexmath
:source-highlighter: pygments
:stylesheet: release-notes.css
:notitle:

= Standard ML of New Jersey Release Notes

[subs=attributes]
++++
<div class="smlnj-banner">
  <span class="title"> Standard ML of New Jersey <br/> Release Notes </span>
  <br/> <br/>
  <span class="subtitle"> Version {version} <br/> {date} </span>
</div>
++++

''''''''
--
SML/NJ HOME::
  https://www.smlnj.org/index.html[[.tt]#https://smlnj.org#]
FILES::
  {dist-url}index.html[[.tt]#{dist-url}#]
--
''''''''

== Summary

This release modifies the startup script to support Linux 7.  It also contains a
critical bug fix in the *LLVM* code generator.

== Details

=== Compiler

* Switched the backend to use *LLVM* 21.1.8

=== CM

* The "required privileges" message is no longer printed when the CM verbose flag is
  set to `false` (e.g., by using the command-line option `-Ccm.verbose=false`)

=== Basis Library

* Added `Unsafe.Int` structure to provide typed access to integer addition
  and subtraction without overflow checking.

=== SML/NJ Library

* Added `sizeOfValue` function to the `JSON_STREAM_OUTPUT` signature

* Added `Rand48` structure.

=== Installation

* We now provide architecture-specific compressed tarballs of the system
  (in addition to the **macOS** installer packages).  These files include
  all of the source code and the boot files for the architecture.  See the
  {dist-url}/install.html[installation instructions for details].

== Bugs

Here is a list of the issues and pull requests that are closed with this release.

[.buglist,cols="^1,<15",strips="none",options="header"]
|=======
| Issue
| Description
| [.bugid]#327#
| {issue-base}/327[JSON library: hint size of `JSON.value` after serialization]
| [.bugid]#335#
| {issue-base}/335[REPL should always print reals as valid SML real literals]
| [.bugid]#338#
| {issue-base}/338[incorrect compilation of some large integer literals]
|=======

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

* Merged {legacy-issue-base}/374[Legacy pull request 374 (`OS.FileSys.tmpName`
  should support `TMPDIR`)].

== Supported systems

We believe that SML/NJ will build and run on the following systems, but have only
tested some of them:

[.support-table,cols="^2s,^4v,^3v",options="header",strips="none"]
|=======
| 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
| {nbsp} | |
| ARM64 | |
| | macOS 11 (Big Sur) |
| | macOS 12 (Monterey) |
| | macOS 13 (Ventura) |
| | macOS 14 (Sonoma) |
| | macOS 15 (Sequoia) | Tested
| | macOS 26 (Tahoe) | Tested
| | Linux |
| {nbsp} | |
|=======
