[ANN] Stack 3.9.1

Centered Image

See https://haskellstack.org/ for installation and upgrade instructions.

Changes since v3.7.1:

Behavior changes:

  • Where applicable and Stack supports the GHC version, only the wired-in packages of the actual version of GHC used are treated as wired-in packages.
  • Stack now recognises ghc-internal as a GHC wired-in package.
  • The configuration option package-index has a new default value: the keyids key lists the keys of the Hackage root key holders applicable from 2025-07-24.
  • Stack’s dot command now treats --depth the same way as the ls dependencies command, so that the nodes of stack dot --external --depth 0 are the same as the packages listed by stack ls dependencies --depth 0.
  • When building GHC from source, on Windows, the default Hadrian build target is reloc-binary-dist and the default path to the GHC built by Hadrian is _build/reloc-bindist.
  • Stack’s haddock command no longer requires a package to have a main library that exposes modules.
  • On Windows, the path segment platform \ hash \ ghc version, under .stack-work\install and .stack-work\hoogle, is hashed only once, rather than twice.

Other enhancements:

  • Bump to Hpack 0.39.1.
  • Consider GHC 9.14 to be a tested compiler and remove warnings.
  • Consider Cabal 3.16 to be a tested library and remove warnings.
  • From GHC 9.12.1, base is not a GHC wired-in package. In configuration files, the notify-if-base-not-boot key is introduced, to allow the exisitng notification to be muted if unwanted when using such GHC versions.
  • Add flag --[no-]omit-this (default: disabled) to Stack’s clean command to omit directories currently in use from cleaning (when --full is not specified).
  • Add option -w as synonym for --stack-yaml.
  • stack new now allows codeberg: as a service for template downloads
  • In YAML configuration files, the compiler-target and compiler-bindist-path keys are introduced to allow, when building GHC from source, the Hadrian build target and Hadrian path to the built GHC to be specified.

Bug fixes:

  • --PROG-option=<argument> passes --PROG-option=<argument> (and not --PROG-option="<argument>") to Cabal (the library).
  • The message S-7151 now presents as an error, with advice, and not as a bug.
  • Stack’s dot command now uses a box to identify all GHC wired-in packages, not just those with no dependencies (being only rts).
  • Stack’s dot command now gives all nodes with no dependencies in the graph the maximum rank, not just those nodes with no relevant dependencies at all (being only rts, when --external is specified).
  • Improved error messages for S-4634 and S-8215.
  • Improved in-app help for the --hpack-force flag.

Thanks to all our contributors for this release:

  • Alexey Kotlyarov
  • Dino Morelli
  • Jens Petersen
  • Lauren Yim
  • Mike Pilgrem
  • Olivier Benz
  • Simon Hengel
  • Wolfram Kahl
17 Likes

Unofficial Linux/RISC-V (64-bit, linux/riscv64) release assets are available at v3.9.1 · Commercial Haskell / stack · GitLab.

1 Like

The GHC musl docker manifests (linux/amd64, linux/arm64/v8) for GHC versions 9.14.1, 9.12.3, 9.10.3, 9.8.4 and 9.6.7 now include Stack version 3.9.1. Available from

Quay:

  • quay.io/benz0li/ghc-musl:9.14.1
  • quay.io/benz0li/ghc-musl:9.12.3
  • quay.io/benz0li/ghc-musl:9.10.3
  • quay.io/benz0li/ghc-musl:9.8.4
  • quay.io/benz0li/ghc-musl:9.6.7

Docker Hub :

  • docker.io/benz0li/ghc-musl:9.14.1
  • docker.io/benz0li/ghc-musl:9.12.3
  • docker.io/benz0li/ghc-musl:9.10.3
  • docker.io/benz0li/ghc-musl:9.8.4
  • docker.io/benz0li/ghc-musl:9.6.7

The manifests for GHC versions 9.14.1, 9.12.3 and 9.10.3 also include an image for linux/riscv64.

:information_source: Please be aware that these are unofficial and untested binary distributions of GHC on Alpine Linux.

4 Likes