I've never built Elixir on my own and this is the first time I've tried to do so. However, make clean test fails with:
{"init terminating in do_boot",{'cannot get bootfile','no_dot_erlang.boot'}}
init terminating in do_boot ({cannot get bootfile,no_dot_erlang.boot})
Crash dump is being written to: erl_crash.dump...done
make: *** [lib/elixir/src/elixir_parser.erl] Fehler 1
I'm not sure what's happening. Is it the case that Elixir was unable to find the path to the erl executable for some reason?
I was able to run erl and test it with a helloworld Erlang file just fine.
System: Kernel: 3.10.0-693.21.1.el7.x86_64 x86_64 bits: 64 gcc: 4.8.5
Console: tty 0 Distro: Scientific Linux release 7.5 (Nitrogen)
Erlang/OTP 21 [erts-10.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
The Elixir repo is the newest master branch from Git.
Can you please confirm which Elixir version you are using?
Btw, regarding epel, if the Elixir version is 0.12.5, that's like half decade old and it is before v1.0. It definitely won't work.
As I said, I cloned the newest master branch from Git.
However, when I try to directly run elixir -v from the bin folder, I get:
{"init terminating in do_boot",{undef,[{elixir,start_cli,[],[]},{init,start_em,1,[]},{init,do_boot,3,[]}]}}
init terminating in do_boot ({undef,[{elixir,start_cli,[],[]},{init,start_em,1,[]},{init,do_boot,3,[]}]})
Crash dump is being written to: erl_crash.dump...done
Yeah, that second part is irrelevant then and I should probably just delete it
This is the crash dump. Not sure if it's useful or not.
@x-ji sorry for not being precise. I meant to ask the sha, as master is just a pointer. :)
@x-ji it can find Erlang just fine... but Erlang is accusing there is no boot file. Is there any chance that you have the variables ERL_PATH or ERL_EXEC set in your environment?
Sorry, I should have provided the precise version. If you're asking about git commit SHA then it is
commit ec4bafb19f334410a3bdde1d331c46b094b50cab
Author: Steve Morin <[email protected]>
Date: Mon Jun 25 04:57:16 2018 -0700
Updated with umbrella project example (#7790)
Those variables don't seem to be set in the environment.
Is this https://github.com/bitwalker/distillery/issues/426 the same bug? I'm not sure...
@x-ji yes and no.
Every time Erlang starts, it runs a bootscript. Your default Erlang installation has bootscripts, that's when you run erl, with no argument, Erlang starts. Elixir by default uses your erl, so if erl works, then Elixir should compile.
Tools like distillery allow you to write your own bootscript. That's what the linked distillery issue is about.
Can you please try this in the Elixir directory:
$ erlc -o lib/elixir/src/elixir_parser.erl +'{verbose,true}' +'{report,true}' lib/elixir/src/elixir_parser.yrl
Does it work? In case it does work, what does erl return in the Elixir directory?
OK I found the problem. I installed the erlang package following an online guide, while in fact I should have installed esl-erlang package, which includes the complete package.
From the Erlang FAQ
The "esl-erlang" package is a file containg the complete installation: it includes the Erlang/OTP platform and all of its applications. The "erlang" package is a frontend to a number of smaller packages. Currently we support both "erlang" and "esl-erlang".
I didn't get the difference between those two packages at first sight and chose the wrong option. Apparently to successfully run Elixir you need the latter.
Thanks for your fast response and help!
use erlang version >= 21.1.1
use erlang version >= 21.1.1
Most helpful comment
Is this https://github.com/bitwalker/distillery/issues/426 the same bug? I'm not sure...