# Install ghc@9.12 with Homebrew, dnf, apk, chocolatey, apt, MacPorts, Nix, pacman, zypper

Glorious Glasgow Haskell Compilation System. Version 9.12.3 via Homebrew; verified 2026-06-25.

## Install

```sh
sudo av install brew:ghc@9.12
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install ghc@9.12
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install ghc
```

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

### Linux

- dnf (92%):

```sh
sudo dnf install ghc9.12
```

  Evidence: Fedora Rawhide package metadata: ghc9.12 from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- apk (92%):

```sh
sudo apk add ghc
```

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

- Debian apt (92%):

```sh
sudo apt install ghc
```

  Evidence: Debian stable package indexes: ghc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- Nix (92%):

```sh
nix profile install nixpkgs#ghc
```

  Evidence: nixpkgs package indexes: ghc from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

- pacman (92%):

```sh
sudo pacman -S ghc
```

  Evidence: Arch Linux sync databases: ghc from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install ghc
```

  Evidence: openSUSE Tumbleweed package metadata: ghc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Chocolatey (92%):

```sh
choco install ghc
```

  Evidence: Chocolatey community package catalog: ghc from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','gawk'

## Package facts

- **Package key:** brew:ghc@9.12
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/ghc@9.12>
- **Version:** 9.12.3
- **Source summary:** Glorious Glasgow Haskell Compilation System
- **Homepage:** <https://haskell.org/ghc/>
- **Repository:** <https://gitlab.haskell.org/ghc/ghc>
- **Upstream docs:** <https://downloads.haskell.org/ghc/9.12.3/docs/users_guide>
- **License:** BSD-3-Clause
- **Source archive:** <https://downloads.haskell.org/~ghc/9.12.3/ghc-9.12.3-src.tar.xz>
- **Last updated:** 2026-06-25T13:37:42+02:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- ghc-9.12.3 (cli)
- ghc-pkg-9.12.3 (cli)
- ghci-9.12.3 (cli)
- haddock-ghc-9.12.3 (cli)
- hp2ps-ghc-9.12.3 (cli)
- hpc-ghc-9.12.3 (cli)
- hsc2hs-ghc-9.12.3 (cli)
- runghc-9.12.3 (cli)
- runhaskell-9.12.3 (cli)
- ghc-9.12.3 (alias)
- ghc-pkg-9.12.3 (alias)
- ghci-9.12.3 (alias)
- haddock-ghc-9.12.3 (alias)
- hp2ps-ghc-9.12.3 (alias)
- hpc-ghc-9.12.3 (alias)
- hsc2hs-ghc-9.12.3 (alias)
- runghc-9.12.3 (alias)
- runhaskell-9.12.3 (alias)

## Dependencies

- gmp

## Build dependencies

- autoconf
- automake
- python@3.14
- sphinx-doc
- xz

## Uses from macOS

- libffi
- ncurses

## Install behavior

- Post-install hook: defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 9.12.3
- Package-manager updated: 2026-06-25
- Local data: ok
- Upstream repository: https://haskell.org/ghc/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

The Homebrew `ghc@9.12` formula packages the GHC 9.12 branch of the Glasgow Haskell Compiler. It gives users a branch-specific compiler and interpreter set while preserving the same project lineage as the broader GHC package.

### Project history

GHC began at the University of Glasgow near the beginning of the 1990s as an academic research project funded by the UK government. The project grew from a research compiler into a maintained open-source compiler, interactive environment, library set, and runtime system for Haskell.

The GHC 9.12 branch follows GHC's stable-release convention, where even-numbered minor branches receive patchlevel releases. The user guide warns that even patchlevel upgrades can require recompiling code built against earlier libraries, which is one reason branch-specific packaging is useful.

### Adoption history

GHC's adoption is tied to its role as the main compiler used by Haskell projects, package repositories, editor tooling, and build systems. The official site names Hackage libraries, Haskell Language Server, Cabal, Stack, and GHCup as part of the surrounding toolchain.

Homebrew exposes `ghc@9.12` as a separate formula with 9.12-suffixed executables. That formula role is especially useful for build matrices and projects that test a package against a newer stable branch without forcing the unversioned `ghc` formula path.

### How it is used

A practitioner installs `ghc@9.12` when a project, package bound, or CI job targets GHC 9.12. The package supplies compiler, REPL, package-database, script runner, profiling, and Haddock commands with versioned executable names available for precise invocation.

The underlying GHC workflow is unchanged: use `ghc` for batch compilation, `ghci` for interactive exploration, and build tools such as Cabal or Stack to coordinate flags, dependencies, and package databases.

### Why package nerds care

The formula is packaging glue around a compiler branch whose boot libraries and ABI shape downstream package compatibility. Package maintainers care because supporting a GHC branch often means testing bounds, generated docs, warnings, and extension behavior across that branch.

### Timeline

- Early 1990s: GHC began as a Glasgow research project.
- 2007: The user guide documented GHC's even-numbered stable-branch versioning policy starting with GHC 6.8.
- 2024: GHC 9.12.1 was released as the first listed 9.12 release on the GHC download page.
- 2026 batch input: The Homebrew package record listed 9.12.3-suffixed executables.

### Related projects

- Cabal and Stack commonly select and invoke GHC for project builds.
- Hackage package metadata and compiler bounds make versioned GHC installations valuable.
- GHCup is the official Haskell installer for choosing GHC and related tools.

### Sources

- <https://downloads.haskell.org/ghc/9.12.3/docs/users_guide/intro.html>
- <https://formulae.brew.sh/formula/ghc@9.12>
- <https://gitlab.haskell.org/ghc/ghc>
- <https://www.aosabook.org/en/v2/ghc.html>
- <https://www.haskell.org/ghc/>
- <https://www.haskell.org/ghc/download_ghc_9_12_1.html>


## Security Notes

No matching local secret-handling manifest was found for ghc@9.12. Nucleus package metadata is still published here so future coverage has a stable package URL.


## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** ghc@9.12
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** yes
- **URL Keys:** stable

## Other Package-Manager Records

- dnf - ghc9.12 - 9.12.4-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12 from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Glasgow Haskell Compiler | https://haskell.org/ghc/
- dnf - ghc9.12-Cabal - 3.14.2.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-Cabal from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell Cabal library | https://hackage.haskell.org/package/Cabal
- dnf - ghc9.12-Cabal-devel - 3.14.2.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-Cabal-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell Cabal library development files | https://haskell.org/ghc/
- dnf - ghc9.12-Cabal-doc - 3.14.2.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-Cabal-doc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell Cabal library documentation | https://haskell.org/ghc/
- dnf - ghc9.12-Cabal-prof - 3.14.2.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-Cabal-prof from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell Cabal profiling library | https://haskell.org/ghc/
- dnf - ghc9.12-Cabal-syntax - 3.14.2.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-Cabal-syntax from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell Cabal-syntax library | https://hackage.haskell.org/package/Cabal-syntax
- dnf - ghc9.12-Cabal-syntax-devel - 3.14.2.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-Cabal-syntax-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell Cabal-syntax library development files | https://haskell.org/ghc/
- dnf - ghc9.12-Cabal-syntax-doc - 3.14.2.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-Cabal-syntax-doc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell Cabal-syntax library documentation | https://haskell.org/ghc/
- dnf - ghc9.12-Cabal-syntax-prof - 3.14.2.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-Cabal-syntax-prof from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell Cabal-syntax profiling library | https://haskell.org/ghc/
- dnf - ghc9.12-array - 0.5.8.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-array from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell array library | https://hackage.haskell.org/package/array
- dnf - ghc9.12-array-devel - 0.5.8.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-array-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell array library development files | https://haskell.org/ghc/
- dnf - ghc9.12-array-doc - 0.5.8.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-array-doc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell array library documentation | https://haskell.org/ghc/
- dnf - ghc9.12-array-prof - 0.5.8.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-array-prof from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell array profiling library | https://haskell.org/ghc/
- dnf - ghc9.12-base - 4.21.2.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-base from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell base library | https://hackage.haskell.org/package/base
- dnf - ghc9.12-base-devel - 4.21.2.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-base-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell base library development files | https://haskell.org/ghc/
- dnf - ghc9.12-base-doc - 4.21.2.0-17.fc45: package manager index match | Fedora Rawhide package metadata: ghc9.12-base-doc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell base library documentation | https://haskell.org/ghc/


## Related links

- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched curated package taxonomy and local package facts.
- [autoconf](https://www.automicvault.com/pkg/brew/autoconf/) - Build dependency declared by Homebrew.
- [automake](https://www.automicvault.com/pkg/brew/automake/) - Build dependency declared by Homebrew.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Build dependency declared by Homebrew.
- [sphinx-doc](https://www.automicvault.com/pkg/brew/sphinx-doc/) - Build dependency declared by Homebrew.
- [agda](https://www.automicvault.com/pkg/brew/agda/) - Popular package that depends on this formula.
- [ghc](https://www.automicvault.com/pkg/brew/ghc/) - Package name indicates the same formula family.
- [ghc@9.10](https://www.automicvault.com/pkg/brew/ghc-9-10/) - Package name indicates the same formula family.
- [ghc@9.6](https://www.automicvault.com/pkg/brew/ghc-9-6/) - Package name indicates the same formula family.
- [ghc@9.8](https://www.automicvault.com/pkg/brew/ghc-9-8/) - Package name indicates the same formula family.

## Combined YAML source

View the package source record on GitHub. [combined/ghc@9.12.yml](https://github.com/automic-vault/db/blob/main/combined/ghc@9.12.yml)


## Sources

- Nucleus package database
- package-page enrichment
- curated package history
- package version freshness
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
