Skip to content

Commit 447427a

Browse files
committed
Update CHANGELOG
1 parent a9ce579 commit 447427a

1 file changed

Lines changed: 41 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
# Changelog for Elixir v1.20
88

9+
This release requires Erlang/OTP 27+ and is compatible with Erlang/OTP 29.
10+
911
## Type system improvements
1012

1113
This release includes type inference of all constructs.
@@ -173,6 +175,45 @@ The code above has a type violation, which is now caught by the type system:
173175

174176
The type system was made possible thanks to a partnership between [CNRS](https://www.cnrs.fr/) and [Remote](https://remote.com/). The development work is currently sponsored by [Fresha](https://www.fresha.com/) and [Tidewave](https://tidewave.ai/).
175177

178+
## v1.20.0-rc.4
179+
180+
This release requires Erlang/OTP 27+ and is compatible with Erlang/OTP 29.
181+
182+
### 1. Enhancements
183+
184+
#### Elixir
185+
186+
* [Code] Add `:dbg_callback` option to eval functions
187+
* [Code.Fragment] Allow preserving sigil metadata in `container_cursor_to_quoted`
188+
* [File] Add support for [:raw] opts in `File.read/2`
189+
* [Kernel] Show undefined function errors even when missing variables (this helps debug errors caused when the developer forgets to require a macro)
190+
* [PartitionSupervisor] Support via tuples in `count_children/1` and `stop/3`
191+
* [Process] Add `Process.get_label/1`
192+
193+
#### Mix
194+
195+
* [mix deps] Allow overriding specific dependencies in `:override`
196+
197+
### 2. Bug fixes
198+
199+
#### Elixir
200+
201+
* [Integer] Fix `Integer.extended_gcd/2` returning negative GCD for zero base cases
202+
* [Integer] Raise when negative out-of-range digits are given to `Integer.undigits/2`
203+
* [Kernel] Protocols should not add compile-time dependencies on `Any` implementation
204+
* [Kernel] Ensure structs trigger recompilation for type checking purposes (regression)
205+
* [Kernel] Ensure type information propagate across `hd/tl` in guards (regression)
206+
* [Keyword] Raise `ArgumentError` in `Keyword.from_keys/2` for non-atom keys
207+
* [URI] Fix `URI.merge` leaking `:+` marker when base path is empty string
208+
209+
#### Mix
210+
211+
* [mix deps] Use config files to pass project state in `mix deps.partition` to avoid argv limits on Windows
212+
* [mix compile] Fix compile env change triggering full recompilation of path dependencies
213+
* [mix compile] Add a build lock around protocol consolidation in umbrellas
214+
* [mix compile] Ensure compilation of sibling deps do not mark path deps as changed
215+
* [mix test] Fix `--warnings-as-errors` not catching misnamed test file warnings
216+
176217
## v1.20.0-rc.3 (2026-03-09)
177218

178219
### 1. Enhancements
@@ -205,7 +246,6 @@ The type system was made possible thanks to a partnership between [CNRS](https:/
205246
* [Code] Add `module_definition: :interpreted` option to `Code` which allows module definitions to be evaluated instead of compiled. In some applications/architectures, this can lead to drastic improvements to compilation times. Note this does not affect the generated `.beam` file, which will have the same performance/behaviour as before
206247
* [Code] Make module purging opt-in and move temporary module deletion to the background to speed up compilation times
207248
* [Integer] Add `Integer.popcount/1`
208-
* [Kernel] Move struct validation in patterns and updates to type checker, this means adding and remove struct fields will cause fewer files to be recompiled
209249
* [Kernel] Add type inference across clauses. For example, if one clause says `x when is_integer(x)`, then the next clause may no longer be an integer
210250
* [Kernel] Detect and warn on redundant clauses
211251
* [List] Add `List.first!/1` and `List.last!/1`

0 commit comments

Comments
 (0)