Buy-in for technical proposal 47 which affect GHC devs
ben at well-typed.com
Tue Mar 21 17:16:10 UTC 2023
Laurent P. René de Cotret <laurent.decotret at outlook.com> writes:
> Dear GHC developers,
> In recent weeks, John Ericson has fine-tuned a Haskell Foundation
> Technical Proposal to split `base` into two libraries: `ghc-base` and
> `base`, the latter simply re-exporting everything for `ghc-base` (for
> now). You can read about the rationale and specifics more in details
> in the proposal itself:
> Note that this proposal has recently been streamlined into a form
> which is more focused than its initial state, and might be worth a
> The Haskell Foundation Technical Working Group has reached a consensus
> that this work will benefit the Haskell community. Moreover, the
> Haskell Foundation has agreed to spend some of its resources to
> implement this proposal, which would start by ensuring the completion
> of MR7898 (https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7898).
> This work will affect GHC developers. Therefore, the Technical Working
> Group would like to get buy-in from the GHC developers before formally
> accepting this proposal.
In general I am quite supportive of this proposal. I have discussed the
idea with John on several occassions and agree that separating the
implementation of `base` from its user-facing interfaces with a package
boundary would simplify life for both users and GHC's maintainers (c.f.
I also threw together my own implementation of the idea in a few hours
some weeks back (having forgotten about John's effort); this can be
found in the wip/ghc-base branch . From that experience I have no
doubts that this idea is feasible. The only issues that I am slightly
unsure of are:
* whether/how to prevent `ghc-base` references from seeping into error
* which interfaces should be re-exposed from `base`. In  we propose
that a fair number of interfaces be marked as GHC-internal.
Those which are marked  as "hidden" should likely be
exposed only via `ghc-base`. However, for compatibility reasons we
may decide to continue exporting some subset of "internal" modules
(with frozen export lists) from `base`.
Regardless, I am very happy to see this split move forward and am
grateful to John for his work in this direction.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 905 bytes
Desc: not available
More information about the ghc-devs