SML/NJ Installation Notes

For Windows 95 and Windows NT (3.5.1 and above):

The easiest way to install SML/NJ on Windows machines is to use the self-installing executable.
  1. Launch the self-installing executable.
  2. Choose a destination folder for SML/NJ (default C:\SML).
  3. 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.
  4. 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.
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).

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.

For Unix machines:

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 file
smlnj-110.0-3.i386.rpm
Note, 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.
  1. Create a root directory for the installation (e.g., /usr/local/sml).

  2. 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.ZInstallation scripts
    110-runtime.tar.ZRuntime system
    110-cm.tar.ZCompilation 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:
    110-bin.alpha32-unix.tar.Zfor DEC Alpha and Digital Unix 4.0
    110-bin.alpha32x-unix.tar.Zfor DEC Alpha and OSF/1 3.2 and older
    110-bin.hppa-unix.tar.Zfor HPPA processors
    110-bin.mipseb-unix.tar.Zfor Silicon Graphics machines
    110-bin.rs6000-unix.tar.Zfor IBM Power processors
    110-bin.sparc-unix.tar.Zfor SPARC processors
    110-bin.x86-unix.tar.Zfor Intel Pentium processors running UNIX.
    If your file system is mounted on multiple machines with different instruction sets, you may fetch more than one of these "bin" files.

    Finally, you may wish to fetch some of the following optional components of the SML/NJ distribution:
    *110-doc.tar.ZDocumentation (not currently available)
    *110-smlnj-lib.tar.ZStandard ML of New Jersey Library
    *110-ml-burg.tar.ZML-Burg code-generator generator
    *110-ml-lex.tar.ZML-Lex lexical analyzer generator
    *110-ml-yacc.tar.ZML-Yacc parser generator
    110-sml-nj.tar.ZSource code for SML/NJ compiler
    110-cml.tar.ZConcurrent ML
    110-eXene.tar.Z.eXene multithreaded X-windows toolkit
    * part of standard config/targets, see below.

  3. Unpack the configuration bundle in the root directory
        % zcat 110-config.tar.Z | tar -xf -
    
    This will create a subdirectory config.

  4. 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.

  5. Run the installation script while in the root directory:
        % config/install.sh
    

  6. If you have multiple hardware/operating system platforms sharing the same file system, you can run config/install.sh on each platform.
The installation process creates the following subdirectories in the installation directory:
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.

POTENTIAL PROBLEMS

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.


| SML/NJ Home Page |

Send your comments to sml-nj@research.bell-labs.com
Copyright © 1998, Lucent Technologies; Bell Laboratories.