Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking issue: easily reinstallable boot libraries #10440

Open
3 tasks
TeofilC opened this issue Oct 8, 2024 · 0 comments
Open
3 tasks

Tracking issue: easily reinstallable boot libraries #10440

TeofilC opened this issue Oct 8, 2024 · 0 comments

Comments

@TeofilC
Copy link
Collaborator

TeofilC commented Oct 8, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants