I'm pleased to announce a big step in the #musl locale overhaul project: collation is working!

This is the result of a long project to design data structures and logic that would admit honoring the full Unicode Collation Algorithm rules, including equivalence under normalization, and keep the size of collation weight tables for the entirety of Unicode under control.

Full status announcement on the mailing list: openwall.com/lists/musl/2026/0

www.openwall.com/lists/musl/2026/09/03/4

Replying to @⁨dysfun@social.treehouse.systems⁩

@dysfun For the full root collation data without fancy radical-stroke order for CJK (i.e. using legacy implicit weights for CJK), it comes in at just under 200 kB for something like 60k mappings, averaging around 3.3 bytes per mapping. That's including all of the data structure overhead to find the weights.

For the complete radical-stroke data, it's about 560 kB.

This is the mmappable locale data file for a locale, not part of libc .rodata or anything.