A couple of weeks ago, I started the initiative to track the progress of all approved
proposals in the new CLC process, and I’d like to share the final results.
You can see an example of my tracked progress in the following comment:
All CLC work is done by volunteers in their free time.
Stats
Let’s jump directly to stats without wasting any more time!
Total
At the moment of writing this post, haskell/core-libraries-committee has 22 open and 111 closed proposals.
Of those 111 closed ones:
50 approved (45%)
26 withdrawn (23%)
10 meta (9%)
8 abandoned (7%)
6 declined (5%)
7 out of scope (6%)
2 dormant (2%)
2 core libraries (2%)
Approved
I mostly focused on approved
proposals to see which version of base
implements the proposal, whether there’s an entry in the changelog, and, most importantly, if the proposal was implemented at all.
I don’t want CLC to end in a situation where we have a huge number of approved and not implemented proposals (although, it’s still possible due to the OSS nature and mostly voluntary effort).
Of all 50 approved proposals,
-
42 are actually implemented and either already released or will be released with the new version of
base
- 8 proposals have either open Merge Requests or no MR at all (see the next section for more details)
Besides, I was interested to see where each implemented proposal goes. As the result, the following versions of base
implement:
-
base-4.16
(GHC 9.2): 1 proposal -
base-4.17
(GHC 9.4): 11 proposals -
base-4.18
(GHC 9.6): 22 proposals -
base-4.19
(GHC 9.8): 8 proposals
Need help! Call for volunteers!
Some CLC proposals have documentation mistakes, are blocked by GHC issues, or are not implemented at all. In this section, I’d like to list all these proposals with additional context and ask volunteers for their help!
Some problems are low-hanging fruits like “missing changelog entry” while others require significant patches to GHC.
-
Proposal: Remove method (/=) from class Eq · Issue #3 · haskell/core-libraries-committee · GitHub
- The implementation is blocked by performance regression and needs changes to GHC first
-
stimes for Endo · Issue #4 · haskell/core-libraries-committee · GitHub
- Another MR with refactoring needs to be merged first, so the original MR contains only relevant CLC-approved changes
-
Improve mtimesDefault implementation · Issue #11 · haskell/core-libraries-committee · GitHub
- Changelog entry is missing
-
Problem: foldr' has a terribly bad default implementation · Issue #20 · haskell/core-libraries-committee · GitHub
- Changelog entry is missing
-
Clarify laws of TestEquality · Issue #21 · haskell/core-libraries-committee · GitHub
- Changelog entry is missing
-
Clarify the situation around Data.List · Issue #22 · haskell/core-libraries-committee · GitHub
- The proposal is about making all functions in
Data.List
work with[a]
instead ofFoldable f => f a
- It was approved long before the current CLC but turned out to break a lot of things
- It’s blocked by the implementation of the corresponding compatibility warning in GHC
- The proposal is about making all functions in
-
Expand Ord instance for Down · Issue #23 · haskell/core-libraries-committee · GitHub
- Changelog entry is missing
-
Add functions traceWith, traceShowWith to Debug.Trace · Issue #36 · haskell/core-libraries-committee · GitHub
- The
@since
annotation saysbase-4.17
while should saybase-4.18
- Debug.Trace#traceWith, traceShowWith
- The
-
Remove default method from Bitraversable · Issue #47 · haskell/core-libraries-committee · GitHub
- Changelog entry is missing
-
Make `GHC.Stack.Types.SrcLoc` more strict · Issue #55 · haskell/core-libraries-committee · GitHub
- The change is approved but it resulted in a performance regression
-
Add/document laws for `toInteger` and `toRational` · Issue #58 · haskell/core-libraries-committee · GitHub
- Changelog entry is missing
-
Make `Data.List.permutations` return a `NonEmpty`? · Issue #68 · haskell/core-libraries-committee · GitHub
- The MR is open but the author didn’t have the capacity to finish it so far
-
Add {-# WARNING #-} to Data.List.{head,tail} · Issue #87 · haskell/core-libraries-committee · GitHub
- The issue was blocked by another CLC proposal and not-implemented but required GHC issue. Everything seem in place and on time for
base-4.19
now though.
- The issue was blocked by another CLC proposal and not-implemented but required GHC issue. Everything seem in place and on time for
-
Change `stimes @Void n x` to be `x` · Issue #95 · haskell/core-libraries-committee · GitHub
- Changelog entry is missing
-
Design for dataToTag# · Issue #104 · haskell/core-libraries-committee · GitHub
- The MR is open but not merged. It’s not clear what’s blocking it atm.
-
Add `ConstPtr` to Foreign.C.Types · Issue #118 · haskell/core-libraries-committee · GitHub
- Mistake in a changelog entry (link to a wrong CLC proposal)
-
Add laws for the Exception class · Issue #135 · haskell/core-libraries-committee · GitHub
- The proposal is not implemented