Iulian7

Iulian7

Hi guys,

I have an Erlang dependency which does not compile with mix but compiles fine with rebar3. The output when compiling with DEBUG=1 is:

...
===> Building escript...
===> Creating escript file /Users/iulian/elixir/riak/deps/cuttlefish/_build/default/bin/cuttlefish
===> processing <<"cuttlefish">>
===> new deps of <<"cuttlefish">> found to be []
===> processing <<"getopt">>
===> Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace or consult rebar3.crashdump
===> Uncaught error: {badmatch,error}
===> Stack trace to the error location:
[{rebar_prv_escriptize,find_deps_of_deps,3,
                       [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_prv_escriptize.erl"},
                        {line,246}]},
 {rebar_prv_escriptize,find_deps,2,
                       [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_prv_escriptize.erl"},
                        {line,240}]},
 {rebar_prv_escriptize,escriptize,2,
                       [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_prv_escriptize.erl"},
                        {line,104}]},
 {rebar_prv_escriptize,do,1,
                       [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_prv_escriptize.erl"},
                        {line,80}]},
 {rebar_core,do,2,
             [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_core.erl"},
              {line,153}]},
 {rebar_hooks,run_provider_hooks_,6,
              [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_hooks.erl"},
               {line,49}]},
 {rebar_hooks,run_all_hooks,6,
              [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_hooks.erl"},
               {line,16}]},
 {rebar_prv_compile,compile,3,
                    [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_prv_compile.erl"},
                     {line,129}]}]
...

I am running Elixir 1.4.5, Erlang/OTP 20 on macOS Sierra. I also made sure the rebar3 mix uses is the correct version using mix local.rebar rebar3. The rebar3 version is 3.4.2.

Any help would be much appreciated!

Showing Posts 1 to 10

NobbZ

NobbZ

Getopt uses legacy rebar, try setting manager rebar for it.

Iulian7

Iulian7 OP

I set {:getopt, "~> 0.8.2", manager: :rebar3, override: true}, however I still get the same error.

NobbZ

NobbZ

I said rebar, not rebar3.

Iulian7

Iulian7 OP

Unfortunately same situation. I also made sure to update mix local.rebar rebar.

$ rebar --version
rebar 2.6.4 19 20161104_120312 No VCS info available.

Again this only happens if I compile with mix. If I compile the dependency with rebar3 it compiles.

EDIT: I now have {:getopt, "~> 0.8.2", manager: :rebar, override: true}

Iulian7

Iulian7 OP

If it helps, the dependency is riak_core_ng | Hex which in turn depends on cuttlefish | Hex (the culprit in this discussion).

georosz

georosz

I had similar, but not the same issue before, also I use linux not OSX
I managed to solve it by reinstalling erlang and elixir.

https://forum.elixirforum.com/t/cannot-compile-unicode-util-compat/6724

Iulian7

Iulian7 OP

Well I also tried that but it didn’t work. It’s very frustrating now. If I compile getopt with mix using mix deps.compile getopt it works. If I compile them individually it works except for cuttlefish which gives that error. This is so strange.

I again tried to compile the whole thing with rebar3 and it works fine. I even compiled with ~/.mix/rebar3 for sanity check to make sure mix is not using some strange version.

peerreynders

peerreynders

Ok - grasping at straws here:

On Digital Ocean/Ubuntu there seems to be an emerging pattern that compiling certain applications with rebar3 through mix can run into trouble in a memory constrained environment (512 MB RAM).

https://github.com/elixir-lang/elixir/issues/3857#issuecomment-220746100

Now, I haven’t seen anything comparable for OS X - but it may be worth firing up Activity Monitor and watching the “Memory” tab to see what is happening to the physical memory consumption during compilation:

  • Is physical memory being completely consumed?
  • Is a swap file being created to cover the short fall?
Iulian7

Iulian7 OP

Interesting. I observed the memory usage. It doesn’t really go up and there is no swapping. It is worth noting I have 16GB of RAM. The usage is constant at about 8GB.

This is also followed in this issue: Problems compiling (warnings_as_errors) · Issue #23 · Kyorai/riak_core · GitHub.

peerreynders

peerreynders

Well, that rule’s that out.

Though I wonder if there is a way to see exactly what information is passing from mix to rebar3 - in case rebar3 is simply choking on some “bad (truncated?) configuration information”.

Where Next? Top

Trending in Questions Top

katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
achenet
Hello, I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind. However, when I launch mix phx.server, I get an error...
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
mnkhod
So i have been using ash framework for a while and i love it. However currently the issue im having with ash framework is the error handl...
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
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews