Moscow ML 1.42 (Peter Sestoft)
7 Aug 1997 15:14:06 -0400

          From comp.compilers

Related articles
Moscow ML 1.42 (1997-08-07)
| List of all articles for this month |

From: (Peter Sestoft)
Newsgroups: comp.compilers
Date: 7 Aug 1997 15:14:06 -0400
Organization: Royal Veterinary and Agricultural Univ.
Keywords: ML, functional, available

Moscow ML provides a light-weight implementation of Core Standard ML,
a strict functional language widely used in teaching and research.

It is based on the Caml Light system, which gives fast compilation and
modest storage consumption.

Version 1.42 of Moscow ML

        * provides faster compilation
        * provides faster bytecode execution (thanks to Doug Currie)
        * provides support for writing CGI scripts (thanks to Jonas Barklund)
        * automatically includes all required libraries when linking
        * provides new structures Array2, CommandLine, and Option from
            the Basis Library

Moscow ML is available for Unix, DOS, and MacOS from


As before, Moscow ML

        * Implements the Core language of Standard ML, as revised 1996
            (value polymorphism, default overloading resolution, new types).
        * Implements most of the new Standard ML Basis Library, including
            the most common input/output facilities in TextIO and BinIO.
        * Features an on-line help function.
        * Implements separate compilation and a limited version of the
            Standard ML Modules language, with signatures and non-nested
            structures but no functors.
        * Can produce compact stand-alone executables (a la Caml Light).
        * Supports quotations and antiquotations, useful for metaprogramming.
        * Provides installable prettyprinters.


The SML Basis Library is an attempt to rationalize the collection of
built-in types and functions, with the aim of improving portability of
Standard ML programs. Standard ML of New Jersey, Harlequin MLWorks,
and Moscow ML implement the Standard Library.


Moscow ML can generate compact linked bytecode files in the style of
Caml Light. A bytecode file calls on the shared runtime system to run


The sublanguage of Modules implemented by Moscow ML contains
signatures and non-nested structures, and identifies structures with
source files. It is less expressive than the full Standard ML Modules
language, but the type-safe separate compilation facility is simple,
quite useful, and easy to use. It is the intention to implement the
full Standard ML Modules language (including functors) in due course.


Compilation of a signature produces a compiled interface file, which
is used when compiling other signatures and structures.


Intel x86-based PCs running DOS, Windows, OS/2 or Linux; DEC MIPS
running Ultrix; DEC Alpha running OSF/1; Sun 4 running SunOS; HP9000
running HP/UX; and SGI MIPS running IRIX 5; Macintosh (68k and PPC)
running MacOS (thanks to Doug Currie); Macintosh running mkLinux
(thanks to Franklin Chen).

Systems requirements for MS DOS: a 386 or 486 or 586 PC with 2 MB of
RAM or more, and DOS 3.3 or later. The installation requires around
2.5 MB disk space.

Systems requirements for Linux: Approximately 1.6 MB disk space.

Systems requirements for other Unixes: gcc, make, Perl and 7 MB disk


Moscow ML was written by
        Sergei Romanenko (
        Keldysh Institute of Applied Mathematics, Russian Academy of Sciences
        Miusskaya Pl. 4, 125047 Moscow, Russia.
and Peter Sestoft (,
        Department of Mathematics and Physics, Royal Veterinary and
        Agricultural University, Thorvaldsensvej 40, DK-1871 Frederiksberg C,
        Denmark. Much work was done at the Technical University of Denmark
        and while visiting AT&T Bell Laboratories, New Jersey, USA.

Moscow ML owes much to:
        * the CAML Light implementation by Xavier Leroy and Damien Doligez
            (INRIA, Rocquencourt, France); especially the Caml Light bytecode
            generator and the runtime system;
        * the ML Kit by Lars Birkedal, Nick Rothwell, Mads Tofte and David Turner
            (Copenhagen University, Denmark, and Edinburgh University, Scotland);
        * inspiration from the SML/NJ compiler developed at Princeton
            University and AT&T Bell Laboratories, New Jersey, USA; and
        * the good work by Doug Currie, Flavors Technology, USA, on the
            MacOS port.


        * The Moscow ML homepage
        * Moscow ML library units documentation
        * The DOS executables (and documentation) are in
        * The Linux executables (and documentation) are in
        * The Macintosh/MacOS (68k and PPC) executables are in
        * The DOS source files are in
        * The Unix source files are in
        * The MacOS modified source files (relative to Unix) are in

These files are mirrored at

Postscript versions of the documentation included with the binaries
can be found in

Peter Sestoft ( 1997-07-31
Department of Mathematics and Physics *
Royal Veterinary and Agricultural University * Tel +45 3528 2334
Thorvaldsensvej 40, DK-1871 Frederiksberg C, Denmark * Fax +45 3528 2350

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.