Related articles |
---|
Moscow ML 2.00 for Unix released sestoft@ellemose.dina.kvl.dk (Peter Sestoft) (2000-07-01) |
From: | Peter Sestoft <sestoft@ellemose.dina.kvl.dk> |
Newsgroups: | comp.lang.functional,comp.compilers |
Date: | 1 Jul 2000 11:13:14 -0400 |
Organization: | UNI-C |
Keywords: | ML, functional |
Moscow ML provides a light-weight implementation of full Standard ML,
including Modules and some extensions. Standard ML is a strict
functional language widely used in teaching and research.
Moscow ML is based on the Caml Light system, which gives fast
compilation and modest storage consumption.
* The full SML Modules language (structures, signatures, and functors)
is now supported, thanks to Claudio Russo.
* Also, several extensions to the SML Modules language are provided:
- higher-order functors: functors may be defined within structures
and functors
- first-class modules: structures and functors may be packed and
then handled as Core language values, which may then be unpacked
as structures or functors again
- recursive modules: signatures and structures may be recursively
defined
* Despite those improvements, Moscow ML remains backwards compatible.
* Value polymorphism has become friendlier: non-generalizable free
type variables are left free, and become instantiated (once only)
when the bound variable is used
* Added facilities for creating and communicating with subprocesses
(structure Unix and Signal from SML Basis Library).
* Added facilities for efficient functional generation of HTML code
(structure Msp); also supports the writing of ML Server Page scripts.
* Added facilities setting and accessing `cookies' in CGI scripts
(structure Mosmlcookie), thanks to Hans Molin, Uppsala, Sweden.
* The Gdimage structure now produces PNG images (using Thomas
Boutell's gd library).
Moscow ML version 2.00 is available from
http://www.dina.kvl.dk/~sestoft/mosml.html
As before, Moscow ML
* Implements Standard ML, as revised 1997 (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.
* Can produce compact stand-alone executables.
* Supports quotations and antiquotations, useful for metaprogramming.
* Provides dynamic linking of external functions (Linux/x86 and
Linux/Alpha, Solaris, Digital Unix, HP-UX, MacOS, Win'95/98/NT/2000)
SML BASIS LIBRARY
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.
STAND-ALONE EXECUTABLES
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
itself.
SEPARATE COMPILATION
Compilation of a signature produces a compiled interface file, which
is used when compiling other signatures and structures.
SUPPORTED PLATFORMS
Intel x86-based PCs running Windows'95, '98, 'NT, and '2000, OS/2,
Linux or FreeBSD; DEC Alpha running Linux or Digital Unix; Sun Sparc
running Solaris or SunOS; HP9000 running HP/UX 9 or HP/UX 10; SGI MIPS
running IRIX 5; Macintosh (68k and PPC) running MacOS (thanks to Doug
Currie) or MkLinux.
AUTHOR AND CREDITS
Moscow ML was written by
Sergei Romanenko (roman@keldysh.ru)
Keldysh Institute of Applied Mathematics, Russian Academy of Sciences
Miusskaya Pl. 4, 125047 Moscow, Russia
and Claudio V. Russo (Claudio.Russo@cl.cam.ac.uk), University of Cambridge.
Thanks to Don Sannella at LFCS, Division of Informatics,
University of Edinburgh for funding under EPSRC grant GR/K63795
and Peter Sestoft (sestoft@dina.kvl.dk),
Department of Mathematics and Physics, Royal Veterinary and
Agricultural University, Thorvaldsensvej 40, DK-1871 Frederiksberg C,
Denmark. Much of the 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;
* the good work by Doug Currie, Flavors Technology, USA, on the
MacOS port and many improvements; and
* feedback, contributions, and useful suggestions, in particular
from Ken Friis Larsen, but also from Jonas Barklund, Mike Gordon,
Michael Norrish, Konrad Slind, and numerous other people.
AVAILABILITY
* The Moscow ML homepage
http://www.dina.kvl.dk/~sestoft/mosml.html
This includes Linux RPMs: binary x86, binary Alpha, source.
* Moscow ML library documentation
http://www.dina.kvl.dk/~sestoft/mosmllib/
* The Linux executables and documentation are in
ftp://ftp.dina.kvl.dk/pub/mosml/linux-mos20bin.tar.gz
* The Unix source files and documentation are in
ftp://ftp.dina.kvl.dk/pub/mosml/mos20src.tar.gz
* The MS Windows 95/98/NT executables and documentation are in
ftp://ftp.dina.kvl.dk/pub/mosml/win32-mos20bin.zip
* The MacOS (68k and PPC) executables and docs and source diffs are in
ftp://ftp.dina.kvl.dk/pub/mosml/MacMoscowML20installer.hqx
* The MS Windows 95/98/NT/2000 source files are in
ftp://ftp.dina.kvl.dk/pub/mosml/win32-mos20src.zip
Postscript and PDF versions of the documentation included with the
binaries can be found in ftp://ftp.dina.kvl.dk/pub/mosml/doc/
Peter Sestoft (sestoft@dina.kvl.dk) 2000-06-29
--
Department of Mathematics and Physics * http://www.dina.kvl.dk/~sestoft/
Royal Veterinary and Agricultural University * Tel +45 3528 2334
Thorvaldsensvej 40, DK-1871 Frederiksberg C, Denmark * Fax +45 3528 2350
Return to the
comp.compilers page.
Search the
comp.compilers archives again.