Go offline with the Player FM app!
Set Theoretic Types in Elixir with José Valim
Manage episode 493663247 series 2493466
Elixir creator José Valim returns to the podcast to unpack the latest developments in Elixir’s set-theoretic type system and how it is slotting into existing code without requiring annotations. We discuss familiar compiler warnings, new warnings based on inferred types, a phased rollout in v1.19/v1.20 that preserves backward compatibility, performance profiling the type checks across large codebases, and precise typing for maps as both records and dictionaries.
José also touches on CNRS academic collaborations, upcoming LSP/tooling enhancements, and future possibilities like optional annotations and guard-clause typing, all while keeping Elixir’s dynamic, developer-friendly experience front and center.
Key topics discussed in this episode:
- Set-theoretic typing (union, intersection, difference)
- Compiler-driven inference with zero annotations
- Phased rollout strategy in 1.19 and 1.20
- Performance profiling for large codebases
- Map typing as records and dictionaries
- Exhaustivity checks and behavioral typing in GenServers
- Language Server Protocol & tooling updates
- Future optional annotations and guard-clause typing
- CNRS collaboration for theoretical foundations
- Clear error messages and false-positive reduction
- Community-driven feedback and iterative improvements
Links mentioned:
https://github.com/elixir-nx
https://livebook.dev/
https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html
https://hexdocs.pm/elixir/main/gradual-set-theoretic-types.html
https://hexdocs.pm/dialyxir/0.4.0/readme.html
https://remote.com/
Draw the Owl meme: https://i.imgur.com/rCr9A.png
https://dashbit.co/blog/data-evolution-with-set-theoretic-types
https://hexdocs.pm/ecto/Ecto.html
https://github.com/elixir-lsp/elixir-ls
Special Guest: José Valim.
197 episodes
Manage episode 493663247 series 2493466
Elixir creator José Valim returns to the podcast to unpack the latest developments in Elixir’s set-theoretic type system and how it is slotting into existing code without requiring annotations. We discuss familiar compiler warnings, new warnings based on inferred types, a phased rollout in v1.19/v1.20 that preserves backward compatibility, performance profiling the type checks across large codebases, and precise typing for maps as both records and dictionaries.
José also touches on CNRS academic collaborations, upcoming LSP/tooling enhancements, and future possibilities like optional annotations and guard-clause typing, all while keeping Elixir’s dynamic, developer-friendly experience front and center.
Key topics discussed in this episode:
- Set-theoretic typing (union, intersection, difference)
- Compiler-driven inference with zero annotations
- Phased rollout strategy in 1.19 and 1.20
- Performance profiling for large codebases
- Map typing as records and dictionaries
- Exhaustivity checks and behavioral typing in GenServers
- Language Server Protocol & tooling updates
- Future optional annotations and guard-clause typing
- CNRS collaboration for theoretical foundations
- Clear error messages and false-positive reduction
- Community-driven feedback and iterative improvements
Links mentioned:
https://github.com/elixir-nx
https://livebook.dev/
https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html
https://hexdocs.pm/elixir/main/gradual-set-theoretic-types.html
https://hexdocs.pm/dialyxir/0.4.0/readme.html
https://remote.com/
Draw the Owl meme: https://i.imgur.com/rCr9A.png
https://dashbit.co/blog/data-evolution-with-set-theoretic-types
https://hexdocs.pm/ecto/Ecto.html
https://github.com/elixir-lsp/elixir-ls
Special Guest: José Valim.
197 episodes
All episodes
×Welcome to Player FM!
Player FM is scanning the web for high-quality podcasts for you to enjoy right now. It's the best podcast app and works on Android, iPhone, and the web. Signup to sync subscriptions across devices.