dogweather
I realized that I’m just guessing what all the version numbers mean — and there are a lot of them. I’m not sure if this is documented anywhere. (?) Here’s what I do on MacOS, which seems to work:
- Install
asdf
$ brew install asdf
- Install the asdf plugins for Elixir and Erlang. (Is it necessary to do both? I think so.)
$ asdf plugin add elixir
$ asdf plugin add erlang
- Look at the Elixir versions available:
$ asdf list all elixir
...
1.14.0
1.14.0-otp-23
1.14.0-otp-24
1.14.0-otp-25
1.14.0-rc.0
1.14.0-rc.0-otp-23
1.14.0-rc.0-otp-24
1.14.0-rc.0-otp-25
1.14.0-rc.1
1.14.0-rc.1-otp-23
1.14.0-rc.1-otp-24
1.14.0-rc.1-otp-25
main
main-otp-22
main-otp-23
main-otp-24
main-otp-25
...
- The version
1.14.0-otp-25seems like the most recent production-ready one, so I install that:
$ asdf install elixir 1.14.0-otp-25
- Now I need to find a compatible Erlang version. (Am I correct here?)
$ asdf list all erlang
...
24.3.4.6
25.0-rc1
25.0-rc2
25.0-rc3
25.0
25.0.1
25.0.2
25.0.3
25.0.4
25.1
25.1.1
Cool, the number 25 matches otp-25 from the Elixir package, and although the 25 here theoretically refers to the Erlang version and the other refers just to OTP, I suspect the nomenclature is rather loose. So I install 25.1.1:
$ asdf install erlang 25.1.1
Excellent! I’m almost ready to get to work. I have just one more hour ahead of me:
- Try to write Elixir code in VS Code with the LSP.
- It’s broken. Try to debug my dev env unsuccessfully. Post a forum question. Learn that the LSP has an undocumented dependency on OTP < 25.
- Redo all the above steps with Erlang 24 and Elixir with otp-24.
- Test all of this, and it appears to work: My inference about Erlang 24 = top-24 might be correct.
This is the setup process for new Elixir devs.
Did I miss some docs or sign-posts along the way that would have made this easier?
Trending in Questions
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
Hello,
I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
Documentation
While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
So my question is quite simple and i have found no conclusive answer on forum, google or AI.
Should we use :erlang.float for Integer to ...
New
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New
Other Trending Topics
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Hi everyone!
The first release candidate for the Expert language server project is now available!
We’ve published a press release detai...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixirconf-us
- #ai
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #hex
- #security










Showing Posts 1 to 7- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
derek-zhou
Erlang is the language and OTP is the distribution of the standard library and tools. Think java and jdk. Elixir is buiilt on top of the OTP, think Scala. And the LSP is another layer up. Usually, the backward compatibility of both Erlang and Elixir is pretty good; but in the case of LSP, it is probably doing something more intimate than an average package to the core.
cmo
Isn’t it even worse if you want wxwidgets compiled in the
asdfversion of erlang? I usually use Windows which is justscoop install erlang elixirand was a little frustrated by how much harder it was setting it up with asdf on Linux.Weren’t the ElixirLS issues with OTP 25 patched recently? It’s been working for me for at least a couple of weeks.
derek-zhou
On linux you don’t even need asdf. just old fashion
./configure; make; make installand you have OTP. If you are lazy, just use whatever the distribution provides. I always compile elixir myself. It is only a minute and it is a good sanity check of your Erlang environment.Hermanverschooten
in
asdfthe version suffix in the elixir distribution is to tell you which erlang version it was compiled against. I don’t know if there is actually a difference between them, but I always make sure they are in the same major range.I am not using VSCode, but Lunarvim and have no issues with elixir-lsp and erlang 25+
LostKobrakai
It depends on the elixir release, but generally there can be compile time checks in elixir to make use of new OTP features if compiled against a specific version.
By default elixir is compiled with the lowest supported OTP version, so using one compiled with a more recent one might unlock additional optimizations.
axelson
I’d highly recommend not installing asdf via homebrew. I can dredge up the GitHub issues later but it causes many things to break when updating the version of asdf itself.
Eiji
Elixir
Ok, let’s describe it step by step:
x.y.zat the start is the version ofElixir-rc.xis axrelease candidate for said version-otp-xis a precompiledElixirrelease forxmajorErlangversionotppart before install needs to be compiled first with already installed and officially supportedErlangversionmainis the name ofgitbranch which means you can test more or less stable new features before they added to an official releaseIf you want to install latest
Elixirtogether with latest supportedErlangand you are not interested inrelease candidatesas well as unstablemainbranch then you need to select release with latestx.y.zversion ofElixirand latest-otp-xversion, currently1.14.0-otp-25.Erlang
In
Erlangit’s much easier as it does not have a precompilled releases for other languages.a.bora.b.cora.b.c.dat the start is the version ofErlang- here we do not have padded.0exceptb-rcxis axrelease candidate for said versionmasteris the name ofgitbranch which means you can test more or less stable new features before they added to an officialErlang/OTPreleasemaintandmaint-xare stablegitbranches based on previous work inmaster, see otp/CONTRIBUTING.md for more informationAgain if you look for latest stable release for
Elixirversion-otp-25you need to select latesta.bora.b.cora.b.c.d- currently it’s25.1.1.Compile from source
If you want to compile
Elixiron your own and you want to know whichErlangversions are supported then you can take a look at other releases or the documentation: Compatibility and Deprecations — Elixir 1.14.0 and Compatibility and Deprecations — Elixir v1.15.0-dev (main branch)Erlang prebuild releases
There are prebuilt packages for
UbuntuLTS releases, see:There is also an open issue to officially support prebuilt packages in
asdf-erlangrepository, see: Support for precompiled binaries? asdf-vm/asdf-erlang#165That’s all important things about
ElixirandErlanginasdf-based environment. Unfortunately I’m notMacOSuser, so I don’t have any information specific to this OS.