Hi everyone, I’m hoping someone may be able to chime in with a specific problem I am having.
I recently took on the task of adding two elixir libraries/dependencies (Crawly and Floki) as I would like to web scrape some data from a few sites, but I wanted to stay within the Erlang ecosystem. It seems there’s not a lot of documentation regarding this.
My first roadblock was getting the dependencies into Cowboy. However, this was simpler than I thought. I added the following two lines to my Makefile.
dep_crawly = hex 0.14.0
dep_floki = hex 0.34.0
I ran make run
and the libraries were added to my deps
folder.
Now, the second part I am actually stuck on. I tried starting compiler
and elixir
applications from my Cowboy eshell to test everything is working before I add the paths in my application. This looks like the following:
code:add_path("/usr/local/lib/erlang/lib/compiler-8.2/ebin/").
code:add_path("/home/user/.asdf/installs/elixir/1.14.3-otp-25/lib/elixir/ebin").
application:start(compiler).
application:start(elixir).
On the application:start(elixir)
part I am seeing the following error:
=CRASH REPORT==== 15-Mar-2023::18:14:06.084257 ===
crasher:
initial call: application_master:init/4
pid: <0.521.0>
registered_name: []
exception exit: {bad_return,
{{elixir,start,[normal,[]]},
{'EXIT',
{undef,
[{elixir,start,[normal,[]],[]},
{application_master,start_it_old,4,
[{file,"application_master.erl"},
{line,293}]}]}}}}
in function application_master:init/4 (application_master.erl, line 142)
ancestors: [<0.520.0>]
message_queue_len: 1
messages: [{'EXIT',<0.522.0>,normal}]
links: [<0.520.0>,<0.380.0>]
dictionary: []
trap_exit: true
status: running
heap_size: 233
stack_size: 28
reductions: 174
neighbours:
=INFO REPORT==== 15-Mar-2023::18:14:06.084923 ===
application: elixir
exited: {bad_return,
{{elixir,start,[normal,[]]},
{'EXIT',
{undef,
[{elixir,start,[normal,[]],[]},
{application_master,start_it_old,4,
[{file,"application_master.erl"},
{line,293}]}]}}}}
type: temporary
{error,
{bad_return,
{{elixir,start,[normal,[]]},
{'EXIT',
{undef,
[{elixir,start,[normal,[]],[]},
{application_master,start_it_old,4,
[{file,"application_master.erl"},{line,293}]}]}}}}}
Now, when I try the same thing in the regular erl
shell, not the Cowboy shell, everything works as it should and I’m able to run some Elixir code.
4> 'Elixir.String':downcase(list_to_binary("HELLLOOO WORLD")).
<<"helllooo world">>
It seems I’m missing something but don’t know what it is.