README
1This is file README for Moscow ML 2.10.1 for Linux/Unix (August 2014)
2
3EXTENT OF THE IMPLEMENTATION
4
5The current version 2.10.1 of Moscow ML
6
7 * implements the full Standard ML language, as revised 1997,
8 including Modules and some extensions
9 * yet is backwards compatible with versions prior to 2.00
10 * implements large parts of the new SML Basis Library
11 * implements separate compilation
12 * can produce compact stand-alone executables (a la Caml Light)
13 * supports quotations and antiquotations, useful for metaprogramming
14 * supports dynamic linking of external functions under Linux (x86
15 and Alpha), FreeBSD, NetBSD, Solaris, Digital Unix, HP-UX,
16 MacOS, and MS Windows'95/98/NT/XP/Vista and possibly also 7 and 8.
17
18New in version 2.10.1 of Moscow ML
19
20 * ML Server Pages added to examples
21 * Build system cleaned up a bit
22
23New in version 2.10 of Moscow ML
24
25 * Support for dynamic linking and callback from C also under MacOS X
26 * There may now be 2 G globals (string literals etc) instead of 64 K
27 * Bugs fixed:
28 * The HTML files generated for mosmllib now have valid URLs
29 * Substring.app more efficient
30 * Recursive structure compilation (elabRecSigExp) fixed
31 * Several errors in Mosmlcookie
32 * Misplaced double quote in Msp.ahrefa
33 * Exception Option wasn't available at top-level
34 * Linker did not check stamps of linked-in units
35 * Hash function now much faster on very long strings
36 * Double alignment constraints now correct with gcc-3.2 and Solaris
37 * Bug in Polyhash.filter
38 * Socket library returned only first 16 bytes of UDP datagram
39 * SML Basis Library changes:
40 * String and Substring: added concatWith, isSuffix, isSubstring, full
41 * ListPair: added zipEq, appEq, mapEq, foldlEq, foldrEq, allEq
42 * Added ArraySlice and VectorSlice structures, also for Char and Word8
43 * Added find, findi, all, exists, collate to vector, array and
44 slice structures
45 * Added collate to List
46 * Added update to vector structures
47 * Path.{mkRelative,mkAbsolute} now take record arguments
48 * Negative Time.time values allowed
49 * OS.Process: new functions sleep and isSuccess; status not eqtype
50 * Listsort: added eqclasses, merge, mergeUniq
51 * Path: added functions isRoot, fromUnixPath, toUnixPath, and
52 exception InvalidArc (bug report by Henning Niss)
53 * TextIO: inputLine now have type instream -> string option
54 * Array: added type abbreviation vector (bug report by Andrzej
55 Wasowski)
56 * FileSys: type access renamed to access_mode (bug report by
57 Henning Niss)
58 * Byte: unpackString{,Vec} now uses vector slices (bug report by
59 Henning Niss)
60 * Unix: added functions fromStatus, textInstreamOf, binInstreamOf,
61 textOutstreamOf, binOutstreamOf, exit, and added phantom types
62 to proc (bug report by Henning Niss)
63 * Timer: added function checkCPUTimes
64 * Word and Word8: added functions toLarge, toLargeX, and fromLarge
65 (bug report by Martin Elsman)
66 * General: added exception Span and made the type of the function
67 'before' less general (bug report by Henning Niss)
68 * Added modules to mosmllib:
69 * Buffer: mutable string buffers for fast and efficient
70 concatenation of strings
71 * Hashset: sets implemented by hash-tables
72 * Rbset: ordered sets implemented by red-black trees
73 * Redblackmap: maps implemented by red-black trees
74 * Moscow ML is now developed in the open at github.
75
76
77SYSTEM REQUIREMENTS
78
79Compilation under Unix is best done using GNU make, gcc, and Perl. A
80binary installation requires 8 MB disk space; a source installation
81requires 25 MB disk space.
82
83LIST OF FILES
84
85Executables and bytecode files:
86 bin/* Moscow ML top-level system and batch compiler
87 lib/* Bytecode files and standard libraries
88 tools/* Tools to infer unit inter-dependencies
89
90Documentation files:
91 install.txt Installation instructions for Linux
92 README This file
93 doc/manual.pdf User manual (PDF format)
94 doc/mosmlref.pdf A compact guide to Moscow ML syntax and primitives
95 doc/mosmllib.pdf Moscow ML library documentation with an index
96 doc/mosmllib/*.html Moscow ML library documentation in HTML format
97 copyrght/* Copyright notices (for Caml Light, SML/NJ, ...)
98
99AUTHOR AND CREDITS
100
101Moscow ML was written by
102 Sergei Romanenko (roman@keldysh.ru)
103 Keldysh Institute of Applied Mathematics, Russian Academy of Sciences
104 Miusskaya Pl. 4, 125047 Moscow, Russia
105and Claudio V. Russo at Edinburgh University, now at Microsoft Research UK,
106 Thanks to Don Sannella at LFCS, Division of Informatics,
107 University of Edinburgh for funding under EPSRC grant GR/K63795
108and Peter Sestoft (sestoft@itu.dk),
109 IT University of Copenhagen, Denmark.
110 Previously at Department of Mathematics and Physics, Royal Veterinary and
111 Agricultural University, Denmark.
112 Much of the work was done at the Technical University of
113 Denmark, and while visiting AT&T Bell Laboratories, New Jersey, USA.
114and Ken Friis Larsen (ken@friislarsen.net)
115 Department of Computer Science, University of Copenhagen,
116 Denmark.
117
118Moscow ML owes much to:
119 * the CAML Light implementation by Xavier Leroy and Damien Doligez
120 (INRIA, Rocquencourt, France); especially the Caml Light bytecode
121 generator and the runtime system;
122 * the ML Kit by Lars Birkedal, Nick Rothwell, Mads Tofte and David Turner
123 (Copenhagen University, Denmark, and Edinburgh University, Scotland);
124 * inspiration from the SML/NJ compiler developed at Princeton
125 University and AT&T Bell Laboratories, New Jersey, USA;
126 * the good work by Doug Currie, Flavors Technology, USA, on the
127 MacOS port and many improvements; and
128 * feedback, contributions, and useful suggestions, in particular
129 from Jonas Barklund, Mike Gordon, Michael Norrish, Konrad Slind,
130 Jakob Lichtenberg, Hans Molin, and numerous other people.
131
132COPYRIGHT NOTICE FOR MOSCOW ML
133
134 Moscow ML - a lightweight implementation of Standard ML.
135 Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000
136 Sergei Romanenko, Moscow, Russia and Peter Sestoft, Copenhagen, Denmark.
137
138 This program is free software; you can redistribute it and/or
139 modify it under the terms of the GNU General Public License
140 as published by the Free Software Foundation; either version 2
141 of the License, or (at your option) any later version.
142
143 This program is distributed in the hope that it will be useful,
144 but WITHOUT ANY WARRANTY; without even the implied warranty of
145 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
146 GNU General Public License in copyrght/gpl2 for more details.
147
148 You should have received a copy of the GNU General Public License
149 along with this program; if not, write to the Free Software
150 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
151
152Note that a number of source files are derived from the Caml Light
153distribution, copyright (C) 1993 INRIA, Rocquencourt, France. Thus
154charging money for redistributing Moscow ML may require prior
155permission from INRIA; see the INRIA copyright notice in file
156copyrght/copyrght.cl. The Caml Light system itself can be obtained
157from ftp.inria.fr:lang/caml-light.
158
159AVAILABILITY
160
161 * The Moscow ML home page is at
162 http://mosml.org
163 * Moscow ML library documentation
164 http://mosml.org/mosmllib/
165 * The source files can be downloaded from GitHub at
166 https://github.com/kfl/mosml/zipball/master
167
readme.w32
1File readme.w32 for Moscow ML 2.00 for Win95/98/NT/2000 (June 2000)
2
3
4EXTENT OF THE IMPLEMENTATION
5
6The current version 2.00 of Moscow ML
7
8 * implements the full Standard ML language, as revised 1997,
9 including Modules and some extensions
10 * yet is backwards compatible with versions prior to 2.00
11 * implements large parts of the new SML Basis Library
12 * implements separate compilation
13 * can produce compact stand-alone executables (a la Caml Light)
14 * supports quotations and antiquotations, useful for metaprogramming
15 * supports dynamic linking of external functions under Linux (x86
16 and Alpha), FreeBSD, NetBSD, Solaris, Digital Unix, HP-UX,
17 MacOS, and MS Windows'95/98/NT
18
19New in version 2.00 of Moscow ML
20
21 * The full SML Modules language (structures, signatures, and functors)
22 is now supported, thanks to Claudio Russo. Also, several extensions
23 to the SML Modules language are provided:
24 - higher-order functors: functors may be defined within structures
25 and functors
26 - first-class modules: structures and functors may be packed and
27 then handled as Core language values, which may then be unpacked
28 as structures or functors again
29 - recursive modules: signatures and structures may be recursively
30 defined
31 * Value polymorphism has become friendlier: non-generalizable free
32 type variables are left free, and become instantiated (once only)
33 when the bound variable is used
34 * Added facilities for creating and communicating with subprocesses
35 (structure Unix and Signal from SML Basis Library).
36 * Added facilities for efficient functional generation of HTML code
37 (structure Msp); also supports the writing of ML Server Page scripts.
38 * Added facilities setting and accessing `cookies' in CGI scripts
39 (structure Mosmlcookie), thanks to Hans Molin, Uppsala, Sweden.
40 * The Gdimage structure now produces PNG images (using Thomas
41 Boutell's gd library).
42
43SYSTEM REQUIREMENTS
44
45Compilation under Unix is best done using GNU make, gcc, and Perl. A
46binary installation requires 5 MB disk space; a source installation
47requires 25 MB disk space.
48
49LIST OF FILES
50
51Executables and bytecode files:
52 bin/* Moscow ML top-level system and batch compiler
53 lib/* Bytecode files and standard libraries
54 tools/* Tools to infer unit inter-dependencies
55
56Documentation files:
57 install.txt Installation instructions for Linux
58 README This file
59 doc/manual.pdf User manual (PDF format)
60 doc/mosmlref.pdf A compact guide to Moscow ML syntax and primitives
61 doc/mosmllib.pdf Moscow ML library documentation with an index
62 doc/mosmllib/*.html Moscow ML library documentation in HTML format
63 copyrght/* Copyright notices (for Caml Light, SML/NJ, ...)
64
65AUTHOR AND CREDITS
66
67Moscow ML was written by
68 Sergei Romanenko (roman@keldysh.ru)
69 Keldysh Institute of Applied Mathematics, Russian Academy of Sciences
70 Miusskaya Pl. 4, 125047 Moscow, Russia
71and Claudio V. Russo (Claudio.Russo@cl.cam.ac.uk), University of Cambridge.
72 Thanks to Don Sannella at LFCS, Division of Informatics,
73 University of Edinburgh for funding under EPSRC grant GR/K63795
74and Peter Sestoft (sestoft@dina.kvl.dk),
75 Department of Mathematics and Physics, Royal Veterinary and
76 Agricultural University, Thorvaldsensvej 40, DK-1871 Frederiksberg C,
77 Denmark. Much of the work was done at the Technical University of
78 Denmark, and while visiting AT&T Bell Laboratories, New Jersey, USA.
79
80Moscow ML owes much to:
81 * the CAML Light implementation by Xavier Leroy and Damien Doligez
82 (INRIA, Rocquencourt, France); especially the Caml Light bytecode
83 generator and the runtime system;
84 * the ML Kit by Lars Birkedal, Nick Rothwell, Mads Tofte and David Turner
85 (Copenhagen University, Denmark, and Edinburgh University, Scotland);
86 * inspiration from the SML/NJ compiler developed at Princeton
87 University and AT&T Bell Laboratories, New Jersey, USA;
88 * the good work by Doug Currie, Flavors Technology, USA, on the
89 MacOS port and many improvements; and
90 * feedback, contributions, and useful suggestions, in particular
91 from Ken Friis Larsen, but also from Jonas Barklund, Mike Gordon,
92 Michael Norrish, Konrad Slind, Jakob Lichtenberg, Hans Molin, and
93 numerous other people.
94
95COPYRIGHT NOTICE FOR MOSCOW ML
96
97 Moscow ML - a lightweight implementation of Standard ML.
98 Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000
99 Sergei Romanenko, Moscow, Russia and Peter Sestoft, Copenhagen, Denmark.
100
101 This program is free software; you can redistribute it and/or
102 modify it under the terms of the GNU General Public License
103 as published by the Free Software Foundation; either version 2
104 of the License, or (at your option) any later version.
105
106 This program is distributed in the hope that it will be useful,
107 but WITHOUT ANY WARRANTY; without even the implied warranty of
108 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
109 GNU General Public License in copyrght/gpl2 for more details.
110
111 You should have received a copy of the GNU General Public License
112 along with this program; if not, write to the Free Software
113 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
114
115Note that a number of source files are derived from the Caml Light
116distribution, copyright (C) 1993 INRIA, Rocquencourt, France. Thus
117charging money for redistributing Moscow ML may require prior
118permission from INRIA; see the INRIA copyright notice in file
119copyrght/copyrght.cl. The Caml Light system itself can be obtained
120from ftp.inria.fr:lang/caml-light.
121
122AVAILABILITY
123
124 * The Moscow ML home page is at
125 http://www.dina.kvl.dk/~sestoft/mosml.html
126 * Moscow ML library documentation
127 http://www.dina.kvl.dk/~sestoft/mosmllib/
128 * The Linux executables (and documentation) are in
129 ftp://ftp.dina.kvl.dk/pub/mosml/linux-mos20bin.tar.gz
130 * The MS Windows executables are in
131 ftp://ftp.dina.kvl.dk/pub/mosml/win32-mos20bin.zip
132 * The MS DOS executables (and documentation) are in
133 ftp://ftp.dina.kvl.dk/pub/mosml/mos20bin.zip
134 * The Macintosh/MacOS (68k and PPC) executables are in
135 ftp://ftp.dina.kvl.dk/pub/mosml/mac-mos20bin.sea.hqx
136 * The Unix source files (and documentation) are in
137 ftp://ftp.dina.kvl.dk/pub/mosml/mos20src.tar.gz
138 * The MacOS modified source files (relative to Unix) are in
139 ftp://ftp.dina.kvl.dk/pub/mosml/mac-mos20src.sea.hqx
140
141The files are mirrored at
142 ftp://ftp.csd.uu.se/pub/mirror/mosml
143