Elixir's code-generation capabilities require a sophisticated compiler with complex dependency tracking. Given such complexity, it is often unclear why sometimes changing a single line in a single file triggers the recompilation of 100 other files. This talk aims to clarify that.
Most of the content presented in this talk was "discovered" while struggling with recompilations of 500+ files in a 2000+ .beam file Phoenix app. We learned things the hard way so that you don't have to.
In this talk we are going to take a deep dive into what happens when you type "mix compile", why and when modules need to be recompiled, and how compilation behavior interacts with umbrella apps. You will learn how to "debug" recompilation problems, which tools to use, and how to avoid common pitfalls.
I'm a Brazilian software developer focused on backend, operations and databases, working with Elixir since 2015. I worked in companies both very large and very small. I'm also a frequent speaker in technology events in Brazil, and have spoken numerous times about elixir, both locally and abroad.
Currently, I work remotely for Telnyx LLC, a Chicago based company whose mission is to democratize global comunications.
When I'm not talking about software, I like to cook, make cocktails and dance.