Elixir

Elixir

Elixir Core Team

Elixir v1.20.0-rc.6 released

Hi everyone, this release includes type inference across applications and is our last step before v1.20. Please give it a try!

Here are some things to try out:

  1. Before upgrading, run mix compile --profile time --force and see how long it takes
  2. Run mix compile --profile time --force after upgrading and report

Please report the times and your Elixir version for each.

If you have some additional seconds, please try the following changes to your mix.exs. Run mix compile --profile time --force and report your times for each scenario independently, only on -rc.6:

  1. elixirc_options: [infer_signatures: [:elixir]] (This makes it so we only use Elixir’s stdlib to infer signatures. I do not recommend it in practice but measuring it will help assess the impact of inference across apps)

  2. elixirc_options: [module_definition: :interpreted] (Interprete module definitions when compiling modules, does not impact produced .beam files, it is OK to use it in prod)

Full release notes here: Release v1.20.0-rc.6 · elixir-lang/elixir · GitHub

Thank you!

First Post!

woylie

woylie

Application A

Elixir 1.19.5 (compiled with Erlang/OTP 28)
elixirc_options: [infer_signatures: [:elixir]]

[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 345 modules in 6237ms
[profile] Finished writing modules to disk in 51ms
[profile] Finished after compile callback in 970ms
[profile] Finished group pass check of 345 modules in 223ms

Elixir 1.19.5 (compiled with Erlang/OTP 28)

[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 345 modules in 6319ms
[profile] Finished writing modules to disk in 37ms
[profile] Finished after compile callback in 1009ms
[profile] Finished group pass check of 345 modules in 219ms

Elixir 1.20.0-rc.5 (compiled with Erlang/OTP 28)
elixirc_options: [infer_signatures: [:elixir]]
[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 345 modules in 6767ms
[profile] Finished writing modules to disk in 58ms
[profile] Finished after compile callback in 485ms
[profile] Finished group pass check of 345 modules in 502ms

Elixir 1.20.0-rc.5 (compiled with Erlang/OTP 28)
elixirc_options: [module_definition: :interpreted]
[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 345 modules in 6044ms
[profile] Finished writing modules to disk in 35ms
[profile] Finished after compile callback in 645ms
[profile] Finished group pass check of 345 modules in 463ms

Elixir 1.20.0-rc.6 (compiled with Erlang/OTP 28)
elixirc_options: [infer_signatures: [:elixir]]

[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 345 modules in 6208ms
[profile] Finished writing modules to disk in 57ms
[profile] Finished after compile callback in 655ms
[profile] Finished group pass check of 345 modules in 492ms

Elixir 1.20.0-rc.6 (compiled with Erlang/OTP 28)
elixirc_options: [module_definition: :interpreted]

[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 345 modules in 6402ms
[profile] Finished writing modules to disk in 38ms
[profile] Finished after compile callback in 433ms
[profile] Finished group pass check of 345 modules in 583ms

Application B

Elixir 1.19.5 (compiled with Erlang/OTP 28)
elixirc_options: [infer_signatures: [:elixir]]

[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 731 modules in 11659ms
[profile] Finished writing modules to disk in 66ms
[profile] Finished after compile callback in 2273ms
[profile] Finished group pass check of 731 modules in 672ms

Elixir 1.19.5 (compiled with Erlang/OTP 28)

[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 731 modules in 13123ms
[profile] Finished writing modules to disk in 132ms
[profile] Finished after compile callback in 2667ms
[profile] Finished group pass check of 731 modules in 768ms

Elixir 1.20.0-rc.5 (compiled with Erlang/OTP 28)
elixirc_options: [infer_signatures: [:elixir]]

[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 731 modules in 11565ms
[profile] Finished writing modules to disk in 83ms
[profile] Finished after compile callback in 576ms
[profile] Finished group pass check of 731 modules in 1931ms

Elixir 1.20.0-rc.5 (compiled with Erlang/OTP 28)
elixirc_options: [module_definition: :interpreted]

[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 731 modules in 11416ms
[profile] Finished writing modules to disk in 73ms
[profile] Finished after compile callback in 737ms
[profile] Finished group pass check of 731 modules in 1894ms

Elixir 1.20.0-rc.6 (compiled with Erlang/OTP 28)
elixirc_options: [infer_signatures: [:elixir]]

[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 731 modules in 10993ms
[profile] Finished writing modules to disk in 60ms
[profile] Finished after compile callback in 712ms
[profile] Finished group pass check of 731 modules in 1664ms

Elixir 1.20.0-rc.6 (compiled with Erlang/OTP 28)
elixirc_options: [module_definition: :interpreted]

[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 731 modules in 11439ms
[profile] Finished writing modules to disk in 78ms
[profile] Finished after compile callback in 522ms
[profile] Finished group pass check of 731 modules in 2021ms

Most Liked

josevalim

josevalim

Creator of Elixir

Your application is much slower to compile, we can probably make it much faster. If you are willing to grant me access to debug it further, please reach out in private!

delitrem

delitrem

Hello. My application seems to compile forever with v1.20.0-rc.6 and Erlang 29.0 (everything is fine with the previous RC). Should I submit a new issue? Submitted a new issue.

josevalim

josevalim

Creator of Elixir

Correct! This has been fixed in the main and v1.20 branches!

Last Post!

fteschke

fteschke

1.19.5

[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 966 modules in 10652ms
[profile] Finished writing modules to disk in 62ms
[profile] Finished after compile callback in 1344ms
[profile] Finished group pass check of 966 modules in 532ms

1.20.0-rc.6

[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 966 modules in 11558ms
[profile] Finished writing modules to disk in 49ms
[profile] Finished after compile callback in 1940ms
[profile] Finished group pass check of 966 modules in 428ms

elixirc_options: [infer_signatures: [:elixir]]

[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 966 modules in 11825ms
[profile] Finished writing modules to disk in 55ms
[profile] Finished after compile callback in 491ms
[profile] Finished group pass check of 966 modules in 431ms

elixirc_options: [module_definition: :interpreted]

[profile] Finished cycle resolution in 0ms
[profile] Finished compilation cycle of 966 modules in 12048ms
[profile] Finished writing modules to disk in 58ms
[profile] Finished after compile callback in 674ms
[profile] Finished group pass check of 966 modules in 387ms

Where Next?

Popular in News Top

josevalim
Elixir v1.5.0-rc.0 has been released. This is a release candidate for the upcoming Elixir v1.5. It includes bug fixes, enhancements and ...
New
josevalim
Hello folks, There has been some doubts regarding StreamData and PropertyTesting in Elixir so we have decided to open up a thread to ans...
New
josevalim
It is a maintenance release, so nothing out of the ordinary. Please see the release notes for more information: Release v1.5.3 · elixir-...
New
josevalim
Hi everyone, We have just released the second release candidate for the next Elixir version: v1.7.0-rc.1. The CHANGELOG and precompiled...
New
Elixir
Release: Release v1.10.0 · elixir-lang/elixir · GitHub Support for Erlang/OTP 21+ Elixir v1.10 requires Erlang/OTP 21+, allowing Elixir ...
New
Elixir
Official announcement: Elixir v1.16 released - The Elixir programming language 1. Enhancements EEx [EEx] Include relative file informat...
New
Elixir
This release includes type inference of patterns to provide warnings for an initial set of constructs (binaries, maps, and atoms) within ...
New

Other popular topics Top

rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New

We're in Beta

About us Mission Statement