SML/NJ Software

This page provides pointers to the SML/NJ software distributions and installation instructions.

Current Release

The current release of SML/NJ is Version 110.81, announced on August 26, 2016. Version 110.81 runs under Linux, Mac OS X (10.6 and later), and Windows (XP an later).

We generally announce new versions on, comp.lang.functional,, and our development mailing list .

Installation Instructions

To download and install the current version of SML/NJ, follow these installation instructions.

The Distribution Files

The files making up the current version's distribution are available via http from this index page.

Previous Versions

Current 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

SML/NJ Compiler Test Suites

The regression test suites used for the SML/NJ compiler are available by svn checkout at

Contributed Software

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

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!

| SML/NJ Home Page |

Send your comments to
Copyright © 2004-2017, the SML/NJ Fellowship.