Ex_Cldr_Collation v1.0.0
This is the changelog for Ex_Cldr_Collation v1.0.0 released on March 17th, 2026. For older changelogs please consult the release tag on GitHub
This is a major release that replaces the previous NIF-only implementation with a complete pure-Elixir implementation of the Unicode Collation Algorithm (UCA) as extended by CLDR. The optional NIF backend is retained for high-performance use cases.
Breaking changes
The main module is now
Cldr.Collation(wasCldr.Collator).Cldr.Collation.compare/3returns:lt | :eq | :gt(was-1 | 0 | 1).Module-based comparators are now
Cldr.Collation.SensitiveandCldr.Collation.Insensitive(wereCldr.Collator.SensitiveandCldr.Collator.Insensitive).
Enhancements
Implement the full Unicode Collation Algorithm in pure Elixir, removing the hard requirement on ICU system libraries.
Support all BCP47 -u- extension collation keys: strength, alternate, backwards, normalization, case_level, case_first, numeric, reorder, and max_variable.
Add locale-specific tailoring for Danish, German (phonebook), Spanish, Swedish, Finnish, Norwegian, Polish, Croatian, and Turkish.
Add CJK radical-stroke ordering via
Cldr.Collation.Han.Add fast Latin lookup path for codepoints U+0000..U+017F.
Add script reordering support (
reorderoption).Add convenience options:
ignore_accents,ignore_case,ignore_punctuation, andcasingfor compatibility with the previousex_cldr_collationAPI.Add
Cldr.Collation.sort/2for sorting string lists.Add
Cldr.Collation.sort_key/2for generating binary sort keys.Support
Cldr.LanguageTagstructs as the:localeoption whenex_cldris available.
Ex_Cldr_Collation v0.7.5
This is the changelog for Cldr_collation v0.7.5 released on September 29th, 2024. For older changelogs please consult the release tag on GitHub
Bug fixes
Remove deprecated linker option
-undefined suppressin favour of-undefined dynamic_lookupon MacOS.Update README to illustrate how an installed
libicuin the search path will take precendence over user the nativeicucorelibrary.
Ex_Cldr_Collation v0.7.4
This is the changelog for Cldr_collation v0.7.4 released on September 25th, 2024. For older changelogs please consult the release tag on GitHub
Bug fixes
- Fix Makefile for Darwin (MacOS) when running in devenv. Thanks to @serpent213 for the issue. Closes #14.
Ex_Cldr_Collation v0.7.3
This is the changelog for Cldr_collation v0.7.3 released on May 28th, 2024. For older changelogs please consult the release tag on GitHub
Bug fixes
- Fix compiler warnings for Elixir 1.17.
Ex_Cldr_Collation v0.7.2
This is the changelog for Cldr_collation v0.7.2 released on February 8th, 2023. For older changelogs please consult the release tag on GitHub
Bug fixes
Makes the
Makefilemore resilient by exiting ifpkg-configisn't installed and thereforeICU_LIBSis empty. Previously this would fail silently and an unclear runtime error would be reported.Improved the error message if the NIF can't be loaded. Thanks to @linusdm. Closes #8.
Ex_Cldr_Collation v0.7.1
This is the changelog for Cldr_collation v0.7.1 released on February 24th, 2023. For older changelogs please consult the release tag on GitHub
Bug fixes
- Add binary guards to
Cldr.Collation.compare/3.
Ex_Cldr_Collation v0.7.0
This is the changelog for Cldr_collation v0.7.0 released on January 4th, 2022. For older changelogs please consult the release tag on GitHub
Bug fixes
Fix the .so path for the NIF at load time, not compile time. Thanks to @sergiorjsd for the report. Closes #3.
Fix buidling on ARM-based Mac models
Ex_Cldr_Collation v0.6.0
This is the changelog for Cldr_collation v0.6.0 released on July 3rd, 2021. For older changelogs please consult the release tag on GitHub
Bug fixes
- Load the nif from a path relative to
:code.priv_dir/1.
Ex_Cldr_Collation v0.5.0
This is the changelog for Cldr_collation v0.5.0 released on June 23rd, 2021. For older changelogs please consult the release tag on GitHub
Bug fixes
Correctly reference the
ucol.sofile when loading at startupRemoves unrequired dependencies
Enhancements
Adds
Cldr.Collator.sort/2Adds documentation for
Cldr.Collator.compare/3
Ex_Cldr_Collation v0.4.0
This is the changelog for Cldr_collation v0.4.0 released on April 9th, 2021. For older changelogs please consult the release tag on GitHub
Bug Fixes
- Fix compilation issues on OTP 23 and later. On these releases,
liberl_interface.adoesn't exist and isn't required. Thanks to @zookzook for the report.
Ex_Cldr_Collation v0.3.0
This is the changelog for Cldr_collation v0.3.0 released on March 3rd, 2020. For older changelogs please consult the release tag on GitHub
Enhancements
Add
:inetsto:extra_applicationsfor later versions of ElixirFix application name in
README.md. Thanks to @phlppn.Note the requirement for Elixir 1.10 or later in order to use the module-based comparators for
Enum.sort/2.
Ex_Cldr_Collation v0.2.0
This is the changelog for Cldr_collation v0.2.0 released on Match 13th, 2020. For older changelogs please consult the release tag on GitHub
Enhancements
- Adds support for module-based comparators used by
Enum.sort/2on Elixir 1.10 and later. The comparitor modules areCldr.Collator(which is case insensitive),Cldr.Collator.Sensitive(case sensitive comparison) andCldr.Collator.Insensitive(case insensitive comparison).