You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: proposals/accepted/051-ghc-base-libraries.rst
+17-4Lines changed: 17 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,13 @@ Combining stability with innovation
17
17
.. sectnum::
18
18
.. contents::
19
19
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.
20
27
Goals
21
28
=====
22
29
@@ -26,7 +33,7 @@ This proposal seeks to reconcile two goals, both of which are complex and multi-
26
33
Managing API changes of ``base`` is the CLC's primary mandate.
27
34
If ``base`` changes gratuitously, everyone suffers.
28
35
29
-
2. **The GHC team wants the freedom to:**
36
+
2. **The GHC team seeks the freedom to:**
30
37
31
38
- Innovate in the language design.
32
39
GHC has hundreds of extensions, and people suggest more all the time, via the GHC Proposals process.
@@ -76,7 +83,7 @@ Proposal
76
83
We propose to divide ``base`` into three packages:
77
84
78
85
- ``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.
80
87
81
88
- ``base``: as now, whose API is curated by CLC.
82
89
Depends on ``ghc-internals``, and hence on ``ghc-bignum`` and ``ghc-prim``.
@@ -87,6 +94,8 @@ We propose to divide ``base`` into three packages:
87
94
Example: new type families and type constructors for tuples, `GHC Proposal #475 <https://github.com/ghc-proposals/ghc-proposals/pull/475>`__.
88
95
89
96
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.
90
99
91
100
All three packages conform rigorously to the PVP.
92
101
(But see Section 5.3)
@@ -217,10 +226,14 @@ It is unproductive for the GHC Steering Committee to have a long discussion, acc
217
226
218
227
We propose that:
219
228
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``
221
234
222
235
- 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.
224
237
225
238
- 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;
226
239
that depends on the implementation being well engineered etc (GHC team);
0 commit comments