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

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 (reorder option).

  • Add convenience options: ignore_accents, ignore_case, ignore_punctuation, and casing for compatibility with the previous ex_cldr_collation API.

  • Add Cldr.Collation.sort/2 for sorting string lists.

  • Add Cldr.Collation.sort_key/2 for generating binary sort keys.

  • Support Cldr.LanguageTag structs as the :locale option when ex_cldr is 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 suppress in favour of -undefined dynamic_lookup on MacOS.

  • Update README to illustrate how an installed libicu in the search path will take precendence over user the native icucore library.

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 Makefile more resilient by exiting if pkg-config isn't installed and therefore ICU_LIBS is 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

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

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.so file when loading at startup

  • Removes unrequired dependencies

Enhancements

  • Adds Cldr.Collator.sort/2

  • Adds 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.a doesn'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 :inets to :extra_applications for later versions of Elixir

  • Fix 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/2 on Elixir 1.10 and later. The comparitor modules are Cldr.Collator (which is case insensitive), Cldr.Collator.Sensitive (case sensitive comparison) and Cldr.Collator.Insensitive (case insensitive comparison).