legacy
legacy copied to clipboard
This project is the old version of Standard ML of New Jersey that continues to support older systems (e.g., 32-bit machines).
SML/NJ Legacy
This project is the old version of Standard ML of New Jersey that continues to support older systems (e.g., 32-bit machines). We will continue to fix bugs and make minor improvements while the main development branch matures. We will also backport additions to the SML/NJ Library and other components.
Building from Source
The preferred way to build the system is to follow the installation instructions for your platform. If, however, you want to compile the current source from GitHub, the following steps should usually work.
-
Start with a fresh clone of the repository (let
ROOTbe the root directory of the clone.% git clone [email protected]:smlnj/legacy.git $ROOT -
Configure and install the corresponding release in the
$ROOT:% cd $ROOT % config/install.sh -
Use this compiler to recompile from sources
% cd base/system % ./cmb-make ../../bin/sml % ./makemlThe "
../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.Also note that because of a flaw in the way that CM handles conditionals in CM files, it is necessary that the ml-yacc and ml-ulex commands be available in the
PATH. If you do not have an installation of SML/NJ available, then use the following steps:% cd base/system % PATH=$PATH:$PWD/../../bin ./cmb-make ../../bin/sml % ./makeml -
At this point, you can test the compiled code while in the
systemdirectory.% ./testml -
To finish the build process, you have to install the new compiler heap image and rebuild the libraries.
% ./installml -clean % cd ../.. % config/install.sh
You should now have a version of the system in $ROOT/bin/sml that
corresponds to the latest version of the source on GitHub.
If you subsequently pull changes from the repository, you can rebuild
starting at Step 3.
These instructions are for Unix-like systems (including macOS). We do not
have scripts (e.g., makeml) to support this process on Windows.