CharlesO

CharlesO

Using Rustler with OTP24

Compiling any app dependent on Rustler is not working on Elixir v12.0 and OTP-24

Anyone having similar issues?

Could not compile :rustler, no "mix.exs", "rebar.config" or "Makefile" (pass :compile as an option to customize compilation, set it to "false" to do nothing)
Unchecked dependencies for environment prod:
* rustler (https://github.com/rusterlium/rustler.git)
  could not find an app file at "c:/Projects/bat/_build/prod/lib/rustler/ebin/rustler.app". This may happen if the dependency was not yet compiled or the dependency indeed has no app file (then you can pass app: false as option)
could not compile dependency :xler, "mix compile" failed. You can recompile this dependency with "mix deps.compile xler", update it with "mix deps.update xler" or clean it with "mix deps.clean xler"

Marked As Solved

dimitarvp

dimitarvp

I’d try both things:

  • Use the commented out line in your mix.exs:
{:rustler, git: "git://github.com/rusterlium/rustler.git" branch: "master", sparse: "rustler_mix"},
rustler = {git = "git://github.com/rusterlium/rustler.git", branch="master"}

Also Liked

dimitarvp

dimitarvp

There’s a 0.22.0-rc.1 release that got out like 45 minutes ago.

@maciejgryka What you have shown have worked for me for Elixir 1.12.0-otp-24 and Erlang 24.0.1. Thanks!

(I still used rustler from the master branch, though.)

dimitarvp

dimitarvp

Which version of rustler are you using? Mine is 0.22.0-rc.0. My Elixir+Rust project compiles fine with Erlang 23.3.4 and Elixir 1.12.0-otp-23, but fails to compile with Erlang 24.0 and Elixir 1.12.0-otp-24. The error is:

Caused by:
  process didn't exit successfully: `/Users/dimi/kod/xqlite/_build/dev/rustler_crates/xqlitenif/release/build/rustler-69fb4c768ce25323/build-script-build` (exit code: 101)
  --- stderr
  thread 'main' panicked at 'Erlang version 2.16 not handled, please file a a bug report.', /Users/dimi/.cargo/registry/src/github.com-1ecc6299db9ec823/rustler-0.22.0-rc.0/build.rs:36:10
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed
** (RuntimeError) Rust NIF compile error (rustc exit code 101)
    (rustler 0.22.0-rc.0) lib/mix/tasks/compile.rustler.ex:89: Mix.Tasks.Compile.Rustler.compile_crate/1
    (elixir 1.11.4) lib/enum.ex:1411: Enum."-map/2-lists^map/1-0-"/2
    (rustler 0.22.0-rc.0) lib/mix/tasks/compile.rustler.ex:28: Mix.Tasks.Compile.Rustler.run/1
    (mix 1.11.4) lib/mix/task.ex:394: Mix.Task.run_task/3
    (mix 1.11.4) lib/mix/tasks/compile.all.ex:90: Mix.Tasks.Compile.All.run_compiler/2
    (mix 1.11.4) lib/mix/tasks/compile.all.ex:70: Mix.Tasks.Compile.All.compile/4
    (mix 1.11.4) lib/mix/tasks/compile.all.ex:57: Mix.Tasks.Compile.All.with_logger_app/2
    (mix 1.11.4) lib/mix/tasks/compile.all.ex:35: Mix.Tasks.Compile.All.run/1

Seems there’s a hard requirement for a maximum Erlang version. I thought of contributing and maybe even taking over rustler in the future (the owners are semi-open to the idea btw) but life and work keep getting in the way. :frowning:

Still, maybe I can muster a small PR that fixes this problem soon-ish.


TL;DR: It’s not Elixir 1.12.0’s fault. It seems to be rustler insisting on a maximum Erlang version.

CharlesO

CharlesO

I still have problems, not fully resolved. but at least The main branch of rustler is updated for OTP-24

Could not compile :rustler, no "mix.exs", "rebar.config" or "Makefile" (pass :compile as an option to customize compilation, set it to "false" to do nothing)
==> meeseeks_html5ever
Could not compile :rustler, no "mix.exs", "rebar.config" or "Makefile" (pass :compile as an option to customize compilation, set it to "false" to do nothing)
Unchecked dependencies for environment prod:
* rustler (https://github.com/rusterlium/rustler.git)
  the dependency build is outdated, please run "MIX_ENV=prod mix deps.compile"
could not compile dependency :meeseeks_html5ever, "mix compile" failed. You can recompile this dependency with "mix deps.compile meeseeks_html5ever", update it with "mix deps.update meeseeks_html5ever" or clean it with "mix deps.clean meeseeks_html5ever"

Last Post!

myobie

myobie

Ah OK, that makes perfect sense and I didn’t realize. Thanks for letting me know :purple_heart:

Where Next?

Popular in Questions Top

vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New

Other popular topics Top

electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New

We're in Beta

About us Mission Statement