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 tool used for building 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. |
dependency | A Haskell package other than a project package and on which a project package depends (directly or indirectly), located locally or elsewhere. |
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 | Extra dependencies (one version of each) that add to, or shadow, those specified in a snapshot. |
FreeBSD | A Unix-like operating system. |
GCC | The GNU Compiler Collection or its executable gcc . |
GHC | The Glasgow Haskell Compiler. |
GHC boot package | A package that comes with GHC, is included in GHC's global package database, and is not included in a Stackage snapshot. See the output of command stack exec -- ghc-pkg list --global . |
GHC wired-in package | A GHC boot package that cannot be shaddowed with different versions of the same package. Also referred to as 'magic'. |
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. |
Markdown | A plain text formatting syntax or software used to convert files in that format to HTML. |
MSYS2 | The MSYS2 software distribution and building platform for Windows. |
Nix | A purely functional package manager, available for Linux and macOS. |
package | A Haskell package is an organised collection of Haskell code and related files. It is described by a Cabal file or a package.yaml file, which is itself part of the package. |
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. |
project | A Stack project is a local directory that contains a project-level configuration file (stack.yaml , by default). A project may relate to more than one project package. |
project package | A Haskell package that is part of a project and located locally. Distinct from a dependency located locally. |
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 (one version of each), 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, or if Stack is configured to use the XDG Base Directory Specification, Stack also stores important files outside of the Stack root. |
Stack work directory | A directory within a local project or package directory in which Stack stores files created during the build process. Named .stack-work , by default. |
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. |
XDG Base Directory Specification | A specification of directories relative to which files should be located. |
YAML | A human-friendly data serialization language. |