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-cfgorControl.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
LEB128module, which implements packed encoding and decoding of integer and word types using the Little Endian Base 128 encoding.
ASDL
-
Added the
is_datatypeproperty -
Fixed the generation of destructors for sequences
Bugs
Here is a list of the issues and pull requests that are closed with this release.
| Issue | Description |
|---|---|
137 |
|
262 |
|
313 |
|
314 |
|
315 |
|
316 |
|
317 |
Bug in type checking/inference with type abbreviations through transparent functor application |
319 |
|
322 |
|
323 |
|
324 |
The |
325 |
|
331 |
We also fixed the following bugs that did not have issues associated with them (or were bug fixes ported from the legacy repository):
-
Merged fix for Legacy Issu #370 (
Int32operations do not properly raiseOverflow) -
Merged fix for Legacy Issue #372 (
Int32.toStringcan generate anOverflowexception) -
Fixed a situation where an error in a pattern caused an internal compiler error.
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 |
||
|