Skip to main content

Elixir 1.20.3

Release Date: August 4, 2026

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 ++/2 operator and for the return type of send/2.
  • Kernel — Improved type refinement for and/2 and or/2 expressions.
  • Kernel — Fixed type checking of Map.put/3 on 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/after timeout expressions.
  • Kernel — Fixed rendering of inferred types that contain unions of static and dynamic functions.
  • Kernel — Ensured typing errors in :maps.values/1 reference the correct function.
  • Kernel%_{} patterns are now marked as precise so subsequent redundant struct clauses are detected.
  • elixirc — Fixed parsing of the --profile time option.
  • IEx — Fixed break!/1 when 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.

What is New?

By continuing to use the site, you agree to the use of cookies.