Erlang 27 not available in homebrew?

Is Erlang 27 stable for mac yet? I haven’t been able to update to 27 through homebrew. Downloading it directly from the website failed as well.

Might have to wait a couple weeks. The Erlang docs state:

The OS provided packages tend to not contain the latest version of Erlang/OTP. So Erlang Solutions provides up to date pre-built packages for the latest stable releases.

On a Mac I’d recommend asdf, which you can install via homebrew. Than you can install OTP 27 and a compatible version of Elixir, and have different versions per Elixir project.

4 Likes

Or mise which is a newer implementation based on asdf.

3 Likes

The homebrew script for Erlang failed when trying to update to 27.

So, someone needs to fix that. I would recommend putting DOC_TARGETS="man chunks" for both “make docs” and “make install-docs” in the homebrew script.

2 Likes

Thanks for mentioning mise.
What is the advantage of using it?
I am working with Juniors who need to develop on Windows WSL (I know…), and the install process seems to be more involved than asdf.

Otherwise I also feel asdf is easy, fast enough and up to date. I am running main elixir (18 dev with otp 27) in a project to try it out and there is no problem.

Besides the rant in that article about syntax, this is one of the main reasons:

These shims have terrible performance, adding ~120ms to every runtime call. mise activate does not use shims and instead updates PATH so that it doesn’t have any overhead when simply calling binaries. These shims are the main reason that I wrote this. Note that in the demo GIF at the top of this README that mise isn’t actually used when calling node -v for this reason. The performance is identical to running node without using mise.

Personally I also still use asdf and I like that in all years of using it I never had to debug it, it just works!

5 Likes

For what it’s worth, I tried working on this to make it possible to release Rebar3 with OTP-27 support with MacOS CI support and I keep getting:

=== Entering application stdlib
make[3]: Nothing to be done for `docs'.
make[3]: *** No rule to make target `man', needed by `docs'.  Stop.
make[2]: *** [docs] Error 2
make[1]: *** [docs] Error 2
make: *** [docs] Error 2

It works without the man target for docs (just chunks succeeds but neither do chunks man or man chunks), but fails with it consistently.

1 Like

That was unfortunate, I had thought it would work. Anyway, using only DOC_TARGETS=chunks amounts for the same thing in 27.0. We are however planning to bring back some man pages for 27.1 or 27.2 so it would have been good to be future proof.

Yeah, I also tried rtx/mise but I didn’t work as I wanted on the first try… and I spent less than 2 minutes debugging it before I decided that I dont care and reverted to asdf which never caused me any troubles :sweat_smile:

(I’m sure it was me messing something up, but I have other problems to solve instead of self inflicted ones like these.)

1 Like

I got problems installing elixir-ls in mise, it does not work.

It does a known issue?

mise install elixir-ls
mise ⚠️ elixir-ls is a community-developed plugin
mise url: https://github.com/juantascon/asdf-elixir-ls
Would you like to install elixir-ls? Yes
cp: bin/elixir-ls-debugger: No such file or directory
mise ~/.local/share/mise/plugins/elixir-ls/bin/install failed
Downloading from https://github.com/elixir-lsp/elixir-ls/releases/download/v0.21.3/elixir-ls-v0.21.3.zip
Archive:  /var/folders/5c/0y04dzc91n78r7qvt7208clw0000gp/T/tmp.DX1wIrqAJe/elixir-ls-v0.21.3.zip
  inflating: quiet_install.exs
  inflating: language_server.bat
  inflating: installer.exs
  inflating: exec.zsh
  inflating: launch.sh
  inflating: exec.bash
 extracting: VERSION
  inflating: debug_adapter.sh
  inflating: debug_adapter.bat
  inflating: language_server.sh
  inflating: launch.fish
  inflating: launch.exs
cp: bin/elixir-ls-debugger: No such file or directory
mise ~/.local/share/mise/plugins/elixir-ls/bin/install exited with non-zero status: exit code 1

On a mac M2, 32GB of Memory

It is already on MacPorts
https://ports.macports.org/port/erlang/details/

asdf is old news, mise is the better tool.

What makes you think you’ll have to debug mise? It too just works.

My personal approach is: don’t fix what isn’t broken.

For me that performance degradation from using shims is not relevant, I will care only once features will be missing or something will not work as expected.

I consider 120ms of extra startup time as something that’s broken, hence I moved away from asdf.

mise is also extremely easy to migrate to, not sure it took me even 5 minutes.

So I feel you’re being extremely conservative here. If you said “I don’t want to try” then that’s fair and it’s your right but making it sound like a project to migrate (or implying it would break) would be non-factual.