$ the-wire · showcase
U+055F joins the case ignorable set
By RepoJournal · Filed · About Elixir & Phoenix
Elixir now skips the Armenian abbreviation mark in Greek final sigma scans, fixing String.downcase/2 and String.capitalize/2 edge cases.
Elixir's hardcoded case ignorable set now includes U+055F ARMENIAN ABBREVIATION MARK [1]. Previously, `case_context/1` returned `:other` for U+055F, so the Final_Sigma context scan stopped at it instead of skipping it [2]. This affected `String.downcase/2` and `String.capitalize/2` in `:greek` mode on both sides of the Final_Sigma rule [1]. The change aligns with the UCD properties Word_Break=MidLetter and Case_Ignorable [2]. In Phoenix, a docs and chore rename of the `secret` argument to `salt` in the token module aligns the argument name with what `sign/4` and `verify/4` already call it, matching the moduledocs which describe it as a "cryptographic salt" [3]. This is a cosmetic rename, not a behavior change. The CaptureLog formatter test was simplified [4], a test-only change with no runtime impact.
Action items
- → Review String.downcase/2 and String.capitalize/2 calls in :greek mode for affected strings containing Armenian abbreviation marks elixir-lang/elixir [monitor]
- → Verify no code depends on the old `secret` argument name in Phoenix token functions phoenixframework/phoenix [monitor]
- → Check the CaptureLog formatter test simplification for any coverage gaps elixir-lang/elixir [monitor]
References
- [1] Add U+055F to the case ignorable set (#15812) ↗ elixir-lang/elixir
- [2] Add U+055F to the case ignorable set ↗ elixir-lang/elixir
- [3] chore: rename secret to salt (#6813) ↗ phoenixframework/phoenix
- [4] Simplify CaptureLog formatter test (#15810) ↗ elixir-lang/elixir