Commands (advanced)¶
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 command¶
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 --versionidentifies the version and Git hash of the Stack executable.
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,
test or bench, see the
documentation for those commands.
Stack commands (thematic)¶
Setting up¶
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
Building¶
build- build packagestest- a synonym forstack build --testbench- a synonym forstack build --benchhaddock- a synonym forstack build --haddockinstall- a synonym forstack build --copy-binsrun- build and run an executable
Docker-related¶
docker- use Stack with Docker
Executing in the Stack environment¶
exec- executate a command in the Stack environmentghc- runghceval- evaluate some Haskell code inlinerunghc- runrunghcrunhaskell- a synonym forstack runghc
Using GHC interactively¶
Down/up loading local packages from/to Hackage¶
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
Cleaning-up¶
clean- delete build artefacts for the project packagespurge- delete the Stack working directories
Amending Stack's configuration files¶
config set- modify Stack's configuration
Using Haskell code as a script¶
script- run a Haskell source file as a script
Getting information¶
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 newuninstall- information about how to uninstall Stack
Using tools in Stack's environment¶
hoogle- runhoogledot- dependency visualizationhpc- generate Haskell Program Coverage (HPC) code coverage reports
Managing Stack versions¶
upgrade- upgrade Stack
Stack commands (alphabetical)¶
Stack's commands are listed below, in alphabetical order.
bench- a synonym forstack build --benchbuild- 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 --haddockhoogle- runhooglehpc- generate Haskell Program Coverage (HPC) code coverage reportsghc- runghcghci- 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-binslist- 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 ghcirun- build and run an executablerunghc- runrunghcrunhaskell- a synonym forstack runghcscript- 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 newtest- a synonym forstack build --testuninstall- information about how to uninstall Stackunpack- unpack one or more packages locallyupdate- update the package indexupgrade- upgrade Stackupload- upload a package to Hackage