This is the main development repository for SML/NJ. We are currently reworking many components of the system, so it is not very stable. For most uses, we recommend the legacy version of the system.
Currently, only Intel-based Macs are known to work.
The process for building the system from source code has changed.
-
clone the repository
git clone git@github.com:smlnj/smlnj.git
-
cdto the cloned repository and get the boot filescd smlnj curl -O https://smlnj.org/dist/working/$VERSION/boot.amd64-unix.tgz
where
$VERSIONis the version that you are building (e.g.,2022.1).We plan to incorporate this step into the
build.shscript in the near future. -
build the installation
./build.sh
Use
build.sh -hto see the list of options accepted by the build script.As before, you can modify the
config/targetsfile to add/remove components from the build.
After successful running of the build.sh script, bin/sml will be the interactive
system.
The process of recompiling the system from source code is fairly similar to before.
-
Switch to the
systemdirectory and run thecmb-makecommand:cd system ./cmb-make ../bin/smlThe "
../bin/sml" argument is optional; if omitted, then thesmlcommand in the user'sPATHwill be used. Once can also specify a different path to ansmlcommand, when appropriate. -
Bootstrap the system
./makeml
-
Install the system
./installml -clean -boot
The
-bootoption is new (and optional); it causes the existing boot files in the root directory (e.g.,boot.amd64-unix.tgz) to be replaced by the files generated by thecmb-makecommand. -
Rebuild the libraries and tools
cd .. ./build.sh