Standard ML
of New Jersey
Standard ML of New Jersey (abbreviated SML/NJ) is a compiler for the Standard ML '97 programming language with associated libraries, tools, and documentation. SML/NJ is free, open source software.
Downloads
Although we have not "blessed" it as a full release, we strongly recommend using one of our recent working versions. Currently, the most recent such version is 110.60.What's New
- Working version 110.60 available. New directory layout, subversion-based source repository, beta-releases of new program generator tools.
- Working version 110.59 available. Bugfixes and minor improvements.
- Working version 110.58 available. Among other improvements, this version adds support for Intel-based Macs as well as x86-64-based Linux machines. Moreover, it comes with lexgen, a brand-new drop-in replacement for ml-lex.
- Working version 110.57 available. Bugfixes and minor feature enhancements.
- Working version 110.51 available. This version adds 64-bit integer and word arithmetic to the Basis library (structures Int64 and Word64). (At the moment, the implementation is rather inefficient, though.)
- Working version 110.50 available. This version corrects a problem related to struct arguments and results with NLFFI on the x86 platform. It also improves back-trace support and adds a simple test coverage tool. In addition, CM can now deal directly with "lazy sml" source code.
- Working version 110.49 available. Version 110.49 fixes another show-stopper bug in the x86 c-calls implementation, fixes a bug in the signal masking code, and enables Cygwin support.
- Working version 110.48 available. Version 110.48 fixes a show-stopper bug in the x86 c-calls implementation introduced by 110.47. It also resolves a few other minor issues.
- Working version 110.47 available. The most important change is the availability of preliminary implementations of the NLFFI foreign-function interface under Mac OS X and Win32.
- Working version 110.46 available. We are moving closer to compliance with the Basis Library specification. There are also bugfixes and other minor enhancements to the installer, the Windows port, the ml-build command-line tool, and the Compilation Manager.
- Working version 110.45 available. This is a maintenance release which mostly fixes problems compiling the runtime system code using GCC 3.3.
- Working version 110.44 available. This update fixes several important bugs, improves the new installer, provides support for Mac OS X 10.3 (Panther), and continues to bring the Basis implementation closer to the specification.
- Working version 110.43 available. This is a fairly major update which brings back an operational port to the Microsoft Windows platform as well as extensive work on the Basis library (including support for IntInf.int).
- The SML/NJ source CVS repository has been moved to SourceForge. The SML/NJ SourceForge project page has a link to information about CVS access. The distribution files are also in the process of being moved to SourceForge. A mirror of the www.smlnj.org is available at the University of Chicago. The Bell Labs SML/NJ web site is now obsolete and will be replaced with an indirection to www.smlnj.org. [March 10, 2003]
- We have switched over to a new mailing list hosted by SourceForge. The name of the new list is . (To avoid receiving to much spam we do not show the name of the mailing list in clear text and render it as a JPG image instead. If spammers start using fancy OCR, we give up.)
- Working version 110.42 available. This relatively small but important update (among other things) fixes a memory leak problem in CML and provides support for MacOS X 10.2. (We have provided a MacOS disk image with pre-compiled runtime systems for both MacOS 10.1 and 10.2 for use by those without developer tools. See the README file within this disk image for details.)
- Version 111 plans.
Downloading SML/NJ Software for Unix or Windows
- Information on downloading and installing the SML/NJsystem and related software.
- A self-installing .EXE for Windows 9X/NT/2000/XP is available ((smlnj.exe, 5.4MB).
Background
Documentation and Literature
- Books
- Tutorials
- SML/NJ User's Guide
- SML'97 Basis Library
- SML/NJ FAQ (Frequently Asked Questions)
- SML'97 Conversion Guide
- Top Level Environment Comparison
- Special features of SML/NJ
- Compilation Manager (CM)
- ML-Lex
- ML-Yacc
- Concurrent ML
- eXene
- SML/NJ-C foreign function interface
- MLRISC
- comp.lang.ml FAQ
- Compiler notes
Reporting Bugs
- Bugs can be reported online using our cgi bug form at Princeton.
- You can also submit bug reports by email to using the bug report form.
- The record of currently known bugs and the bug history for SML/NJ are available via the bugs web page.
Links
- Pointers to programming resources (libraries, tools, example code), projects using SML/NJ, other SML implementations, related compiler research work, and miscellaneous SML links. The programming resources links will soon move to a separate page of their own.
People
- Picture of current cast of people involved in the project.
Send your comments to .
Copyright © 2004-2005, the SML/NJ Fellowship.
This material is based upon work supported in part by the National Science Foundation under Grant No. CNS-0454136.
Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).