The Wire · Showcase
ELIXIR TOOLING FIXES LAND AHEAD OF SYSTEM COMPATIBILITY PUSH
By RepoJournal · Filed · About Elixir & Phoenix
The compiler stops misinterpreting profile flags, string reversal handles invalid UTF8 correctly, and Ecto gains fragment column selection in a wave of fixes that shores up core library reliability.
Elixir's compiler got a critical fix [1] where the `--profile time` switch was being parsed as a file pattern instead of a flag, making profiling data collection impossible. This landed alongside a precision correction in `String.reverse/1` [2] that now properly orders graphemes around invalid UTF8 bytes, fixing a bug where reversing a string with corrupt bytes would reverse the wrong segments. The fixes reflect active maintenance across the stack as the team also addresses emerging compatibility issues. A `System.cmd/3` unit test [3] that fails on Ubuntu 26.04 exposed a deeper problem: the Rust-based uutils coreutils don't dispatch through argv[0] like traditional multicall binaries, breaking symlink invocations. On the Ecto side, fragment queries just got more flexible [4] with support for selecting specific columns from fragment sources, extending query composability for complex SQL patterns.
One email a day. Unsubscribe in one click.
What actually shipped in Elixir & Phoenix, written up every day — commits, pull requests, releases, and security advisories.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Update Elixir if you use --profile time flag for compiler profiling elixir-lang/elixir [plan]
- → Review String.reverse/1 usage if handling binary data with potential UTF8 corruption elixir-lang/elixir [monitor]
- → Test System.cmd/3 symlink calls if deploying to Ubuntu 26.04 elixir-lang/elixir [plan]
References
- [1] Fix elixirc --profile time switch argv parsing (#15647) elixir-lang/elixir
- [2] Fix String.reverse/1 grapheme ordering around invalid utf8 bytes (#15645) elixir-lang/elixir
- [3] Fix System.cmd/3 unit test that fails on Ubuntu 26.04 (#15646) elixir-lang/elixir
- [4] Allow selecting fragment source with columns (#4760) elixir-ecto/ecto