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
findAndRemovefunction toORD_MAPinterface. -
Generalized comparisons on ordered maps; added
equivandextendsfunctions toORD_MAPinterface and made type ofcollatemore 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) |