github elixir-lang/elixir v1.20.0-rc.4

latest release: main-latest
pre-release13 hours ago

This release requires Erlang/OTP 27+ and is compatible with Erlang/OTP 29.

1. Enhancements

Elixir

  • [Code] Add :dbg_callback option to eval functions
  • [Code.Fragment] Allow preserving sigil metadata in container_cursor_to_quoted
  • [File] Add support for [:raw] opts in File.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/2 callback fails
  • [PartitionSupervisor] Support via tuples in count_children/1 and stop/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/2 returning 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 Any implementation
  • [Kernel] Ensure structs trigger recompilation for type checking purposes (regression)
  • [Kernel] Ensure type information propagate across hd/tl in guards (regression)
  • [Keyword] Raise ArgumentError in Keyword.from_keys/2 for non-atom keys
  • [URI] Fix URI.merge leaking :+ 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-errors not catching misnamed test file warnings

Don't miss a new elixir release

NewReleases is sending notifications on new releases.