-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pure Haskell implementation of GHC.Unicode #59
Comments
This sounds absolutely tremendous! |
Thanks for pushing this forward! Highly appreciated |
Nice to see one significant dependency on C libraries removed. I appreciate the contributions of @wismill to the |
I conducted a technical review of https://gitlab.haskell.org/ghc/ghc/-/merge_requests/8072 and it looks good to me. Dear CLC members, let's vote on the proposal to speed up +1 from me. |
+1 |
+1 |
2 similar comments
+1 |
+1 |
With 5 votes in favor out of 6 possible, the proposal is now approved by CLC. Thanks @wismill. |
Switch to a pure Haskell implementation of base:GHC.Unicode, based on the implementation of the package unicode-data (https://github.com/composewell/unicode-data/). Approved by CLC as per haskell/core-libraries-committee#59 (comment). - Remove current Unicode cbits. - Add generator for Unicode property files from Unicode Character Database. - Generate internal modules. - Update GHC.Unicode. - Add unicode003 test for general categories and case mappings. - Add Python scripts to check 'base' Unicode tests outputs and characters properties. Fixes #21375 ------------------------- Metric Decrease: T16875 Metric Increase: T4029 T18304 haddock.base -------------------------
I'm trying to summarise the state of this proposal as part of my volunteering effort to track the progress of all
Please, let me know if you find any mistakes 🙂 @wismill I find it hard to determine the exact version of |
@chshersh thanks for your effort. |
@wismill Thanks for confirming the In my understanding, if a change requires a CLC proposal, it should go to CHANGELOG, and I don't view CHANGELOG as API-only list of changes. But views of other CLC members may differ 😌 |
I would personally prefer to see nearly all changes in the changelog - subtle implementation differences can be hard to track down, and a changelog makes that much easier |
I agree, and that base should be held to a very strict standard of this |
Following this discussion, the goal of this proposal is to refactor
GHC.Unicode
from a C implementation to a pure Haskell implementation.Motivation
Implementation
I opened a merge request with a working implementation.
This work is based on the package
unicode-data
, developed by @Bodigrim, @harendra-kumar, @adithyaov, me and others.The re-licensing is discussed in this issue.
Relevant links
unicode-data
: Github, Hackage and Discourse.Further discussion
Other interesting functions could be imported from
unicode-data
. This proposal only use those already inbase
, in order to keep the interface unchanged.Aknowledgement
I would like to thank @Bodigrim, @harendra-kumar and @adithyaov for making
unicode-data
and @nomeata for his guidance.The text was updated successfully, but these errors were encountered: