stack is a new, complete, cross-platform development tool aimed at both new and experienced Haskell developers alike, for installing and setting up the compiler, installing packages needed, and building, testing or benchmarking one or more packages in a project at a time. It’s the whole stack.
We developed it in collaboration with the Commercial Haskell Group, with two deliberate goals in mind:
In short, it’s a program that you run in a directory with a
stack configuration file in it
(stack.yaml
—automatically created if one doesn’t
exist). That directory may contain one or many packages inside it
to be built. Then there are commands to build, test, install
dependencies, run GHC, etc.
Here’s a rundown of the advantages stack
brings to
the table. For both newbies and experienced Haskellers:
stack build
in a package directory and it will
automatically download and install GHC, the standard Haskell
compiler, for you, download the package index and install packages
that are needed.ghc
on a file. You can run stack ghc X.hs
and it will download GHC if necessary, etc. until it can run GHC on
that file. The same is true for stack ghci
, etc.For experienced Haskellers, there is support for typical use-cases and subtleties of larger projects:
stack.yaml
file, which is
important for reliable collaboration.packages
in your stack.yaml, you can build/test/bench
multiple projects at once. stack build
will just build
everything. stack build this
will build
this
package and rebuild anything that depends on it,
and also any of its dependencies that changed.stack build
will download the image if necessary and
then run the build inside the docker image. There is an array of
options available for the docker integration.We first arrived at this tool based on feedback from our clients at FP Complete and have been using this tool in-house ourselves for around a year, in several iterations. This final iteration has had particular focus on ease of use. We were also motivated by the results of the recent Haskell survey.
Feedback from members of the Commercial Haskell Group has been very helpful in shaping the direction of the tool in a positive way and we now open it up, open source, in beta and for the Haskell community as a whole and welcome your contributions, ideas and feedback!
stack is available on Hackage (cabal install
stack
), as well as binary
downloads for Windows, Mac, and Linux, with Ubuntu and Arch
packages. Please note that this is a beta release: we
anticipate bugs, and will work to quickly resolve them. Please be
sure to report issues on the Github
issue tracker.
Subscribe to our blog via email
Email subscriptions come from our Atom feed and are handled by Blogtrottr. You will only receive notifications of blog posts, and can unsubscribe any time.