/mlton

The MLton repository

Primary LanguageStandard MLOtherNOASSERTION

MLton is a whole-program optimizing compiler for the Standard ML
programming language.  MLton has the following features.

  + Portability.  
   Runs on the following platforms.
   o ARM: Linux (Debian).
   o Alpha: Linux (Debian).
   o AMD64: Darwin (Mac OS X), FreeBSD, Linux (Debian, Fedora, ...),
      Solaris (10 and above).
   o HPPA: HPUX (11.11 and above), Linux (Debian).
   o IA64: HPUX (11.11 and above), Linux (Debian).
   o PowerPC: AIX (5.2 and above), Darwin (Mac OS X), Linux (Debian,
      Fedora).
   o PowerPC64: AIX (5.2 and above).
   o S390: Linux (Debian).
   o Sparc: Linux (Debian), Solaris (8 and above).
   o X86: Cygwin/Windows, Darwin (Mac OS X), FreeBSD, Linux (Debian,
      Fedora, ...), MinGW/Windows, NetBSD, OpenBSD, Solaris (10 and
      above).
  + Robustness.
   o Supports the full SML 97 language as given in The Definition 
      of Standard ML (Revised).
   o A complete implementation of the Basis Library.
   o Generates standalone executables.
   o Compiles large programs.
   o Support for large amounts of memory (up to 4G on 32-bit systems; 
      more on 64-bit systems).
   o Support for large array lengths (up to 2^31 - 1 on 32-bit
      systems; up to 2^63-1 on 64-bit systems).
   o Support for large files, using 64-bit file positions.
  + Performance.
   o Executables have excellent running times.
   o Generates small executables.
   o Untagged and unboxed native integers, reals, and words.
   o Unboxed native arrays.
   o Multiple garbage collection strategies.
   o Fast arbitrary-precision arithmetic based on the GnuMP.
  + Tools.
   o Source-level profiling for both time and allocation.
   o MLLex lexer generator.
   o MLYacc parser generator.
   o ML-NLFFIGEN foreign-function-interface generator.
  + Extensions.
   o A simple and fast C FFI that supports calling from SML to C and 
      from C to SML.
   o The ML Basis system for programming in the very large.
   o Libraries for continuations, finalization, interval timers,
      random numbers, resource limits, resource usage, signal
      handlers, object size, system logging, threads, weak pointers,
      and world save and restore.

For more information, go to the MLton home page. 

        http://mlton.org/

There are two mailing lists available.

 * MLton@mlton.org        MLton developers
 * MLton-user@mlton.org   MLton user community 

doc directory contents:
        README                  this file
        changelog               changelog
        cm2mlb/                 a utility for producing ML Basis programs in SML/NJ
        cmcat/                  a utility for producing whole programs in SML/NJ
        examples/               example SML programs
        guide/                  HTML MLton guide (copy of the MLton wiki)
        license/                license information
        mllex.pdf               user guide for mllex lexer generator
        mlton-guide.pdf         PDF version of MLton guide
        mlyacc.pdf              user guide for mlyacc parser generator