v1.18.4
This release includes initial support for Erlang/OTP 28, for those who want to try it out. In such cases, you may use Elixir v1.18.4 precompiled for Erlang/OTP 27, as it is binary compatible with Erlang/OTP 28. Note, however, that Erlang/OTP 28 no longer allows regexes to be defined in the module body and interpolated into an attribute. If you do this:
@some_attribute ~r/foo/
def some_fun, do: @some_attributeYou must rewrite it to:
def some_fun, do: ~r/foo/1. Enhancements
IEx
- [IEx.Helpers] Add
IEx.Helpers.process_info/1which prints process information
Mix
- [mix compile] Support the
--no-listenersoption - [mix local] Retry HTTP requests with disabled middlebox comp mode depending on the failure reason
- [mix local.hex] Install Hex per OTP release
- [mix local.rebar] Install Hex per OTP release
- [mix run] Support the
--no-listenersoption
2. Bug fixes
Elixir
- [Kernel] Emit trace events for
@on_definitioncallbacks - [Kernel] Emit trace events for
@on_loadcallbacks - [Kernel] Emit trace events for
supercalls - [Kernel] Emit trace events for imported function calls
- [Kernel] Optimize map unions to avoid building long lists
- [Kernel] Do not crash when type checking nested bitstrings in patterns
- [Kernel] Do not crash when non-binary bitstring is given as struct default value
- [Kernel] Recompile regexes when escaped from module attributes for Erlang/OTP 28 compatibility
- [Kernel] Preserve backwards compatibility in
elixir_erl
Mix
- [mix deps.get] Ensure git checkout works when there are untracked files in the dependency
- [mix loadpaths] Do not run listeners when not checking the deps