Skip to content

Upgrade of Haskell stack #6843

@liontiger23

Description

@liontiger23

Motivation

Current ghc in repos is 9.4.8 (uses base 4.17), which was recommended version by GHCup project for a while.
However, now the recommended version is 9.6.7 (uses base 4.18) and some of our packages require even higher GHC version: for example, pandoc-crossref 0.3.22 requires GHC 9.8.* (uses base 4.19).

Moreover, I think it makes sense to try to use the newest GHC version that we can as our build tool, to simplify future package updates and anticipate stack upgrade problems.

Reducing stack size

Currently we have a lot of intermediate haskell-* packages, which are dynamically linked only into couple of real packages haskell-cabal-install and xmonad/xmonad-contrib with haskell-cabal-install requiring majority of these packages:

Runtime dependencies of Haskell stack

Before upgrading GHC to any version we should build haskell-cabal-install using static linking, thus eliminating the need for most of these packages.

The whole Haskell stack (build dependencies) then would look like this:

Build dependencies of Haskell stack

xmonad

We probably could not switch xmonad to static linking, because its configuration is written in Haskell and requires availability of some haskell-* dependencies.
However, there is some argument to dropping xmonad altogether and letting users build it from source using official build guide or maybe providing some Solus specific instructions in help center.

Plan

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

Status

Triage

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions