Moscow ML is a light-weight implementation of Standard ML (SML), a strict functional language used in teaching and research
The current version 2.10.1 of Moscow ML
Substring.app
more efficientMosmlcookie
Msp.ahrefa
Option
wasn’t available at top-levelPolyhash.filter
Socket
library returned only first 16 bytes of UDP datagramString
and Substring
: added concatWith
, isSuffix
, isSubstring
, full
ListPair
: added zipEq
, appEq
, mapEq
, foldlEq
, foldrEq
, allEq
ArraySlice
and VectorSlice
structures, also for Char
and Word8
find
, findi
, all
, exists
, collate
to vector, array and
slice structurescollate
to List
update
to vector structuresPath.{mkRelative,mkAbsolute}
now take record argumentsTime.time
values allowedOS.Process
: new functions sleep
and isSuccess
; status
not eqtypeListsort
: added eqclasses
, merge
, mergeUniq
Path
: added functions isRoot
, fromUnixPath
, toUnixPath
, and
exception InvalidArc
(bug report by Henning Niss)TextIO
: inputLine
now have type instream -> string option
Array
: added type abbreviation vector
(bug report by Andrzej
Wasowski)FileSys
: type access
renamed to access_mode
(bug report by
Henning Niss)Byte
: unpackString{,Vec}
now uses vector slices (bug report by
Henning Niss)Unix
: added functions fromStatus
, textInstreamOf
, binInstreamOf
,
textOutstreamOf
, binOutstreamOf
, exit
, and added phantom types
to proc
(bug report by Henning Niss)Timer
: added function checkCPUTimes
Word
and Word8
: added functions toLarge
, toLargeX
, and fromLarge
(bug report by Martin Elsman)General
: added exception Span
and made the type of the function
before
less general (bug report by Henning Niss)Buffer
: mutable string buffers for fast and efficient
concatenation of stringsHashset
: sets implemented by hash-tablesRbset
: ordered sets implemented by red-black treesRedblackmap
: maps implemented by red-black treesCompilation under Unix is best done using GNU make, gcc, and Perl. A binary installation requires 5 MB disk space; a source installation requires 25 MB disk space.
Go to the the releases page at GitHub and grab the latest release, and build Moscow ML from source.
Or your can use one of the binary distributions:
/usr/local
.For version 2.10.
Moscow ML was created by Sergei Romanenko at the Keldysh Institute of Applied Mathematics, Russian Academy of Sciences, Moscow, Claudio Russo (then at Edinburgh University, now at Microsoft Research, Cambridge UK), Niels Kokholm at the IT University of Copenhagen (Moscow ML for .Net), Ken Friis Larsen at Department of Computer Science, University of Copenhagen, Denmark, and Peter Sestoft at the IT University of Copenhagen formerly at the Royal Veterinary and Agricultural University, Copenhagen, Denmark.
Moscow ML uses the entire runtime system and many other ideas from the Caml Light implementation created by Xavier Leroy and Damien Doligez.
Doug Currie created the MacOS port and considerably improved the bytecode interpreter.