Elixir v1.20 released: now a gradually typed language
Elixir v1.20 introduces a gradually typed language feature, allowing type inference and checking without requiring type annotations. This update aims to enhance code reliability by identifying dead code and verified bugs efficiently. The new dynamic() type provides flexibility while maintaining developer-friendly error reporting.
- ▪Elixir v1.20 completes its first milestone in type system development, enabling type inference and gradual type checking.
- ▪The dynamic() type in Elixir allows for runtime type checking without introducing typing annotations.
- ▪Elixir's type system aims to minimize false positives while effectively identifying verified bugs in existing programs.
Opening excerpt (first ~120 words) tap to expand
In 2022, we announced the effort to add set-theoretic types to Elixir. In June 2023, we published an award winning paper on Elixir’s type system design and said our work was transitioning from research to development. With Elixir v1.20, we have completed our first development milestone which is to perform type inference and gradually type check every Elixir program, without introducing type annotations. This means Elixir increasingly reports dead code and verified bugs: typing violations that are guaranteed to fail at runtime if executed. Elixir can find verified bugs in existing programs efficiently, without introducing developer overhead, and with an extremely low false positives rate.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at The Elixir programming language.