1. Bug fixes
- [Kernel] Fix a bug where custom types were printed as built-in types
- [Kernel] Don’t add compile-time dependency on
- [Kernel] Add line numbers to warnings on deprecated imports
- [Kernel] Report the correct line number when raising inside a macro
- [Task] Include callers in translated Logger metadata for Task
- [Task] Fix Task PID and caller in Task Supervisor reports
- [ExUnit.Formatter] Avoid crashes when diffing guards when the pattern does not match
- [ExUnit.Formatter] Also blame exceptions that come from linked and trapped exits
- [IEx.Helpers] Do not crash when printing a type that cannot be code formatted
- [mix app.start] Fix reading
.app file located in archives (
- [mix local.hex] Provide more guidance when Hex can’t be installed
- [mix release] Properly encode config in releases
- Precompiled.zip SHA1: 5b400c829c4f239ac89a7eb97aac642b961f38fd
- Precompiled.zip SHA512: 9727ae96d187d8b64e471ff0bb5694fcd1009cdcfd8b91a6b78b7542bb71fca59869d8440bb66a2523a6fec025f1d23394e7578674b942274c52b44e19ba2d43
- Docs.zip SHA1: 178f08724c63496878b6e427467f650f03cd978c
- Docs.zip SHA512: cefaf0371a9751d37d6d1181f910a23d6cc627f7b77fe7fa1b303a9b4769d1fb2a9bbeea54566109fa5acf8e0455a5a44cb3ac9ccb9e968d92610b869d15d27c
There doesn’t seem to be Elixir
1.10.4-otp-23 available through
asdf yet even though the versions for OTP 21 and OTP 22 are already in place. Any problem with that particular build?
Hmm … I have already installed it without any problem. Please recheck it.
I did it about 10 times and made sure to refresh
asdf every time, but when doing
asdf list-all elixir I only see
1.10.4-otp-22. No 23.
curl -s https://repo.hex.pm/builds/elixir/builds.txt | grep 'v1.10.4' also doesn’t show 23 in the list.
1.10.4, without any OTP qualifier at the end of the name, is the OTP 23 variant?
ok, my bad - I have just a script to automatically update
Elixir and I did not added a simple check for specific
otp version, so I though that it was correct, sorry for that
Anyway you are always able to install it using git reference (
1.10.4 tag when
current Erlang is set to
Hm, can you clarify on that? Not following. I am more interested in a version manager though.
In any case, I am not in a rush but just found it weird that OTP 21 and OTP 22 builds were available practically at the time of the post but OTP 23 is not there so just making sure their build process hasn’t missed it.
At start make sure that
asdf current erlang is set to
23.x and then use this command:
asdf install elixir ref:v1.10.4. It would compile from source, but in
Elixir case is not a really big problem since it does not take much time to compile.
Elixir git tag attached to specific commit, you can also use branch name like
master (which is automaticcally attached to latest commit in specific branch) or even specify any commit reference (for example to check some PR).
I can confirm that there’s no 1.10.4-otp-23 on Hex yet. @josevalim who should we we discuss this issue with?
I think the issue is here in the mapping of OTP versions and Elixir precompiled builds in the Bob builder: https://github.com/hexpm/bob/blob/acd0d66213066e9b42f318b0da0818c01bb11c34/lib/bob/job/build_elixir.ex#L61
That said I thought I remember an earlier Elixir 1.10.x which was incompatible with OTP-23 and don’t know enough about that to make a simple PR.
@josevalim described it here:
Therefore, Elixir v1.11 will be released in October 2020. If there are any important bug fixes, we will continue releasing patch versions for Elixir v1.10. On that note, the latest Elixir v1.10.3 is already compatible with Erlang/OTP 23.
Source: Elixir v1.11 will be released in October 2020
So we have a problem with missing correct clasule for reference
v1.10.4 which means it fallbacks to
"v1.10." <> _ which then specifies such
@josevalim I would like to suggest using
Version.compare/2 which should reduce code. Just for example instead of:
def elixir_to_otp(ref) do
case ref do
"v0" <> _ -> ["17.3"]
"v1.0.0-" <> _ -> ["17.3"]
"v1.0.0" -> ["17.3"]
"v1.0.1" -> ["17.3"]
"v1.0.2" -> ["17.3"]
"v1.0.3" -> ["17.3"]
we could just write code like this one:
def elixir_to_otp("v" <> version) do
Version.compare(version, "1.0.4") == :lt -> ["17.3"]