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 --version
identifies 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 --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-related¶
docker
- use Stack with Docker
Executing in the Stack environment¶
exec
- executate a command in the Stack environmentghc
- runghc
eval
- evaluate some Haskell code inlinerunghc
- runrunghc
runhaskell
- 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 new
uninstall
- information about how to uninstall Stack
Using tools in Stack's environment¶
hoogle
- runhoogle
dot
- 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 --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