title |
---|
Commands |
Some of Stack's features will not be needed regularly or by all users. This part of the guide and the part on configuration provide information about some of those features, organised as a reference guide. Some of the features are complex and separate pages are dedicated to them.
Stack is usually used with one of its commands (see further below). However:
-
stack
,stack --help
(or-h
) lists Stack's commands, and flags and options common to those commands; -
stack <command> --help
(or-h
) — provides help on the particular Stack command, including flags and options specific to the command; and -
stack --version
identifies the version and Git hash of the Stack executable.
!!! info "Runtime system (RTS) options"
The Stack executable is built by GHC with the `-rtsopts=some` option. This
means that the RTS extracts command-line arguments bracketed between `+RTS`
and `-RTS` as its own when Stack is run. Only the following RTS
options are available:
* `-?` (e.g. `stack +RTS -?`) causes the RTS to output information about
RTS options; and
* `--info` (e.g. `stack +RTS --info`) causes the RTS to output information
about the RTS.
To avoid the RTS extracting such command-line arguments as its own when
using Stack commands such as [`exec`](exec_command.md),
[`test`](test_command.md) or [`bench`](bench_command.md), see the
documentation for those commands.
setup
- get GHC for a Stack project (usually not needed)update
- update the package index (usually not needed)new
- create a new project with Stackinit
- initialise Stack's project-level YAML configuration file for an existing project
build
- build packagestest
- a synonym forstack build --test
bench
- a synonym forstack build --bench
haddock
- a synonym forstack build --haddock
install
- a synonym forstack build --copy-bins
run
- build and run an executable
docker
- use Stack with Docker
exec
- executate a command in the Stack environmentghc
- runghc
eval
- evaluate some Haskell code inlinerunghc
- runrunghc
runhaskell
- a synonym forstack runghc
unpack
- unpack one or more packages locallysdist
- create an archive file for a package, in a form accepted by Hackageupload
- upload a package to Hackage
clean
- delete build artefacts for the project packagespurge
- delete the Stack working directories
config set
- modify Stack's configuration
script
- run a Haskell source file as a script
path
- information about locations used by Stackls
- list information about Stacklist
- list packages on Hackage or in a snapshotide
- information for an integrated development environment (IDE)query
- information about the buildconfig env
- modify Stack's configurationtemplates
- information about templates for use withstack new
uninstall
- information about how to uninstall Stack
hoogle
- runhoogle
dot
- dependency visualizationhpc
- generate Haskell Program Coverage (HPC) code coverage reports
upgrade
- upgrade Stack
Stack's commands are listed below, in alphabetical order.
bench
- a synonym forstack build --bench
build
- build packagesclean
- delete build artefacts for the project packagesconfig
- access and modify Stack's configurationdocker
- use Stack with Dockerdot
- dependency visualizationeval
- evaluate some Haskell code inlineexec
- executate a command in the Stack environmenthaddock
- a synonym forstack build --haddock
hoogle
- runhoogle
hpc
- generate Haskell Program Coverage (HPC) code coverage reportsghc
- runghc
ghci
- run GHCi, a REPL environmentide
- information for an integrated development environment (IDE)init
- initialise Stack's project-level YAML configuration file for an existing projectinstall
- a synonym forstack build --copy-bins
list
- list packages on Hackage or in a snapshotls
- list information about Stacknew
- create a new project with Stackpath
- information about locations used by Stackpurge
- delete the Stack working directoriesquery
- information about the buildrepl
- a synonym forstack ghci
run
- build and run an executablerunghc
- runrunghc
runhaskell
- a synonym forstack runghc
script
- run a Haskell source file as a scriptsdist
- create an archive file for a package, in a form accepted by Hackagesetup
- get GHC for a Stack projecttemplates
- information about templates for use withstack new
test
- a synonym forstack build --test
uninstall
- information about how to uninstall Stackunpack
- unpack one or more packages locallyupdate
- update the package indexupgrade
- upgrade Stackupload
- upload a package to Hackage