Opened 12 months ago
Closed 12 months ago
#19697 closed enhancement (fixed)
enchant-2.7.0
Reported by: | Bruce Dubbs | Owned by: | Bruce Dubbs |
---|---|---|---|
Priority: | normal | Milestone: | 12.2 |
Component: | BOOK | Version: | git |
Severity: | normal | Keywords: | |
Cc: |
Description ¶
New minor version.
Change History (5)
comment:1 by , 12 months ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
follow-up: 3 comment:2 by , 12 months ago
comment:3 by , 12 months ago
comment:4 by , 12 months ago
2.7.0 (April 19, 2024)
This release marks a major improvement in Enchant’s maintainability: the main library has been translated into Vala, a modern object-oriented language with automatic memory management that, like Enchant, is based on GLib.
Developers and packagers need not worry: this release is API and ABI-compatible with previous releases (with some minor changes, noted below, that is unrelated to the use of Vala), and you do not even need a Vala compiler to build it, thanks to Automake, which distributes the C source files generated by the Vala compiler. The build-time and run-time dependencies therefore remain unchanged.
The library code is 33% smaller, and the total code-base has reduced by 12%. Thanks in particular to Vala’s more modern string and collection handling, I anticipate it being much easier to add functionality in future. The use of Vala may also be extended in future to those provider back-ends written in C.
The provider API is now declared private. No third-party providers have been available for Enchant for many years to my knowledge, and the only new provider in the last ten years, Nuspell, was implemented by Nuspell’s authors in Enchant. The provider interface has changed in this release; and of course all the current providers have been updated, including the still-experimental Zemberek provider.
There is a small change to the semantics of dictionaries: in the past, requesting a dictionary with the same language tag twice from a given provider returned the same dictionary object. This is no longer the case. This allows an application to have multiple active spelling sessions with the same broker object in any given language. Applications that relied on this functionality must in future keep track of the identity of spelling sessions themselves. I do not regard this as an API/ABI change, since it was only documented in a vague way by saying that dictionaries were “reference-counted”. This language has been removed from the documentation.
Finally, a big thank-you to Eric Scott Albright, who wrote the test suite, and SIL, for funding his work. Enchant has an excellent test suite; one of my first contributions to the project was to get the test suite running on all platforms, as it was originally written just for Windows. It’s an impressive set of tests that covers a huge range of normal and edge cases, and has often saved me before now; but it has never been more valuable than when rewriting the entire core library. Hopefully it has kept the number of new bugs I’ve introduced to a minimum!
comment:5 by , 12 months ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fixed at commits
7c8aded207 Update to vala-0.56.17. c2441308ab Update to gdk-pixbuf-2.42.11. ea0364aa2e Update to enchant-2.7.0. ac286b1aac Update to solid-6.1.1.
FTBFS: https://github.com/AbiWord/enchant/issues/365