# commercialhaskell/stack

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/commercialhaskell-stack).**

4,047 stars · 849 forks · Haskell · other

## Links

- GitHub: https://github.com/commercialhaskell/stack
- Homepage: http://haskellstack.org
- awesome-repositories: https://awesome-repositories.com/repository/commercialhaskell-stack.md

## Description

Stack is a build tool, package manager, and project bootstrapper for the Haskell language. It provides a consistent environment for compiling source code, managing project binaries, and executing programs.

The system ensures reproducible builds through snapshot-based dependency resolution and manages the installation of specific compiler binaries to match project requirements. It utilizes content-addressable package storage and local-path caching to maintain the integrity of source code and avoid redundant downloads across different projects.

The toolset covers the full development lifecycle, including project initialization via standardized templates, the compilation of applications and libraries, and the installation of executable packages. It also provides an interactive read-eval-print loop for real-time code testing and state exploration.

## Tags

### Programming Languages & Runtimes

- [Haskell Build Tools](https://awesome-repositories.com/f/programming-languages-runtimes/haskell-build-tools.md) — Provides a comprehensive build system for compiling Haskell source code, managing binaries, and executing programs.
- [Compiler Version Managers](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-version-managers.md) — Automatically manages and installs specific GHC compiler binaries to ensure the correct language version is used for a project.
- [Haskell Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/haskell-compilation.md) — Converts Haskell source code into runnable binaries and libraries for deployment or local testing.
- [Haskell Dependency Management](https://awesome-repositories.com/f/programming-languages-runtimes/haskell-dependency-management.md) — Handles the installation of Haskell packages and executable binaries to ensure a consistent build environment.
- [Haskell Project Management](https://awesome-repositories.com/f/programming-languages-runtimes/haskell-project-management.md) — Creates and structures Haskell projects with consistent configuration files and directory layouts.
- [Source Code Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers.md) — Converts Haskell source code into executable programs or libraries to prepare projects for deployment. ([source](https://docs.haskellstack.org/))

### Part of an Awesome List

- [Package and Dependency Management](https://awesome-repositories.com/f/awesome-lists/devtools/package-and-dependency-management.md) — Manages the installation of executable packages and dependencies to ensure reproducible builds in Haskell.
- [Development Tools](https://awesome-repositories.com/f/awesome-lists/devtools/development-tools.md) — Cross-platform build tool with dependency and environment management.

### Software Engineering & Architecture

- [Snapshot-Based Resolution](https://awesome-repositories.com/f/software-engineering-architecture/dependency-resolution/snapshot-based-resolution.md) — Ensures reproducible builds across different machines and time using precise frozen lists of package versions.

### Development Tools & Productivity

- [Interactive REPLs](https://awesome-repositories.com/f/development-tools-productivity/interactive-repls.md) — Provides a read-eval-print loop for testing code snippets and interacting with application state in real time. ([source](https://docs.haskellstack.org/))
- [Package Installers](https://awesome-repositories.com/f/development-tools-productivity/package-installers.md) — Downloads and installs executable binaries from specified Haskell packages to the local system. ([source](https://docs.haskellstack.org/))
- [Project Bootstrappers](https://awesome-repositories.com/f/development-tools-productivity/project-bootstrappers.md) — Initializes new Haskell development environments by generating necessary project structures and configuration files.
- [Project Bootstrapping Templates](https://awesome-repositories.com/f/development-tools-productivity/project-bootstrapping-templates.md) — Generates standardized directory structures and metadata files based on declarative project templates.
- [Read-Eval-Print Loops](https://awesome-repositories.com/f/development-tools-productivity/read-eval-print-loops.md) — Enables interactive development in Haskell using a read-eval-print loop for real-time code testing.

### DevOps & Infrastructure

- [Build Execution](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/build-infrastructure/build-execution.md) — Provides utilities for running compiled binaries within the project environment to verify application behavior. ([source](http://haskellstack.org/))
