Standard ML of New Jersey version 110

Standard ML of New Jersey

Version 110, Patch 7 (110.0.7), September 28, 2000

This is Version 110.0.7 of Standard ML of New Jersey, also known as Version 110, Patch 7. The primary purpose of this patch version is to fix a bug in the implementation of signals that caused problems in CML, but a number of other bug fixes are included, as well as some enhancements. Specifically, the SML/NJ Library has had a number of additions. For details of changes, improvements, and bug fixes for this and previous 110 patch versions, read the 110-PATCH-HISTORY.

Version 110 implements the SML '97 definition, including the new Basis library, with a few minor omissions and discrepancies that are documented in the SML '97 Conversion Guide.

Version 110 has been thoroughly tested and we believe it to be fairly free of serious bugs and instabilities. As usual, the bug lists are available from the bugs page. We strongly urge that those who are still using SML/NJ 0.93 and those who have been using intermediate working versions should move to Version 110.

The Version 110 distribution includes:

  • the interactive SML/NJ compiler itself
  • CM - an itegrated compilation manager supporting separate compilation, automatic dependency analysis, autoloading
  • The Standard ML of New Jersey Library (smlnj-lib)
  • CML - Concurrent ML
  • eXene - an elegant interface to X11 (based on CML)
  • SMLNJ-C library for interfacing to C code
  • Visible Compiler facilities for access to compiler internals
  • A programming toolset: ML-Lex, ML-Yacc, ML-Burg, execution profiler
  • Systems supported

    SML/NJ 110 has been tested on these machine/OS combinations:
  • Sparc (Ultra II): Solaris 5.5.1 through Solaris 8
  • Alpha: Digital Unix 4.0
  • MIPS (R10000): IRIX 6.5
  • IA-32 (Pentium): Solaris 8, FreeBSD 3.2, Linux, Win98, WinNT, Win2000
  • HP HPPA: HPUX 10.1
  • The IBM RS6000/AIX[3.2, 4.1] platform should also be supported, but we no longer have such a machine to test on. The system may also run under Sparc/SunOS 4.x and MIPS/IRIX 5.x,6.[2-4], but hasn't been tested on those platforms. Please let us know if you can successfully install on a configuration not listed above.

    We recommend running SML/NJ on machines with at least 32MB of physical ram, which will be adaquate for small projects and classroom exercises. As usual, larger projects will run better with more ram.

    There is a performance issue that may affect users running on machines with small swap spaces. Because of new optimizations performed by the compiler and a conservative strategy for allocating virtual memory in the runtime system, Version 110 can require significantly more virtual memory than was used by 0.93, particularly during compilation of large source files, while at the same time using less physical memory than 0.93. This means that if you have a small swap space allocated on your machine, you may need to increase the allocation in order to compile or run some large programs. A future version of the runtime system will implement a tighter allocation scheme that will reduce virtual memory usage.


    The documentation for Version 110 is available at our web site
    including nearly final documentation of the SML'97 Basis Library and an SML'97 Conversion Guide that describes language changes. Work is continuing to improve the content and organization of the documentation, so it would be worthwhile checking back periodically. We welcome suggestions and corrections.

    The directory tree of the SML/NJ web page documentation, including the Basis web pages, is available for Basis documentation pages are also available separately as a gzipped tar file.


    Distribution Files

    The Version 110 distribution files are available at
    SourceForge (the master site)
    University of Chicago
    Stanford University
    Yale University
    DIKU (Copenhagen University)
    Cambridge University
    SunSITE UK (Imperial College)
    National Technical Univ. of Athens
    KAIST Korea
    The distribution consists of the following files (most of the files are in Unix compressed tar format, indicated by the ".tar.Z" suffix).
    110-README1 KbRead Me (this file)
    110-PATCH-HISTORY96 Kb        Information about bug fixes and changes in the 110 patch versions
    110-HISTORY96 Kb        History of previous working versions
    110-INSTALL3 KbHow to install
    LICENSE3 KbSML/NJ License
    smlnj.exe6565 KbSelf-installing EXE for Win '95 and NT
    RPMS directory6565 KbLinux RPM packages
    bin.alpha32-unix.tar.Z4394 Kbfor DEC Alpha, Digital Unix 4.0
    bin.hppa-unix.tar.Z.4615 Kbfor HPPA processors
    bin.mipseb-unix.tar.Z4188 Kbfor Silicon Graphics machines
    bin.rs6000-unix.tar.Z4317 Kbfor IBM Power processors
    bin.sparc-unix.tar.Z4184 Kbfor SPARC processors
    bin.x86-unix.tar.Z3440 Kbfor Intel Pentium processors running UNIX.
    bin.x86-win32.tar.Z3349 Kbfor Intel Pentium processors running Windows.
    cm.tar.Z524 KbCompilation Manager
    cml.tar.Z154 KbConcurrent ML
    config.tar.Z10 KbInstallation scripts
    eXene.tar.Z1079 KbeXene window system
    ml-burg.tar.Z95 KbBurg code-generator generator
    ml-lex.tar.Z44 KbML-Lex scanner generator
    ml-yacc.tar.Z148 KbML-Yacc parser generator
    runtime.tar.Z588 KbRuntime system
    sml-nj.tar.Z1572 KbSource code for compiler
    smlnj-c.tar.Z102 KbML-to-C library
    smlnj-lib.tar.Z344 KbSML of NJ Library

    You will need at least the config.tar.Z, runtime.tar.Z, the bin.* files for the machines on which you intend to install the software, and the source files for the components (CM, ml-lex, ml-yacc, cml, eXene) that you want installed (these are defined in the config/targets file). The file smlnj.exe can be used to automatically install SML/NJ on Windows 95 and NT, and the rpm package RPMS/smlnj-110.0.7-0.i386.rpm can be used to install under Linux (tested under Red Hat Linux 6.1). More detailed installation instructions are in the 110-INSTALL file or at the web page:

    News about SML/NJ

    New releases of our software are announced in the netnews group


    Standard ML of New Jersey is distributed free of charge and with no warranty. You may use, copy, modify, and distribute the software provided that you preserve the copyright notice and don't mention Bell Laboratories or Lucent Technologies in your advertising without prior written permission; see the license for the legal language.

    Contact Info

    If you have general questions or comments, please email them to .

    Bug reports should be sent to the same address, preferably using the bug report form. Bug reports can also be submitted using our online bug form.