# Install (/docs/install)

marmot is built from source for now. There are no release binaries yet.

## Requirements [#requirements]

| Tool | Version |
| --- | --- |
| Go | 1.27 |
| LLVM and MLIR | 22 (clang, lld and the MLIR libraries) |
| CMake and Ninja | recent |

marmot runs on macOS on Apple Silicon and on Linux on x86-64. Linux on arm64 builds but is not
yet tested; Windows is not supported. See [Support](/docs/support).

## Build and install [#build-and-install]

```sh
git clone https://github.com/Gaurav-Gosain/marmot
cd marmot
make            # the front end, the backend and the runtime
make test       # optional: the test suites
make install    # copies the compiler to ~/.marmot and links ~/.local/bin/marmot
```

`make install` copies the build, so rebuilding the source tree later does not change the
installed compiler. `PREFIX` and `BINDIR` choose other places:

```sh
make install PREFIX=/opt/marmot BINDIR=/usr/local/bin
```

## Check the installation [#check-the-installation]

```sh
marmot doctor
```

`marmot doctor` checks the code generator and runtime, the `go` command, LLVM, the system
linker, the build cache and free disk, and says how output is chosen in this terminal. Every
failed check comes with what to do about it.

## Shell completion [#shell-completion]

```sh
marmot completion zsh  > "${fpath[1]}/_marmot"
marmot completion bash > /etc/bash_completion.d/marmot
marmot completion fish > ~/.config/fish/completions/marmot.fish
```