Glossary¶
The following terms are used in Stack's documentation.
| Term | Meaning |
|---|---|
| Cabal | The Haskell Common Architecture for Building Applications and Libraries, provided by the Cabal package. Also referred to as Cabal (the library) to distinguish it from Cabal (the tool). |
| Cabal file | A file containing a package description used by Cabal, named <package_name>.cabal. |
| Cabal (the tool) | The Haskell build tool provided by the cabal-install package. |
| CI | Continuous integration. |
| CMake | A system for managing build processes. |
config.yaml |
A global and non-project-specific configuration file used by Stack. |
| Docker | A platform for developing, shipping, and running applications. It can package and run an application in a loosely isolated environment called a container. |
| Emacs | GNU Emacs, an extensible, customisable text editor. |
| extra-deps | Packages in addition to those in a snapshot, named after a key used in stack.yaml files. |
| FreeBSD | A Unix-like operating system. |
| GCC | The GNU Compiler Collection or its executable gcc. |
| GHC | The Glasgow Haskell Compiler. |
| GHCi | GHC's interactive environment. |
| GHCJS | A Haskell to JavaScript compiler. |
| GHCup | An installer for Haskell. |
| Git | A distributed version control system. |
| GPG | The GNU Privacy Guard or GnuPG, software that allows you to encrypt or sign your data and communications. |
| Hackage | The Haskell Package Repository. |
| Haddock | The document generation tool for Haskell libraries. |
| 'Haskell' extension | The 'Haskell' extension for VS Code. |
| HLS | Haskell Language Server, an implementation of the Language Server Protocol for Haskell. |
| Homebrew | A package manager for macOS or Linux, or its executable brew. |
| Hoogle | A Haskell API search engine. |
| Hpack | A format for Haskell packages or the executable hpack that produces a Cabal file from package.yaml. |
| Linux | A family of operating systems based on the Linux kernel. |
| macOS | The primary operating system for Apple's Mac computers. Previously known as Mac OS X or OS X. |
| Make | A build automation tool. |
| MSYS2 | The MSYS2 software distribution and building platform for Windows. |
| Nix | A purely functional package manager, available for Linux and macOS. |
package.yaml |
A file that describes a package in the Hpack format. |
| Pantry | A library for content-addressable Haskell package management, provided by the pantry package. A dependency of Stack. |
| PATH | The PATH environment variable, specifying a list of directories searched for executable files. |
| PVP | The Haskell Package Versioning Policy, which tells developers of libraries how to set their version numbers. |
| REPL | An interactive (run-eval-print loop) programming environment. |
| resolver | A synonym for snapshot. |
Setup.hs |
A project-specific file used by Cabal to perform setup tasks. |
| snapshot | A snapshot defines a GHC version, a set of packages, and build flags or other settings. |
| Stack | The Haskell Tool Stack project or its executable stack. |
stack.yaml |
A project-level configuration file used by Stack, which may also contain non-project-specific options. |
| Stackage | A distribution of compatible Haskell packages. |
| Stack root | A directory in which Stack stores important files. See stack path --stack-root. On Windows, Stack also stores important files outside of the Stack root. |
| Unix-like operating systems | Linux, FreeBSD and macOS. |
| VS Code | Visual Studio Code, a source code editor. |
| Windows | A group of operating systems developed by Microsoft. |
| WSL | Windows Subsystem for Linux. Provides a Linux environment on Windows. |
| YAML | A human-friendly data serialization language. |