nahoj

nahoj

Hello, I’m a newcomer to both Elixir and Erlang and I’ve run into an issue and I hope someone here can help me.

When using mix compile I seem to be getting a compatibility error, that the beam file is compiled for a later version of the runtime system.


16:05:42.441 [error] beam/beam_load.c(184): Error loading module luerl:

This BEAM file was compiled for a later version of the runtime system than the current (Erlang/OTP 25).

To fix this, please re-compile this module with an Erlang/OTP 25 compiler.

(Use of opcode 181; this emulator supports only up to 180.)

A simple cleanup of deps/ and _build/ will recover from the issue, but that isn’t desired.

I’ve isolated it to only show up on Elixir version 1.15.x using below Erlang/OTP


mix --version

Erlang/OTP 25 [erts-13.2.2.3] [source] [64-bit] [smp:20:20] [ds:20:20:10] [async-threads:1] [jit:ns]

Mix 1.15.7 (compiled with Erlang/OTP 24)

I’ve created a sample repository https://github.com/JohanKarlbergg/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe and put a command in the README reproduce the issue.

I’ve tried to search for similar issues without success.

Showing Posts 1 to 10

Eiji

Eiji

Because this is not considered as an issue. The message is clear enough and as you said there is solution of cleanup which you know without searching. In such case if people know something without searching they don’t create any issue and just your question is not common. :smiley:

Keep in mind that on the forum many users reading your post have no idea how you think like they have no idea why recompiling all dependencies is not desired for you. As you said recompiling all dependencies is of course good idea and people do it by default in almost all cases - at least those I am aware of. However if for some reason you don’t want to compile all dependencies then you can simply recompile just one. :bulb:

mix deps.compile dep_name --force

You need to improve your documentation research skills. What’s may be interesting is mix help task which lists all tasks available and mix help task.name which shows the documentation for said task. I believe that deps.compile is obvious naming, so there is no need to describe what it does. Finally the documentation in mix help deps.compile should be enough clear for you. :+1:

Personally I recommend reading documentation a lot. Of course not to remember everything, but to more or less know where you can find some information and also you may find lots of interesting things that would be helpful for you now or in near future and you were just was not aware of their existence. The common mistake is to not read Erlang documentation assuming that Elixir core is all what you need. For example I have found :erlang.term_to_binary/1 and :erlang.binary_to_term/1 very useful. This is pretty basic and simple to understand thing new developers have completely no idea about. :thinking:

Edit: As @kokolegorille said firstly you need to fix the problem with your Elixir installation. After this you can use mix deps.compile to recompile only those dependencies you want.

nahoj

nahoj OP

After some further debugging it seems luerl might be the issue. When I pin it to 1.1.0 I have no issue.

kokolegorille

kokolegorille

How did You install Elixir and Erlang? With asdf?

You have an Elixir version for OTP24, but You have OTP25

You need to change the Elixir version to be OTP 25

Latest for now is OTP 26…

tj0

tj0

This is a rather curious problem. I could not re-create it with luerl 1.0 as given in the repo. And I added luerl 1.0 to one of my own projects without error.

Did you download a pre-compiled luerl from somewhere @nahoj ? The only other way I can think this might happen is that you installed erlang, tried luerl. Upgraded something installing elixir. And then ran into this problem.

elixir --version
Erlang/OTP 26 [erts-14.2.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit:ns]

Elixir 1.15.7 (compiled with Erlang/OTP 26)

nahoj

nahoj OP

Hey, I did not download luerl from somewhere. I use asdf to manage elixir/erlang.

In the mix.lock file it is version 1.1.1, I should have had the same in mix.exs.

I’m also unable to re-create this with luerl 1.0.

tj0

tj0

Hmmm…that makes sense. So the only logical explanation I can think of is if you installed multiple versions of erlang or elixir? Otherwise, I have no idea how this could possibly occur.

Edit: Also, I’m super-curious how you ended up on luerl as a starting point as a newcomer to Elixir/Erlang? :grinning:

Eiji

Eiji

You need to use an Elixir version with -otp-25 suffix if you use Erlang version 25.

LostKobrakai

LostKobrakai

While it’s certainly to be preferred that’s not completely correct. You need that for elixir to integrate with OTP 25 features, but using an elixir version compiled with an older otp version should generally work.

Eiji

Eiji

Should work or maybe could work? Should sounds like it’s supported and therefore such behaviour looks like a bug. I guess it could work, but since it’s not supported it’s recommended to make an update in order to avoid such problems now and in the future.

dimitarvp

dimitarvp

Should, yes, but I’d never recommend it.

Where Next? Top

Trending in Questions Top

RSP87
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
nseaSeb
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
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
velrest
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
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
apz
I’m new to elixir and just tried to install the elixirLS extension for VScode(ium) and it is throwing some errors that I would like help ...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
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
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
marciok
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
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews