The easiest way to install SML/NJ on Windows machines is to use the self-installing executable.
The installation updates the PATH environment variable to point to the location of the SML/NJ executables, and if the compilation manager was included with the compiler, adds a CM_PATH environment variable to point to the location of the libraries for the various tools used by SML/NJ. Because of these updates, it is necessary to reboot the machine after the installation to ensure proper behavior of the compiler (Windows NT users can logoff instead of rebooting).
- Launch the self-installing executable.
- Choose a destination folder for SML/NJ (default C:\SML).
- Choose a setup. Choices include:
- typical: installs the runtime system, the compiler (including the compilation manager), ml-lex, ml-yacc, ml-burg and the SML/NJ library.
- compact: installs only the runtime system and the compiler (no compilation manager or tools)
- custom: allows you to choose the components to install.
- Choose a folder that will contain the program icons for SML/NJ. This folder will be part of the Programs folder of the Start menu.
To recompile the runtime system, the SML/NJ compiler itself, or any of the tools, you will need to refer to the manual installation instructions for Windows.
Administrators of Intel-based Linux systems can use the RedHat package manager "RPM" to install SML/NJ. This has been tested on an installation of RedHat 5.0. Use the distribution filesmlnj-110.0-3.i386.rpmNote, however, that we do not actively support this format. Should you have difficulties with this, then we recommend falling back on the following generic installation procedure for Unix.
The installation process creates the following subdirectories in the installation directory:
- Create a root directory for the installation (e.g., /usr/local/sml).
- FTP the compressed tar files that make up the distribution into this root directory. Note that these files will be unpacked automatically by the install script (except for 110-config.tar.Z; see step 3).
You will need:
110-config.tar.Z Installation scripts 110-runtime.tar.Z Runtime system 110-cm.tar.Z Compilation Manager
In addition to the tar files for the various sources, you also need the pre-compiled binary files for the compiler. You will need one of these files:
If your file system is mounted on multiple machines with different instruction sets, you may fetch more than one of these "bin" files.
110-bin.alpha32-unix.tar.Z for DEC Alpha and Digital Unix 4.0 110-bin.alpha32x-unix.tar.Z for DEC Alpha and OSF/1 3.2 and older 110-bin.hppa-unix.tar.Z for HPPA processors 110-bin.mipseb-unix.tar.Z for Silicon Graphics machines 110-bin.rs6000-unix.tar.Z for IBM Power processors 110-bin.sparc-unix.tar.Z for SPARC processors 110-bin.x86-unix.tar.Z for Intel Pentium processors running UNIX.
Finally, you may wish to fetch some of the following optional components of the SML/NJ distribution:
* part of standard config/targets, see below.
* 110-doc.tar.Z Documentation (not currently available) * 110-smlnj-lib.tar.Z Standard ML of New Jersey Library * 110-ml-burg.tar.Z ML-Burg code-generator generator * 110-ml-lex.tar.Z ML-Lex lexical analyzer generator * 110-ml-yacc.tar.Z ML-Yacc parser generator 110-sml-nj.tar.Z Source code for SML/NJ compiler 110-cml.tar.Z Concurrent ML 110-eXene.tar.Z. eXene multithreaded X-windows toolkit
- Unpack the configuration bundle in the root directory% zcat 110-config.tar.Z | tar -xf -This will create a subdirectory config.
- Edit the file config/targets, commenting out any targets that you do not want to install. The default is to install subsystems marked with an asterisk * above.
- Run the installation script while in the root directory:% config/install.sh
- If you have multiple hardware/operating system platforms sharing the same file system, you can run config/install.sh on each platform.
config - the configuration tools bin - shell scripts for running sml and the tools bin/.run - contains the runtime systems bin/.heap - contains the heap images lib - compilation-manager sources files for the various libraries src - the source code; installing libraries also leaves the precompiled library code in this subtree.
The most likely problem is in compiling the runtime system. You may need to edit the architecture/operating system specific makefile. You can find these files in the directory ROOT/src/runtime/objs. They are named mk.
- (e.g., mk.sparc-sunos, mk.mipseb-irix5). They are currently set up to use the vendor compiler on the mips, and alpha, and to use gcc on the sparc, rs6000 and x86.
The install shell script checks to see if your system has Korn shell (ksh); if so, it uses that for the shell in the shell scripts (ksh is faster than /bin/sh). If you are installing your system on multiple platforms, where some have ksh and some do not, then install the system on a platform that does not have ksh first.