Standard ML of New Jersey version 110

Standard ML of New Jersey

Version 110, February, 1998

The long awaited Version 110 of Standard ML of New Jersey (SML/NJ) is now available. It implements the SML '97 definition, including the new Basis library, with a few minor omissions and discrepancies that are being documented in the SML '97 Conversion Guide. Version 110 is much more thoroughly tested than previous working versions, and we believe it to be fairly free of serious bugs and instabilities. As usual, the bug lists are available at:
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:
  • Sun Sparc: SunOS 4.1.3, Solaris 2.5.5
  • DEC Alpha: Digital Unix 4.0
  • SGI MIPS R4400, R10000: IRIX [5.3, 6.2-6.4]
  • IBM RS6000, PowerPC 601: AIX[3.2, 4.1]
  • Intel Pentium: FreeBSD, Linux, Win'95, WinNT
  • HP HPPA: HPUX 10.1
  • 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 but is still "under construction" at the moment. Work is continuing to improve the content and organization of the documentation, so suggestions are welcome. The Basis web pages are available as a compressed tar file for downloading and local installation, and we plan to package the rest of the documentation similarly.

    Distribution Files

    The Version 110 distribution files are available at
    Bell Labs (
    Stanford (
    DIKU (
    Cambridge (
    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-HISTORY96 Kb        History of previous working versions
    110-INSTALL3 KbHow to install
    LICENSE3 KbSML/NJ License
    110-bin.alpha32-unix.tar.Z4394 Kbfor DEC Alpha, Digital Unix 4.0
    110-bin.alpha32x-unix.tar.Z   4399 Kbfor DEC Alpha, OSF/1 3.2 and older
    110-bin.hppa-unix.tar.Z.4615 Kbfor HPPA processors
    110-bin.mipseb-unix.tar.Z4188 Kbfor Silicon Graphics machines
    110-bin.rs6000-unix.tar.Z4317 Kbfor IBM Power processors
    110-bin.sparc-unix.tar.Z4184 Kbfor SPARC processors
    110-bin.x86-unix.tar.Z3440 Kbfor Intel Pentium processors running UNIX.
    110-bin.x86-win32.tar.Z3349 Kbfor Intel Pentium processors running Windows.
    110-cm.tar.Z524 KbCompilation Manager
    110-cml.tar.Z154 KbConcurrent ML
    110-config.tar.Z10 KbInstallation scripts
    110-eXene.tar.Z1079 KbeXene window system
    110-ml-burg.tar.Z95 KbBurg code-generator generator
    110-ml-lex.tar.Z44 KbML-Lex scanner generator
    110-ml-yacc.tar.Z148 KbML-Yacc parser generator
    110-runtime.tar.Z588 KbRuntime system
    110-sml-nj.tar.Z1572 KbSource code for compiler
    110-smlnj-c.tar.Z102 KbML-to-C library
    110-smlnj-lib.tar.Z344 KbSML of NJ Library
    110-smlnj.exe6565 KbSelf-installing EXE for Win '95 and NT

    You will need at least the 110-config.tar.Z, 110-runtime.tar.Z, the 110-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). Further 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 using the bug report form. Bug reports can also be submitted using our online bug form