Opened 2 weeks ago

Closed 2 weeks 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 Bruce Dubbs, 2 weeks ago

Owner: changed from blfs-book to Bruce Dubbs
Status: newassigned

in reply to:  2 comment:3 by Xi Ruoyao, 2 weeks ago

Replying to Xi Ruoyao:

FTBFS: https://github.com/AbiWord/enchant/issues/365

Workaround: rm src/api.c but it will make vala required.

comment:4 by Bruce Dubbs, 2 weeks 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 Bruce Dubbs, 2 weeks ago

Resolution: fixed
Status: assignedclosed

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.
Note: See TracTickets for help on using tickets.