• Stars
    star
    336
  • Rank 125,564 (Top 3 %)
  • Language Standard ML
  • Created over 15 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Moscow ML is a light-weight implementation of Standard ML (SML), a strict functional language widely used in teaching and research.
This is file README for Moscow ML 2.10.1 for Linux/Unix (August 2014)

EXTENT OF THE IMPLEMENTATION

The current version 2.10.1 of Moscow ML

    * implements the full Standard ML language, as revised 1997, 
      including Modules and some extensions
    * yet is backwards compatible with versions prior to 2.00
    * implements large parts of the new SML Basis Library
    * implements separate compilation 
    * can produce compact stand-alone executables (a la Caml Light)
    * supports quotations and antiquotations, useful for metaprogramming
    * supports dynamic linking of external functions under Linux (x86
      and Alpha), FreeBSD, NetBSD, Solaris, Digital Unix, HP-UX,
      MacOS, and MS Windows'95/98/NT/XP/Vista and possibly also 7 and 8. 

New in version 2.10.1 of Moscow ML

  * ML Server Pages added to examples
  * Build system cleaned up a bit

New in version 2.10 of Moscow ML

  * Support for dynamic linking and callback from C also under MacOS X
  * There may now be 2 G globals (string literals etc) instead of 64 K
  * Bugs fixed:
    * The HTML files generated for mosmllib now have valid URLs
    * Substring.app more efficient
    * Recursive structure compilation (elabRecSigExp) fixed
    * Several errors in Mosmlcookie
    * Misplaced double quote in Msp.ahrefa 
    * Exception Option wasn't available at top-level
    * Linker did not check stamps of linked-in units
    * Hash function now much faster on very long strings
    * Double alignment constraints now correct with gcc-3.2 and Solaris
    * Bug in Polyhash.filter
    * Socket library returned only first 16 bytes of UDP datagram
  * SML Basis Library changes:
    * String and Substring: added concatWith, isSuffix, isSubstring, full
    * ListPair: added zipEq, appEq, mapEq, foldlEq, foldrEq, allEq
    * Added ArraySlice and VectorSlice structures, also for Char and Word8
    * Added find, findi, all, exists, collate to vector, array and 
      slice structures
    * Added collate to List
    * Added update to vector structures
    * Path.{mkRelative,mkAbsolute} now take record arguments
    * Negative Time.time values allowed
    * OS.Process: new functions sleep and isSuccess; status not eqtype
    * Listsort: 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)
  * Added modules to mosmllib:
    * Buffer: mutable string buffers for fast and efficient
      concatenation of strings
    * Hashset: sets implemented by hash-tables
    * Rbset: ordered sets implemented by red-black trees
    * Redblackmap: maps implemented by red-black trees
  * Moscow ML is now developed in the open at github.


SYSTEM REQUIREMENTS

Compilation under Unix is best done using GNU make, gcc, and Perl.  A
binary installation requires 8 MB disk space; a source installation
requires 25 MB disk space.

LIST OF FILES

Executables and bytecode files:
    bin/*               Moscow ML top-level system and batch compiler
    lib/*               Bytecode files and standard libraries
    tools/*             Tools to infer unit inter-dependencies

Documentation files:
    install.txt         Installation instructions for Linux
    README              This file
    doc/manual.pdf      User manual (PDF format)
    doc/mosmlref.pdf    A compact guide to Moscow ML syntax and primitives
    doc/mosmllib.pdf    Moscow ML library documentation with an index
    doc/mosmllib/*.html Moscow ML library documentation in HTML format
    copyrght/*          Copyright notices (for Caml Light, SML/NJ, ...)

AUTHOR AND CREDITS

Moscow ML was written by
    Sergei Romanenko ([email protected])
    Keldysh Institute of Applied Mathematics, Russian Academy of Sciences
    Miusskaya Pl. 4, 125047 Moscow, Russia
and Claudio V. Russo at Edinburgh University, now at Microsoft Research UK,
    Thanks to Don Sannella at LFCS, Division of Informatics,
    University of Edinburgh for funding under EPSRC grant GR/K63795
and Peter Sestoft ([email protected]),
    IT University of Copenhagen, Denmark.
    Previously at Department of Mathematics and Physics, Royal Veterinary and
    Agricultural University, Denmark.
    Much of the work was done at the Technical University of
    Denmark, and while visiting AT&T Bell Laboratories, New Jersey, USA.
and Ken Friis Larsen ([email protected])
    Department of Computer Science, University of Copenhagen,
    Denmark.

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 Jonas Barklund, Mike Gordon, Michael Norrish, Konrad Slind,
      Jakob Lichtenberg, Hans Molin, and numerous other people.

COPYRIGHT NOTICE FOR MOSCOW ML

    Moscow ML - a lightweight implementation of Standard ML.
    Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000
    Sergei Romanenko, Moscow, Russia and Peter Sestoft, Copenhagen, Denmark.

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License in copyrght/gpl2 for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Note that a number of source files are derived from the Caml Light
distribution, copyright (C) 1993 INRIA, Rocquencourt, France.  Thus
charging money for redistributing Moscow ML may require prior
permission from INRIA; see the INRIA copyright notice in file
copyrght/copyrght.cl.  The Caml Light system itself can be obtained
from ftp.inria.fr:lang/caml-light.

AVAILABILITY

  * The Moscow ML home page is at  
      http://mosml.org
  * Moscow ML library documentation
      http://mosml.org/mosmllib/
  * The source files can be downloaded from GitHub at
      https://github.com/kfl/mosml/zipball/master

More Repositories

1

wpp

A Pretty Printer, based on Philip Wadler's "A prettier printer". But heavily modified to be efficient in a strict language.
Standard ML
19
star
2

webserver-functor

Example code demonstrating how SML modules, in particular functors, can be used for structuring a web framework.
Standard ML
12
star
3

adventofcode_2021

Advent of Code, 2021
Haskell
9
star
4

adventofcode_2022

Advent of Code 2022
Haskell
8
star
5

staffeli_nt

Staffeli NT Technology
Python
8
star
6

mosml-js

Javascript backend for Moscow ML
Standard ML
7
star
7

american-options

Emperiments with algorithms for pricing American Options
Standard ML
6
star
8

only_funs

F#
5
star
9

trymosml

JavaScript
4
star
10

verified-monkey-island

Standard ML
4
star
11

quickcheck-c-interface

Example code demonstrating how to use QuickCheck for Erlang to test C code
C
3
star
12

ebpf-tools

Experiments with eBPF bytecode
Haskell
3
star
13

muddy

MuDDy is a ML interface to the Binary Decision Diagrams package BuDDy
OCaml
3
star
14

smlsqlite

smlsqlite is a binding of SQLite for Moscow ML and MLton
C
3
star
15

pure-prolog

Simple pure prolog interpreter
Haskell
2
star
16

quickcheck-erlang

Example code demonstrating how to use QuickCheck for Erlang
Erlang
2
star
17

fsc-wrap

Get fsc as a commandline program
F#
2
star
18

bigish

Example code working with bigish data in the browser. Using crossfilter and other libraries.
JavaScript
2
star
19

Datalog-experiments

Experimental datalog/prolog implementation
Haskell
2
star
20

simpleparse

Simple to understand parser combinator library
Haskell
2
star
21

prog-contest-diku

Scratchpad for people interested in programming contests at DIKU
2
star
22

mini-benchmark-game

Rust
1
star
23

adventofcode_2023

Advent of Code 2023
1
star
24

miniprolog

Minimal (Pure) Prolog implementation
Haskell
1
star
25

gpsblyant

Python
1
star
26

readbits

Example of how to read binary data with Haskell
Haskell
1
star
27

mmage

Simple image library with functional interface for Moscow ML. Based on SDL2.
Standard ML
1
star
28

cloudhaskell-experiments

Haskell
1
star