Repository navigation
Moscow ML 2.10.5
This release includes builds for multiple platforms and architectures:
Platform Support
- Linux (x86_64): Full support with rlwrap integration
- macOS (x86_64): Intel-based Macs with rlwrap integration
- macOS (arm64): Apple Silicon (M1/M2/M3) with rlwrap integration
- Windows (x86_64): Native Windows build
Features
- Standard ML (SML'97) implementation
- Bytecode compiler and runtime
- Separate compilation support
- Dynamic linking (on supported platforms)
- Interactive REPL with rlwrap support for command history and line editing
- Full Standard ML Basis Library
Installation
Windows
Download and run the installer: mosml-setup-windows-x86_64.exe
The installer will:
- Install Moscow ML to
C:\Program Files\mosml(or custom location) - Add Moscow ML to your system PATH
- Create Start Menu shortcuts
- Optionally create desktop shortcuts
Alternatively, extract the portable ZIP archive: mosml-windows-x86_64.zip
Linux / macOS
# Extract the archive
tar -xzf mosml-<platform>-<arch>.tar.gz
# Copy to system (requires root)
sudo cp -r usr/local/* /usr/local/
# Or install to custom location
tar -xzf mosml-<platform>-<arch>.tar.gz -C $HOME/.local --strip-components=2
export PATH="$HOME/.local/bin:$PATH"
Docker Support
You can run Moscow ML directly using Docker, avoiding local installation entirely. A pre-built image is available on the GitHub Container Registry.
Pull the image:
docker pull ghcr.io/francesco146/mosml:2.10.5
Run the interactive REPL:
docker run -it ghcr.io/francesco146/mosml:2.10.5
Execute a local script:
To compile or run a local .sml file (e.g., script.sml in your current directory), mount your folder as a volume:
docker run -it -v "$PWD":/app -w /app ghcr.io/francesco146/mosml:2.10.5 mosml script.sml
rlwrap Integration
The mosml interactive REPL now automatically uses rlwrap when available, providing:
- Command history (saved to $XDG_DATA_HOME/mosml/history or $HOME/.local/share/mosml/history, if XDG_DATA_HOME is not set)
- Line editing with arrow keys
- Tab completion support
To disable rlwrap, set the DISABLE_RLWRAP=1 environment variable before running mosml.
Documentation
See the project repository for full documentation.