Discover this podcast and so much more

Podcasts are free to enjoy without a subscription. We also offer ebooks, audiobooks, and so much more for just $11.99/month.

60: Compile Faster with Marc-André Lafortune

60: Compile Faster with Marc-André Lafortune

FromThinking Elixir Podcast


60: Compile Faster with Marc-André Lafortune

FromThinking Elixir Podcast

ratings:
Length:
43 minutes
Released:
Aug 17, 2021
Format:
Podcast episode

Description

We talk with Marc-André Lafortune about reducing Elixir project compile times. On larger projects, when a single file like a view template is changed and over 100 files get recompiled, there is something wrong. Marc-André explains how he identified the problems in his project and contributed to Elixir’s mix xref tool making it easier for us to find those problems in our own projects! We cover how these tooling improvements were used to improve the upcoming Phoenix 1.6 and Elixir 1.13! An additional mix xref flag was added to run CI checks on our code to prevent accidentally adding code that slows our compile times.
Show Notes online - http://podcast.thinkingelixir.com/60 (http://podcast.thinkingelixir.com/60)
Elixir Community News
- https://insights.stackoverflow.com/survey/2021#most-loved-dreaded-and-wanted-language-love-dread (https://insights.stackoverflow.com/survey/2021#most-loved-dreaded-and-wanted-language-love-dread) – Elixir is number 4 among the "most loved" languages on Stack Overflow's developer survey
- https://insights.stackoverflow.com/survey/2021#section-top-paying-technologies-top-paying-technologies (https://insights.stackoverflow.com/survey/2021#section-top-paying-technologies-top-paying-technologies) – Elixir is number 3 in highest paid languages on Stack Overflow's developer survey
- https://github.com/nvim-treesitter/nvim-treesitter/pull/1645 (https://github.com/nvim-treesitter/nvim-treesitter/pull/1645) – Neovim adds tree-sitter (a syntax parser) support for the Surface library
- https://github.com/surface-ui/surface_tailwind/issues/1#issuecomment-884981076 (https://github.com/surface-ui/surface_tailwind/issues/1#issuecomment-884981076) – Surface Catalogue to continue and may redesign the UI using TailwindCSS
- https://github.com/phoenixframework/phoenix/issues/4403#issuecomment-895354673 (https://github.com/phoenixframework/phoenix/issues/4403#issuecomment-895354673) – Phoenix 1.6 possibly released this week?
Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com)
Discussion Resources
- https://twitter.com/josevalim/status/1421912595456569351 (https://twitter.com/josevalim/status/1421912595456569351) – Thread talks about the change
- https://groups.google.com/g/elixir-lang-core/c/Hmg5y8S3v4E/m/FVK50RWBAQAJ?pli=1 (https://groups.google.com/g/elixir-lang-core/c/Hmg5y8S3v4E/m/FVK50RWBAQAJ?pli=1) – Elixir core mailing list where feature was discussed
- https://hexdocs.pm/mix/master/Mix.Tasks.Xref.html#module-understanding-the-printed-graph (https://hexdocs.pm/mix/master/Mix.Tasks.Xref.html#module-understanding-the-printed-graph)
- https://github.com/elixir-lang/elixir/pull/11044 (https://github.com/elixir-lang/elixir/pull/11044) – Add "--label compile-connected" option to mix xref graph
- https://github.com/elixir-lang/elixir/pull/11048 (https://github.com/elixir-lang/elixir/pull/11048) – Add "--fail-above" option to mix xref making it good for CI systems
- https://github.com/elixir-lang/elixir/pull/11049 (https://github.com/elixir-lang/elixir/pull/11049) – Support multiple sinks and sources in mix xref graph
- https://github.com/elixir-lang/elixir/pull/11162 (https://github.com/elixir-lang/elixir/pull/11162) – Update docs
- https://github.com/elixir-lang/elixir/pull/11080 (https://github.com/elixir-lang/elixir/pull/11080) – Rely on modification time and hash to determine modified sources
- https://dashbit.co/blog/speeding-up-re-compilation-of-elixir-projects (https://dashbit.co/blog/speeding-up-re-compilation-of-elixir-projects) – Blog post on recompilations
- https://github.com/phoenixframework/phoenix/issues/4408 (https://github.com/phoenixframework/phoenix/issues/4408) – Example 1 of sneaky macros introducing compile-time dependencies
- https://github.com/phoenixframework/phoenix/issues/4409 (https://github.com/phoenixframework/phoenix/issues/4409) – Example 2 of sneaky macros introducing
Released:
Aug 17, 2021
Format:
Podcast episode

Titles in the series (100)

The Thinking Elixir podcast is a weekly show where we talk about the Elixir programming language and the community around it. We cover news and interview guests to learn more about projects and developments in the community. Whether you are already experienced with Elixir or just exploring the language, this show is created with you in mind. We discuss community news, Functional Programming, transitioning from OOP, coding conventions, and more. Guests visit the show to help challenge our assumptions, learn about new developments and grow in the process. Subscribe to join us on this journey!