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.
Or mise which is a newer implementation based on asdf.
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.
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 updatesPATH
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 thatmise
isn’t actually used when callingnode -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!
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.
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
(I’m sure it was me messing something up, but I have other problems to solve instead of self inflicted ones like these.)
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.
It is still not working for me either.
I never used it to install elixir-ls so can’t help you.
I’ve created an issue in mise to see if they can fix it: