Skip to content

Tracking issue: easily reinstallable boot libraries #10440

@TeofilC

Description

@TeofilC

The status quo is that boot libraries in general and certain boot1 libraries in particular are handled by cabal-install in a special way, which means that they cannot (easily) be re-installed. You are stuck with whatever version came with the version of GHC. This is undesirable.

There are multiple reasons why cabal-install might not allow certain packages to be reinstalled.

  • Some packages contain wired-in identifiers that are hard-coded into the compiler.
  • Some packages are dependencies of the ghc library, and we often want to force the use of the ghc:lib component that came bundled with the compiler. This only applies to build plans that include this library. But common tools like doctest have ghc as a dependency.

Recently GHC developers have been moving moving wired-in identifiers into ghc-internal, so this restriction is getting relaxed. But there is still some work to do on the cabal-install side to make it possible to reinstall more libraries.

In particular, it would be nice if we could easily reinstall base and template-haskell. Neither of these will be wired-in with GHC-9.12.

See also some of the points @mpickering made on this MR: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/13297

Here are a list of issues that are currently blocking reinstalling these (in a user friendly way):

Please feel free to edit this. I wanted to collect these in one place because I don't think it's super clear what's blocking us otherwise.

Footnotes

  1. a boot library is any library that came packaged in the global package database supplied with a GHC install.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions