Thinking Elixir Podcast

60: Compile Faster with Marc-André Lafortune


Listen Later

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

Elixir Community News

  • 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 – Elixir is number 3 in highest paid languages on Stack Overflow's developer survey
  • 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 – Surface Catalogue to continue and may redesign the UI using TailwindCSS
  • 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 or email at [email protected]

    Discussion Resources

    • 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 – Elixir core mailing list where feature was discussed
    • https://hexdocs.pm/mix/master/Mix.Tasks.Xref.html#module-understanding-the-printed-graph
    • 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 – Add "--fail-above" option to mix xref making it good for CI systems
    • 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 – Update docs
    • 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 – Blog post on recompilations
    • https://github.com/phoenixframework/phoenix/issues/4408 – Example 1 of sneaky macros introducing compile-time dependencies
    • https://github.com/phoenixframework/phoenix/issues/4409 – Example 2 of sneaky macros introducing compile-time dependencies
    • https://exercism.io/tracks/elixir
    • https://github.com/rbenv/rbenv
    • https://rvm.io/
    • https://www.super.mx/
    • https://xkcd.com/303/
    • --label compile-connected
    • --fail-above
    • Guest Information

      • https://twitter.com/malafortune – on Twitter
      • https://github.com/marcandre/ – on Github
      • http://blog.marc-andre.ca/ – Blog
      • Find us online

        • Message the show - @ThinkingElixir
        • Email the show - [email protected]
        • Mark Ericksen - @brainlid
        • David Bernheisel - @bernheisel
        • Cade Ward - @cadebward
        • ...more
          View all episodesView all episodes
          Download on the App Store

          Thinking Elixir PodcastBy ThinkingElixir.com

          • 4.9
          • 4.9
          • 4.9
          • 4.9
          • 4.9

          4.9

          32 ratings


          More shows like Thinking Elixir Podcast

          View all
          Software Engineering Radio by se-radio@computer.org

          Software Engineering Radio

          271 Listeners

          The Changelog: Software Development, Open Source by Changelog Media

          The Changelog: Software Development, Open Source

          289 Listeners

          Software Engineering Daily by Software Engineering Daily

          Software Engineering Daily

          625 Listeners

          Talk Python To Me by Michael Kennedy

          Talk Python To Me

          585 Listeners

          Thoughtworks Technology Podcast by Thoughtworks

          Thoughtworks Technology Podcast

          43 Listeners

          Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

          Syntax - Tasty Web Development Treats

          988 Listeners

          REWORK by 37signals

          REWORK

          210 Listeners

          CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

          CoRecursive: Coding Stories

          190 Listeners

          Elixir Wizards by SmartLogic LLC

          Elixir Wizards

          22 Listeners

          The Stack Overflow Podcast by The Stack Overflow Podcast

          The Stack Overflow Podcast

          63 Listeners

          Signals and Threads by Jane Street

          Signals and Threads

          72 Listeners

          Beam Radio by Lars Wikman

          Beam Radio

          11 Listeners

          Oxide and Friends by Oxide Computer Company

          Oxide and Friends

          62 Listeners

          Elixir Mentor by Jacob Luetzow

          Elixir Mentor

          4 Listeners

          Limitless Podcast by Limitless by Bankless

          Limitless Podcast

          75 Listeners