Skip to content

Commit beecddf

Browse files
authored
A few more small changes from SPJ
1 parent 7d9a71d commit beecddf

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

proposals/accepted/051-ghc-base-libraries.rst

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ Combining stability with innovation
1717
.. sectnum::
1818
.. contents::
1919

20+
Introduction
21+
=========
22+
23+
This document describes an plan agreed between the GHC Team and the Core Libraries Committee, saying how we plan to work in partnership to reconcile the goals of innovation and stability for GHC and its ecosystem.
24+
25+
Formally, then, it is not so much a proposal as a record of an outcome.
26+
We are, nevertheless, using the Haskell Foundation Technical Working Group proposals repo, so that we can have a permanent public record of how we plan to work, so that others can comment, and so that the document can be polished to add clarity where necessary.
2027
Goals
2128
=====
2229

@@ -26,7 +33,7 @@ This proposal seeks to reconcile two goals, both of which are complex and multi-
2633
Managing API changes of ``base`` is the CLC's primary mandate.
2734
If ``base`` changes gratuitously, everyone suffers.
2835

29-
2. **The GHC team wants the freedom to:**
36+
2. **The GHC team seeks the freedom to:**
3037

3138
- Innovate in the language design.
3239
GHC has hundreds of extensions, and people suggest more all the time, via the GHC Proposals process.
@@ -76,7 +83,7 @@ Proposal
7683
We propose to divide ``base`` into three packages:
7784

7885
- ``ghc-internals``: exposes aspects of GHC's internals that may be of interest to "hard-core" developers interested in maximum performance (see `Nikita's blog post <https://nikita-volkov.github.io/internal-convention-is-a-mistake/>`__).
79-
The API of ``ghc-internals`` is of no direct interest to the CLC --- only its effects on the API of base.
86+
The API of ``ghc-internals`` is fully under the control of the GHC team, and of no direct interest to the CLC --- only its effects on the API of base.
8087

8188
- ``base``: as now, whose API is curated by CLC.
8289
Depends on ``ghc-internals``, and hence on ``ghc-bignum`` and ``ghc-prim``.
@@ -87,6 +94,8 @@ We propose to divide ``base`` into three packages:
8794
Example: new type families and type constructors for tuples, `GHC Proposal #475 <https://github.com/ghc-proposals/ghc-proposals/pull/475>`__.
8895

8996
Another example: future APIs to access RTS statistics, which are fairly stable and user-exposed, but which are (by design) coupled closely to GHC's runtime and hence may change.
97+
98+
As its name suggests, the API of ``ghc-experimental`` is curated by the GHC team, although the CLC is willing to offer (non-binding) opinions, if consulted.
9099

91100
All three packages conform rigorously to the PVP.
92101
(But see Section 5.3)
@@ -217,10 +226,14 @@ It is unproductive for the GHC Steering Committee to have a long discussion, acc
217226

218227
We propose that:
219228

220-
- A GHC Proposal should advertise, in a separate section, that it makes changes to the ``base`` API, and what those changes are.
229+
- A GHC Proposal should advertise, in a separate section:
230+
231+
- What changes, if any, it make to ``ghc-experimental``
232+
233+
- What changes, if any, it make to ``base``
221234

222235
- If there are any such changes, the author (and shepherd) should explicitly invite the CLC to participate in the discussion about the proposal.
223-
The CLC will devote some effort to participating, and subsequently hold a non-binding vote.
236+
The CLC will devote some effort to participating and, in the case of changes to ``base``, will subsequently hold a non-binding vote.
224237

225238
- Approval of the proposal (by the GHC Steering Committee, with the non-binding vote of CLC) is not a guarantee that the final implementation will land;
226239
that depends on the implementation being well engineered etc (GHC team);

0 commit comments

Comments
 (0)