Today’s post marks the first in a new series bringing you the latest changes to the Elixir language. We’d love to hear from you about what you’d like to see in future posts so join the conversation on the Elixir Forum thread.

So what’s in master? Let’s have a look:

  1. Disagreements about formatting are a thing of the past! As part of 1.6 we’ve added a code formatter to Elixir. The formatter is available in projects via the mix task format. The community already helped format all files in the Elixir codebase and you can give the formatter a try now.

  2. The all new DynamicSupervisor behaviour is now available on master. Unlike the traditional Supervisor strategies, the DynamicSupervisor allows children to be added dynamically via start_child/2. For more on the DynamicSupervisor check out the documentation.

  3. Look for changes in compiler diagnostics as part of this new release that make integration with editors easier. An all new Mix.Task.Compiler behaviour will ensure existing and future compilers meet a common specification and return adequate diagnostics. These changes will enable editors to provide better support for Elixir code compilation. Jake Becker, one of the features contributors, outlined these benefits in his blog post ElixirLS 0.2: Better builds, code formatter, and incremental Dialyzer.

  4. Improvements to the mix xref task should make it easier for developers to make sense of the output. These improvements include the new graph --format stats command and a new option for all xref commands --include-siblings, for umbrella projects. For more information on xref changes checkout the CHANGELOG entry.

  5. Stream data and property testing will be joining Elixir core in a future release. Not only will these be useful to users of Elixir but they’ll be used to make Elixir itself better! See our previous announcement for more information and give the stream_data library a try.

Think we missed something? Let us know at the Elixir Forum.