This is a minor release whose primary purpose is to support future changes to the compiler's implementation.
This release introduces a new implementation of the Abstract Syntax Description Library (ASDL). It also adds support for Mac OS X 10.14 (Mojave) and includes a few other enhancements and bug fixes.
This release of SML/NJ includes a beta-version of a new implementation of the Abstract Syntax Description Library (ASDL), which was originally designed and implemented by Daniel Wang as part of the Zephyr project. ASDL allows one to declare a collection of inductive types and then use the asdlgen tool to generate an implementation of the types with pickler/unpickler operations. We plan to replace the compiler's current environment pickler with ASDL and eventually also use it in a new LLVM-based backend.
While the previous versions of ASDL supported many different target languages, the new version currently only supports SML and C++ (note that C++ support is currently incomplete).
See the ASDL Manual (Version 3.0) for details about the specification language and the asdlgen tool.
Also note that ASDL is not currently part of the Windows installation.
This version adds support for the Basis Library proposal:
Note that this change is a proposal that have not yet been ratified and is subject to change!
Added pretty printing (structure SExpPP) to the S-Expression library.
A couple of changes were made to the installer (base/base/system/smlnj/installer).
There are no numbered bug fixes in this release, but the following unnumbered bugs were fixed:
We believe that SML/NJ will build and run on the following systems, but have only tested some of them:
Architecture Operating System Status Power PC Mac OS X 10.5 (Leopard) AIX Sparc Solaris Linux x86 Mac OS X 10.6 (Snow Leopard) Mac OS X 10.7 (Lion) Mac OS X 10.8 (Mountain Lion) Mac OS X 10.9 (Mavericks) Mac OS X 10.10 (Yosemite) Mac OS X 10.11 (El Capitan) macOS 10.12 (Sierra) Tested macOS 10.13 (High Sierra) Tested macOS 10.14 (Mojave) Tested (see note below) Ubuntu 16.04.3 LTS Tested Other Linux variants BSD variants Windows 7 Windows 10 Tested Cygwin (hosted on Windows 7 or 10)
Apple is in the process of deprecating 32-bit support in macOS. With macOS 10.14 (Mojave), it is no longer possible to compile 32-bit applications, such as the SML/NJ runtime system. Thus, while it is possible to install SML/NJ using the installer, installing using the config/install.sh script will not work without extra effort.
We have been working on 64-bit support since 110.82 we expect to have it in place before the release of macOS 10.15.