# Install mercury with Homebrew, apk, MacPorts, Nix, winget, zypper

Logic/functional programming language. Version 22.01.8 via Homebrew; verified 2026-07-23. Also installable with nix: nix profile install nixpkgs#mercury.

## Install

```sh
sudo av install brew:mercury
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install mercury
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install mercury
```

  Evidence: MacPorts ports tree: lang/mercury/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add mercury
```

  Evidence: Alpine Linux edge package indexes: mercury from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Nix (92%):

```sh
nix profile install nixpkgs#mercury
```

  Evidence: nixpkgs package indexes: pkgs/by-name/me/mercury/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- zypper (92%):

```sh
sudo zypper install lua-lmod
```

  Evidence: openSUSE Tumbleweed package metadata: lua-lmod from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

### Windows

- winget (92%):

```sh
winget install --id Alex313031.Mercury -e
```

  Evidence: Windows Package Manager source index: Alex313031.Mercury from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:mercury
- **Package manager:** Homebrew
- **Version:** 22.01.8
- **Source summary:** Logic/functional programming language
- **Homepage:** <https://mercurylang.org/>
- **Last updated:** 2026-07-23T16:36:10Z
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- c2init (alias)
- canonical_grade (alias)
- info_to_mdb (alias)
- mcov (alias)
- mdb (alias)
- mdemangle (alias)
- mdice (alias)
- mdprof (alias)
- mdprof_cgi (alias)
- mdprof_create_feedback (alias)
- mdprof_dump (alias)
- mdprof_report_feedback (alias)
- mdprof_test (alias)
- mercury (alias)
- mercury_compile (alias)
- mercury_config (alias)
- mercury_profile (alias)
- mercury_update_interface (alias)
- mfiltercc (alias)
- mfilterjavac (alias)
- mgnuc (alias)
- mkfifo_using_mknod (alias)
- mkinit (alias)
- ml (alias)
- mmake (alias)
- mmc (alias)
- mprof (alias)
- mprof_merge_runs (alias)
- mslice (alias)
- mtags (alias)
- mtc (alias)
- mtc_diff (alias)
- mtc_union (alias)
- prepare_install_dir (alias)
- vpath_find (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 22.01.8
## Project history and usage

Mercury is a pure logic programming language that grew out of the University of Melbourne logic-programming research community. The Mercury project describes the language as Prolog-like in syntax but different in semantics because of its purity and its static type, mode, determinism, and module systems. Early papers by Zoltan Somogyi, Fergus Henderson, and Thomas Conway documented the implementation in 1994 and presented Mercury as an efficient purely declarative logic language in 1995.

### Project history

The compiler became a substantial part of the project identity: it is written in Mercury, was bootstrapped from Prolog systems, and compiles Mercury code through C as a portable assembler while using GNU C extensions when available for better code generation. The user guide exposes a full development toolchain around `mmc`, `mmake`, debugging, profiling, generated interface files, and multiple target-language grades.

### How it is used

In package-manager terms, the Homebrew package is a language runtime and compiler suite rather than a small single-command utility. It installs the compiler, build tools, debugger, profiler, and support commands used to compile and inspect Mercury programs. Its niche is close to Prolog and functional-language systems: users pick it when they want logic programming with stronger compile-time guarantees, determinism checking, and efficient native-code-oriented compilation.

### Sources

- <https://formulae.brew.sh/formula/mercury>
- <https://mercurylang.org/about.html>
- <https://mercurylang.org/documentation/papers.html>
- <https://mercurylang.org/information/doc-latest/mercury_user_guide/index.html>


## Security Notes

generalized runtime or code generation signal.

- **Geiger risk:** yellow / medium
- generalized runtime or code generation signal

## Other Package-Manager Records

- Nix - mercury: normalized package name match | nixpkgs package indexes: pkgs/by-name/me/mercury/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - mercury - 22.01.8-r1: normalized package name match | Alpine Linux edge package indexes: mercury from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Compiler for the Mercury language | https://www.mercurylang.org
- apk - mercury-doc - 22.01.8-r1: normalized package name match | Alpine Linux edge package indexes: mercury-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Compiler for the Mercury language (documentation) | https://www.mercurylang.org
- apk - mercury-libs - 22.01.8-r1: normalized package name match | Alpine Linux edge package indexes: mercury-libs from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Mercury shared library (libraries) | https://www.mercurylang.org
- MacPorts - mercury: normalized package name match | MacPorts ports tree: lang/mercury/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- winget - Alex313031.Mercury: normalized package name match | Windows Package Manager source index: Alex313031.Mercury from https://cdn.winget.microsoft.com/cache/source.msix
- MacPorts - ml: installed executable or alias match | MacPorts ports tree: math/ml/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- zypper - lua-lmod - 8.7.55-4.5: installed executable or alias match | openSUSE Tumbleweed package metadata: lua-lmod from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Lua-based Environment Modules used in HPC | https://github.com/TACC/Lmod


## Combined YAML source

View the package source record on GitHub. [combined/mercury.yml](https://github.com/mxcl/pkgdb/blob/main/combined/mercury.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
