This release adds basic support for Erlang/OTP 26. When migrating
to Erlang/OTP 26, keep it mind it changes how maps are stored
internally and they will be printed and traversed in a different
order (note maps never provided a guarantee of their order).
To aid migration, this release adds :sort_maps to inspect
custom options, in case you want to sort them before inspection:
inspect(map, custom_options: [sort_maps: true])
Enhancements
Elixir
[Inspect] Add :sort_maps to Inspect.Opts.custom_options
IEx
[IEx] Support shell history in Erlang/OTP 26+
Mix
[mix compile.elixir] Optimize application tracer
Bug fixes
Elixir
[Code] Properly handle blocks with comments in all cases in Code.quoted_to_string_with_comments/2
[Kernel] Fix debug_info/4 when returning core_v1
[Kernel] Store complete path on quote keep: true to avoid invalid stacktraces
[Kernel] Fix column count when tokenizing escaped interpolations
In asdf I can see 1.14.4 for OTP 23-25, but not for 26. Is it a fault on bob builder side? I have tried to manually download https://repo.hex.pm/builds/elixir/v1.14.4-otp-26.zip, but I got an access denied error.
Edit: Also the release on Github does not include version for OTP 26. Didn’t checked, but maybe someone forgot to update build matrix?
I have tried to compile a new project, generated by phx.new command, but I got:
===> Analyzing applications…
===> Compiling cowlib
===> Compiling src/cow_sse.erl failed
src/cow_sse.erl:56:29: type variable ‘State’ is only used once (is unbound)
Install Erlang 26 RC2 and compile Elixir main branch (I did that right before first reply)
Create a test script with only Mix.install call and simply run it
$ asdf current
elixir ref:main $HOME/.tool-versions
erlang 26.0-rc2 $HOME/.tool-versions
$ cat test.exs
Mix.install [:cowboy]
$ elixir test.exs
Resolving Hex dependencies...
Resolution completed in 0.152s
New:
cowboy 2.9.0
cowlib 2.11.0
ranch 1.8.0
* Getting cowboy (Hex package)
* Getting cowlib (Hex package)
* Getting ranch (Hex package)
You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more
===> Analyzing applications...
===> Compiling ranch
===> Analyzing applications...
===> Compiling cowlib
===> Compiling src/cow_sse.erl failed
src/cow_sse.erl:56:29: type variable 'State' is only used once (is unbound)
** (Mix.Error) Could not compile dependency :cowlib, "$HOME/.asdf/installs/elixir/ref-main/.mix/elixir/1-15/rebar3 bare compile --paths $HOME/.cache/mix/installs/elixir-1.15.0-dev-erts-14.0/6c3f4dbc449833fbf9e38467f547f6c8/_build/dev/lib/*/ebin" command failed. Errors may have been logged above. You may run Mix.install/2 to try again or change the arguments to Mix.install/2 to try another version
(mix 1.15.0-dev) lib/mix.ex:538: Mix.raise/2
(mix 1.15.0-dev) lib/mix/tasks/deps.compile.ex:310: Mix.Tasks.Deps.Compile.do_command/5
(mix 1.15.0-dev) lib/mix/tasks/deps.compile.ex:220: Mix.Tasks.Deps.Compile.do_rebar3/2
(mix 1.15.0-dev) lib/mix/tasks/deps.compile.ex:96: anonymous fn/4 in Mix.Tasks.Deps.Compile.compile/2
(elixir 1.15.0-dev) lib/enum.ex:1685: Enum."-map/2-lists^map/1-0-"/2
(elixir 1.15.0-dev) lib/enum.ex:1685: Enum."-map/2-lists^map/1-0-"/2
(mix 1.15.0-dev) lib/mix/tasks/deps.compile.ex:80: Mix.Tasks.Deps.Compile.compile/2
(mix 1.15.0-dev) lib/mix/tasks/deps.loadpaths.ex:82: Mix.Tasks.Deps.Loadpaths.deps_check/2
For now, you can either forcibly bump cowlib by declaring 2.9.1 with override or wait until there is a new cowboy version out. I have also asked the Erlang/OTP team if it can be a warning for now.