The only file you need to download manually is config.tgz. Unpack, configure by editing config/targets, and install by running config/install.sh. The installer automatically downloads any additional files it might need. For more information, see the install.html file.
As with the 32-bit Unix install above, download the file config.tgz. Unpack, configure by editing config/targets, and install by running config/install.sh -default 64. The installer automatically downloads any additional files it might need. For more information, see the install.html file.
You can either use the "generic Unix" procedure above or you can install a pre-built system using an installer package. We provide both 32-bit and 64-bit installers for Intel Macs:
The macOS installer (on Intel) puts SML/NJ in the directory /usr/local/smlnj; if you have a previous version installed, then it will be updated in place. If you wish to install at a different location, you should use the build procedure for Unix systems.
The AMD64 installer works on macOS Catalina and Big Sur, but you will need to right-click on the installer to launch it, since it is not a notarized installer.
We are currently working on a native port of SML/NJ for Apple's new Arm-based hardware. Meanwhile, this release does appear to work on M1 Macs using the Rosetta2 emulation system. To install, download the macOS installer package smlnj-amd64-110.99.3.pkg. While the installer package is signed, it has not been notarized by Apple, so to install it you should Control-click on the package and open it with the installer application.
We no longer have access to a working PowerPC Mac, so we are no longer providing a Mac OS X/PowerPC installer. If you wish to install SML/NJ 110.99.3 on such a machine, you should use the build procedure for Unix systems.
Download smlnj-110.99.3.msi and follow the instructions in windows.html.
For information on how to use access the subversion repository,
refer to our subversion recipe page.
Warning: When pulling the latest sources via subversion, there is no guarantee that config/install.sh will operate successfully due to a lack of usable bootfiles. In this case you might be able to generate new bootfiles using the bootstrap compiler (of an older version). Even that can be very difficult or even impossible, however, in which case you will have to wait for the next working version to be released.