I’m happy to announce the first stable version 1.0.0 of Camomile, a Unicode library for OCaml. This is an “API stabilizing” release, before we go major updates.
There is not much difference between the previous release 0.8.7 and 1.0.0. Only user visible changes are that dynamic configuration using environment variables is deprecated and all modules are wrapped under CamomileLibrary
You can get this release either from opam, or Github https://github.com/yoriyuki/Camomile/releases/tag/rel-1.0.0
The future plan includes
- split Camomile into several libraries, so that a user do not need to install the entire (several megabytes) libraries
- support latest Unicode standard
- and others! (I have a lot of idea but not enough time)
Which version is currently supported?
3.2. I know, it’s far behind the current one (10.0.0)
What work is needed to help you bring it up to 10.0.0? I do know most of the Unicode data is included in machine readable tables, yes?
Unicode standard changed a lot since 3.2. Unicode data format and semantics as well as algorithms are updated. We must review the difference and update the code.
In github repo, there is a 10.0.0 branch. In this branch a parser for UCD 10.0.0 is implemented, using Daniel Bünzli’s uucd. Since Camomile and uucd use different data structures, the parsing is currently very slow. We must do something.
Some random TODO:
- Case mapping algorithm must be updated. Daniel already implemented this so I will look at his work. But again Camomile has a different API and different data structures so his works would not be directly usable.
- Canonical equivalence and normal forms. the current implementation should be okay but I need to look at the standard. May try some improvement.
- Collation. again I have to look at the standard.
Also updating test suites (currently we are using an almost 20 years old framework), packaging, performance improvement, restructuring modules etc, are all necessary and highly appreciated.
There is a bug fix release 1.0.1. You can get it from opam or https://github.com/yoriyuki/Camomile/releases/tag/1.0.1
By the way, is anyone interested in a dedicated communication channel for Camomile development? I’m going to the large update and interested in opinions of users and (potential) developers alike.
We are communicating using GitHub issues and PR, but they do not provide the whole timeline of what people are doing.
Slack would be convenient for me but other service is okay.