Skip to content

Releases: AbiWord/enchant

Release v2.8.0

26 May 12:39
Compare
Choose a tag to compare

This release adds the ability to use multiple dictionaries in the same
spell-checking session. This can be useful for checking multilingual text in
situations where passages or words cannot be marked as being in a particular
language (for example, plain text or Markdown), and for specialised texts
where a subject-specific dictionary is useful. The functionality is based on
the Google Summer of Code “composite dictionary” project by Vidhoon
Vishwanathan from 2013; a big thanks to him for his work! I have simplified
his original design, and the implementation in Vala is entirely mine, so he
is not to blame for any faults it may have in its current form.

Multiple dictionaries are specified by a change to the dictionary tag
format: most of Enchant’s APIs and its command-line front-end now accept a
comma-separated list of tags. (This means of course that commas may no
longer be used in dictionary tags; but until recently that was not allowed
in any case.)

A minor change has been made to an existing API: enchant_dict_suggest is now
specified to return an empty list when there are no suggestions. This makes
it easier to distinguish an error (when NULL is returned) from there simply
being no suggestions. While this is formally an API change, I am not
incrementing the major library version as in fact this API was already able
to return an empty list; and in any case, callers were unlikely to rely on
the list being non-empty.

The Doxygen documentation has been greatly improved: documentation of
internal code has been removed, while the public C and C++ header files are
now clearly documented (in particular, the Doxygen documentation did not
previously contain proper documentation for the C header file). The
documentation of the C API has also been improved in several places.

The test suite files have been renamed with shorter, less redundant names,
to make them easier to navigate.

Some minor improvements to and simplifications of the build system and code
have also been made.

Release v2.7.3

04 May 11:37
Compare
Choose a tag to compare

This release contains only minor changes, and is mostly important because it uses a later version of the Vala compiler to generate C sources that have a workaround for stricter errors in GCC >= 14 and Clang >= 16.

Release v2.7.2

27 Apr 20:02
Compare
Choose a tag to compare

This release fixes a potential crash introduced in 2.7.0 when checking
words.

Release v2.7.1

25 Apr 12:31
Compare
Choose a tag to compare

This release fixes some build problems introduced by the rewrite of
libenchant into Vala in 2.7.0, as well as other minor fixes and
improvements (see NEWS for full details).

Release v2.7.0

21 Apr 10:42
Compare
Choose a tag to compare

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!

Release v2.6.9

04 Apr 12:33
Compare
Choose a tag to compare

This release implements user dictionaries for Nuspell, Voikko and Hspell.

Release v2.6.8

22 Mar 18:30
Compare
Choose a tag to compare

This release better documents the limited capabilities Enchant currently has for user-specified dictionaries.

Release v2.6.7

08 Feb 17:22
Compare
Choose a tag to compare

This release fixes a bug introduced in 2.6.6 that would cause Enchant to crash when used with Hunspell. Apologies!

Release v2.6.6

04 Feb 20:01
Compare
Choose a tag to compare

This release fixes both behaviour and documentation around reading configuration files. See NEWS for details.

Release v2.6.5

08 Jan 19:13
Compare
Choose a tag to compare

This version permits error messages from spelling providers not to be valid
UTF-8. This allows error messages in particular about invalid UTF-8
characters in personal wordlists to be shown to the user. Developers take
note!

The --with-hunspell-dir configure option is removed (along with all the
other ---with-PROVIDER-dir options, which did nothing). Users who have
Hunspell dictionaries in non-standard locations should set the
Hunspell-specific environment variable DICPATH, or copy the dictionaries
into their user’s Enchant configuration directory (for example
~/.config/enchant/hunspell).

Doxygen API documentation is now included in the release tarball (it is also
now available online).