Summary
The main purpose of this release is to provide a baseline set of boot files for building from the GitHub repository. It also includes the bug fixes from legacy version 110.99.3 and a new implementation of the pattern-match compiler.
GitHub Migration
With this release, we have migrated the bug tracking infrastructure to a system using GitHub issues. We have prepopulated the issues for the legacy repository with the entries from the old bug database.
Since issues are associated with a repository, we now have separate trackers for the legacy and main development versions. While most bugs that are present in one version will also be present in the other version, it is not necessary to create two issues when reporting a bug.
Details
Basis Library
Added support for the following proposed Basis Library extensions:
SML/NJ Library
-
Added the
findAndRemove
function toORD_MAP
interface. -
Generalized comparisons on ordered maps; added
equiv
andextends
functions toORD_MAP
interface and made type ofcollate
more polymorphic. -
The SExp library now uses Scheme syntax for string values.
-
The SExp parser accepts empty files as valid input (producing an empty list of S-Expressions).
Installation
The config/install.sh
script continues to work as before. We have added a -dev
command-line option to enable cross compilation (i.e., it compiles LLVM
for all of the supported target architectures).
Closed Issues
Here is a list of the issues that are fixed (or closed) with this release. We include the original bug numbers for bugs that were reported using the old bug tracker.
Issue No. | Description | Gforge Bug |
---|---|---|
26 |
65 |
|
51 |
makeml and installml scripts do not like locations with spaces |
90 |
141 |
Pretty printing of Absyn in error message does not respect fixity |
141 |
205 |
270 |
|
219 |
284 |
|
223 |
290 |
|
224 |
291 |
|
239 |
Word8VectorSlice: mapping a subslice produces wrong result or crashes SML/NJ |
306 |
240 |
307 |
|
241 |
308 |
|
242 |
SExp: parsing the output of the printer produces a different SExp |
309 |
243 |
Error when REPL tries to print value of type |
310 |
244 |
311 |
|
245 |
|
312 |
247 |
314 |
|
248 |
315 |
|
249 |
316 |
|
250 |
Conversion from string to real does not accept non-finite values |
317 |
251 |
318 |
|
252 |
319 |
The following unnumbered bug was also fixed:
-
Performance bug in the compilation of deeply-nested modules.
The following bugs were reported for the legacy version, but do not affect the new versions.
Issue No. | Description | Gforge Bug |
---|---|---|
246 |
313 |
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) |
Tested |
|
macOS 12 (Monterey) |
Tested |
|
macOS 13 (Vecntura) |