Standard ML of New Jersey
Standard ML of New Jersey (abbreviated SML/NJ) is a compiler for the Standard ML '97 programming language with associated libraries, tools, and documentation. SML/NJ is free, open source software.
- [2020-07-17] In conjunction with the release of Version 110.98, there is now online documentation for most of the SML/NJ Library.
- [2020-07-17] Version 110.98 is released. This release includes substantial improvements to the documentation as well as other improvements and bug fixes. See the README for details.
- [2020-04-21] Version 110.97 is released. This release is fairly substantial, with a bunch of bug fixes, additional documentation, and a large number of changes and additions to the SML/NJ Library. See the README for details.
- [2019-12-13] Version 110.96 is released. This release fixes a number of issues with the 64-bit version; see the See the README for details.
- [2019-11-09] Version 110.95 is released. This release fixes some critical bugs. See the README for details.
- [2019-11-02] New versions of both the macOS and Windows installers for the 110.94 have been posted. The macOS installers fix an issue where the scripts were looking for a 32-bit version when a 64-bit version had been installed. The Windows installer includes a fix for bug #225 that was inadvertently omitted.
- [2019-11-01] New versions of the 110.94 installers for macOS were released. These fix a problem with the wrapper scripts having an incorrect path for the installation.
- [2019-10-31] Version 110.94 is released. This version is the first to support 64-bit platforms; specifically 64-bit executables on macOS and Linux. See the README for details.
- [2019-09-05] Version 110.93 is released. See the README for details.
- [2019-08-10] Version 110.92 is released. See the README for details.
- [2019-06-20] Version 110.91 is released. See the README for details.
- [2019-06-12] Version 110.90 is released. This release completes the switch over to 64-bit file positions by adding support for Windows (which was missing in 110.89). See the README for details.
- [2019-06-01] Version 110.89 is released. This release is not completely stable, so we recommend sticking with 110.87 for production work. Also, this version does not support Windows. See the README for details.
- [2019-05-15] Version 110.88 is released. This release is not completely stable, so we recommend sticking with 110.87 for production work. See the README for details.
- [2019-05-03] Version 110.87 is released. See the README for details.
Note that Version 110.86 was released on May 2, but was not announced, since it was just a stepping stone to get to the 110.87 release.
- Older news
A node about version numbers
A long time ago, we had version numbers like 0.93; when we hit 0.100, we dropped the leading zero and switched to 100, 101, etc. For some reason, when we hit version 110, we stopped incrementing the first number and just bumped up the second (no one remembers why). We are now approaching version 110.100. At that time, we plan to switch to a different numbering scheme, where versions will have a major number determined by the year and a minor number determined by the release number for that year. For example, if we have three more releases this year, then the last release will be number 2020.4, since it will be the fourth release of the year.
Support for 64-bit architectures
The latest version (110.98) supports 64-bit executables on macOS and Linux.
The latest release is 110.98; we believe that this version is stable, but there have been a lot of low-level changes that might have introduced bugs, so if you have any problems with the system you should report them and then revert to 110.87.
Signed installers for macOS are available, which install the system in
Note that to install SML/NJ on macOS 10.15 Catalina, you will have to right-click on the installer package, which should open up a dialog box. Click on the Open button to run the installer.
- A Windows msi installer for Windows 7+ is available (smlnj-110.98.msi).
Subversion accessOur master source repository is kept on a FusionForge server (a successor to GForge) under Subversion control. We provide anonymous read-only access to the repository, so anyone can download a snapshot of the most recent sources at any time. Instructions are here.
Documentation and Literature
- SML/NJ User's Guide
- SML'97 Basis Library
- SML/NJ Library documentation
- SML/NJ FAQ (Frequently Asked Questions)
- Top Level Environment Comparison
- Special features of SML/NJ
- Compilation Manager (CM)
- ML Language Processing Tools (ml-ulex and ml-antl)
- Concurrent ML
- SML/NJ-C foreign function interface
- SML'97 Conversion Guide
- Compiler notes
- Bugs can be reported online using our PHP bug form.
- You can also submit bug reports by email to using the bug report form.
- A legacy record of known bugs and the bug history for SML/NJ are available via the bugs web page.
- Recent submissions should appear in the GForge tracker .
- Pointers to programming resources (libraries, tools, example code), projects using SML/NJ, other SML implementations, related compiler research work, and miscellaneous SML links. The programming resources links will soon move to a separate page of their own.
- Picture of current cast of people involved in the project.
This project is based upon work supported in part by the National Science Foundation under Grant No. CNS-0454136.
Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).
Send comments to
Copyright © 2004-2020, SML/NJ Fellowship.