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
-
cd
to the cloned repository and get the boot filescd smlnj curl -O https://smlnj.org/dist/working/$VERSION/boot.amd64-unix.tgz
where
$VERSION
is the version that you are building (e.g.,2022.1
).We plan to incorporate this step into the
build.sh
script in the near future. -
build the installation
./build.sh
Use
build.sh -h
to see the list of options accepted by the build script.As before, you can modify the
config/targets
file 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
system
directory and run thecmb-make
command:cd system ./cmb-make ../bin/sml
The "
../bin/sml
" argument is optional; if omitted, then thesml
command in the user'sPATH
will be used. Once can also specify a different path to ansml
command, when appropriate. -
Bootstrap the system
./makeml
-
Install the system
./installml -clean -boot
The
-boot
option 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-make
command. -
Rebuild the libraries and tools
cd .. ./build.sh