tweag/asterius

Multiple global package databases

Open

#298 opened on Sep 16, 2019

View on GitHub
 (3 comments) (0 reactions) (0 assignees)Haskell (56 forks)batch import
P2good first issuetype: feature request

Repository metrics

Stars
 (1,949 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

Currently, we hardcode the global package database path to somewhere in the Cabal datadir of the asterius package, and ahc-boot populates the package database by executing the booting process. This is a major source of coffee break sessions in the past: whenever we need to modify something in the boot libs, we'll need to wipe the ghc-toolkit/asterius installation, rebuild and do another round of ahc-boot.

We should have a default global package database path which falls back to the Cabal datadir, but additionally:

  • Allow the source of boot libs to be picked up from the current working source tree, instead of from the datadir of ghc-toolkit (which requires recompilation of ghc-toolkit and asterius)
  • Allow ahc-boot to use a new global package database path
  • Allow ahc-boot to only compile a part of boot libs, e.g. "up to package X", and later resume the compilation of the rest of boot libs
  • Allow ahc, ahc-link, etc to use custom global package paths

In this way, the experience of hacking boot libs can be much smoother. Still, we're free to schedule coffee breaks whenever we want.

Contributor guide