This page provides pointers to the SML/NJ software distributions and installation instructions.
The current release of SML/NJ is Version 110.74, announced on Jan 31, 2012. Version 110.74 runs under Linux, Mac OS X (10.5 and later) and Windows (XP, Vista, and 7).
We generally announce new versions on comp.lang.ml, comp.lang.functional, freshmeat.net, and our development mailing list .
To download and install the current version of SML/NJ, follow these installation instructions.
The Distribution FilesThe files making up the current version's distribution are available via http from this index page.
Previous VersionsCurrent and recent versions are listed in the Versions index, which gives access to README files for recent versions and the file distribution pages for versions that are currently available for downloading. The installation instructions for the current version will generally work, mutatis mutandis, for older versions.
Version 0.93 (released in 1993) is still available for historical purposes, but is obsolete and no longer supported. Versions of the code dating back as far as 1987 are also available on request.
A set of programs used as a "benchmark suite" for Standard ML is available by svn checkout at https://smlnj-gforge.cs.uchicago.edu/svn/smlnj/benchmarks.
SML/NJ Compiler Test Suites
The regression test suites used for the SML/NJ compiler are available by svn checkout at https://smlnj-gforge.cs.uchicago.edu/svn/smlnj/tests/trunk.
Some contributed software packages can be found at (location to be determined)Currently this directory contains:
- The sml-mode package provides an emacs mode for editing sml code under Gnu emacs and running the sml top-level as a subprocess of emacs. Originally developed by Matthew J. Morley, it is now maintained by Stefan Monnier (monnier at iro dot umontreal dot ca). Online documentation is available here. The latest sml-mode tarball is available at http://www.iro.umontreal.ca/~monnier/elisp/.
- Various software tools, including:
- heap2exec, A "heap2exec" utility for building Unix executables from heap images and the SML/NJ runtime executable. (This replaces Lorenz Huelsbergen's original heap2exec utility.)
- Some contributed or "borrowed" libraries, including:
- Util.tar.Z, utility modules contributed by Nikolai Bjorner and Matthias Blume.
- getopt.tar.Z, a port (via Haskell) of the GNU getopt library.
Additional packages will be added as they become available. New contributions are eagerly sought!