Elixir 1.20.3
Elixir 1.20.3 was released on August 4, 2026 as a patch release for the 1.20 series. The update concentrates on the compiler type checker, delivering faster compilation times and a broad set of type-checking corrections across the Kernel module.
Overview
This maintenance release contains one enhancement and a series of bug fixes, most of them centered on the type system refined throughout the Elixir 1.20 cycle. No breaking changes are included, and existing projects can upgrade in place.
Enhancements
- Kernel.ParallelCompiler — Type checker cache operations are now batched, reducing redundant work during parallel compilation and improving overall compilation times for projects that lean heavily on typed code.
Bug Fixes
- Kernel — Improved type precision for the
++/2operator and for the return type ofsend/2. - Kernel — Improved type refinement for
and/2andor/2expressions. - Kernel — Fixed type checking of
Map.put/3on empty map types. - Kernel — Fixed type checking of tuple insertion on equivalent tuple types and on gradual types with empty static parts.
- Kernel — Fixed variable refinements leaking from invalid
receive/aftertimeout expressions. - Kernel — Fixed rendering of inferred types that contain unions of static and dynamic functions.
- Kernel — Ensured typing errors in
:maps.values/1reference the correct function. - Kernel —
%_{}patterns are now marked as precise so subsequent redundant struct clauses are detected. - elixirc — Fixed parsing of the
--profile timeoption. - IEx — Fixed
break!/1when used with unknown expressions.
Upgrade Notes
Elixir 1.20.3 is a drop-in upgrade for projects already running Elixir 1.20.x. Install it through your usual tooling, such as asdf, mise, or the official installers. Teams on older Elixir versions should review the 1.20 release notes before upgrading.