This release requires Erlang/OTP 27+ and is compatible with Erlang/OTP 29.
1. Enhancements
Elixir
- [Code] Add
:dbg_callbackoption to eval functions - [Code.Fragment] Allow preserving sigil metadata in
container_cursor_to_quoted - [File] Add support for
[:raw]opts inFile.read/2 - [Kernel] Show undefined function errors even when missing variables (this helps debug errors caused when the developer forgets to require a macro)
- [Module] Purge and delete modules if
after_verify/2callback fails - [PartitionSupervisor] Support via tuples in
count_children/1andstop/3 - [Process] Add
Process.get_label/1
Mix
- [mix deps] Allow overriding specific dependencies in
:override
2. Bug fixes
Elixir
- [Integer] Fix
Integer.extended_gcd/2returning negative GCD for zero base cases - [Integer] Raise when negative out-of-range digits are given to
Integer.undigits/2 - [Kernel] Protocols should not add compile-time dependencies on
Anyimplementation - [Kernel] Ensure structs trigger recompilation for type checking purposes (regression)
- [Kernel] Ensure type information propagate across
hd/tlin guards (regression) - [Keyword] Raise
ArgumentErrorinKeyword.from_keys/2for non-atom keys - [URI] Fix
URI.mergeleaking:+marker when base path is empty string
ExUnit
- [ExUnit.Diff] Avoid false positives when diffing bitstrings
Mix
- [mix deps] Use config files to pass project state to avoid argv limits on Windows when using
MIX_OS_DEPS_COMPILE_PARTITION_COUNT - [mix compile] Fix compile env change triggering full recompilation of path dependencies
- [mix compile] Add a build lock around protocol consolidation in umbrellas
- [mix compile] Ensure compilation of sibling deps do not mark path deps as changed
- [mix test] Fix
--warnings-as-errorsnot catching misnamed test file warnings