Topics (advanced)¶
This part of the guide provides pages dedicated to specific topics.
- Stack root
-
The Stack root is a directory where Stack stores important information
- Stack work directories
-
Stack work directories are directories within a local project or package directory in which Stack stores files created during the build process.
- Snapshot location
-
How to specify the location of snapshots.
- Package location
-
How to specify the location of packages.
- Snapshot specification
-
How to specify the contents of a snapshot.
stack.yaml
vs a Cabal file-
The difference between Stack's project-level configuration file and a Cabal file describing a Haskell package.
- Script interpreter
-
How to use Stack's script interpreter.
- Docker integration
-
Stack has support for automatically performing builds inside a Docker container.
- Nix integration
-
Stack can be configured to integrate with Nix, a purely functional package manager.
- Non-standard project initialization
-
You may need to configure Stack to work with an existing project that has one or more Cabal files but no Stack project-level configuration file.
- Debugging
-
Advice on debugging using Stack.
- Editor integration
-
Advice on intergrating Stack with code editors.
- Stack and Visual Studio Code
-
Advice on using Stack with Visual Studio Code and its Haskell extension.
- Developing on Windows
-
Advice on using Stack on Windows.
- Shell auto-completion
-
Adding support for the tab completion of standard Stack arguments to the shell programs Bash, Zsh (the Z shell) and fish.
- CI
-
Advice on using Stack with CI.
- Travis CI
-
Advice on using Stack on Travis CI.
- Azure CI
-
Advice on using Stack on Azure CI.
- Lock files
-
The contents of Stack's lock files, how they are used, and how they are created and updated.
- Haskell and C code
-
Advice on using Stack with Haskell packages that include C source code, including those with a C
main
function.