I had this thought also, but I never got further with it and if I compile with DEBUG=1 it suggests that the options is correct, see below.
To emphasize, I’m aware that it might be strange to recompile one dependency, this is only done in order to reproduce the “issue”.
rm -rf _build/ deps && mix deps.get && mix compile --force && DEBUG=1 mix deps.compile luerl --force && mix compile --force
Resolving Hex dependencies...
Resolution completed in 0.013s
Unchanged:
luerl 1.1.1
* Getting luerl (Hex package)
===> Analyzing applications...
===> Compiling luerl
Compiling 1 file (.ex)
Generated foo app
===> Expanded command sequence to be run: []
===> Running provider: do
===> Expanded command sequence to be run: [app_discovery,{bare,compile}]
===> Running provider: app_discovery
===> Found top-level apps: [luerl]
using config: [{src_dirs,["src"]},{lib_dirs,["apps/*","lib/*","."]}]
===> Running provider: {bare,compile}
===> Compile (untagged)
===> Running hooks for compile in app luerl (/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl) with configuration:
===> {pre_hooks, []}.
===> Running hooks for erlc_compile in app luerl (/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl) with configuration:
===> {pre_hooks, []}.
===> Analyzing applications...
===> Compiling luerl
===> compile options: {erl_opts, [debug_info,
{d,'ERLANG_VERSION',"25.3.2.6"},
{d,'HAS_MAPS',true},
{d,'HAS_FULL_KEYS',true},
{d,'NEW_REC_CORE',true},
{d,'NEW_RAND',true},
{d,'NEW_BOOL_GUARD',true},
{d,'HAS_FLOOR',true},
{d,'HAS_CEIL',true},
{d,'NEW_STACKTRACE',true},
{d,'EEP48',true}]}.
===> files to analyze ["/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_sandbox.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_comp_lint.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_comp_env.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_heap.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_comp.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_lib_math.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_lib_utf8.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_init.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_comp_peep.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_anno.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_lib_os.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/ttdict.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_lib_string.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_old.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/Elixir.Luerl.New.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_comp_vars.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_lib_basic.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_util.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_new.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_lib_os_date.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_comp_locf.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_lib_bit32.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_lib_package.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_lib_io.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_comp_normalise.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_lib.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_shell.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_parse_exp.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_lib_debug.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_emul.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_scan.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_lib_table.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/ttsets.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_parse.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/Elixir.Luerl.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_app.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_comp_cg.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_sup.erl",
"/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl/src/luerl_lib_string_format.erl"]
===> Running hooks for erlc_compile in app luerl (/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl) with configuration:
===> {post_hooks, []}.
===> Running hooks for app_compile in app luerl (/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl) with configuration:
===> {pre_hooks, []}.
===> Running hooks for app_compile in app luerl (/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl) with configuration:
===> {post_hooks, []}.
===> Running hooks for compile in app luerl (/home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/deps/luerl) with configuration:
===> {post_hooks, []}.
Compiling 1 file (.ex)
08:09:22.501 [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.)
08:09:22.501 [error] Loading of /home/01e3c763592bbc85568a28a81ae6f5f732d8d183f7f533080a0998e7229127fe/_build/dev/lib/luerl/ebin/luerl.beam failed: :badfile
warning: :luerl.dofile/2 is undefined (module :luerl is not available or is yet to be defined)
lib/foo.ex:3: Foo.bar/0
warning: :luerl.init/0 is undefined (module :luerl is not available or is yet to be defined)
lib/foo.ex:3: Foo.bar/0
Generated foo app
If I instead only run the command below, which doesn’t recompile luerl it works as expected. It also works if I instead use luerl version 1.1.0 as previously pointed out.
rm -rf _build/ deps && mix deps.get && mix compile --force && mix compile --force
Versions
mix -v
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 25)