pprzetacznik / IElixir

Jupyter's kernel for Elixir programming language
Apache License 2.0
359 stars 42 forks source link

Can't build IElixir #53

Open enmasse opened 4 years ago

enmasse commented 4 years ago

Running mix test gives this error message:

** (Mix) Could not start application ielixir: IElixir.start(:normal, []) returned an error: shutdown: failed to start child: IElixir.Sandbox ** (EXIT) an exception was raised: ** (UndefinedFunctionError) function :elixir.eval/2 is undefined or private (elixir 1.10.0) :elixir.eval('import IEx.Helpers', []) (ielixir 0.9.18) lib/ielixir/sandbox.ex:220: IElixir.Sandbox.prepare_clear_state/0 (ielixir 0.9.18) lib/ielixir/sandbox.ex:31: IElixir.Sandbox.init/1 (stdlib 3.11.2) gen_server.erl:374: :gen_server.init_it/2 (stdlib 3.11.2) gen_server.erl:342: :gen_server.init_it/6 (stdlib 3.11.2) proc_lib.erl:249: :proc_lib.init_p_do_apply/3

I will see if I can try to resolve it myself, in that case I will put up a PR.

enmasse commented 4 years ago

defp prepare_clear_state() do {_, binding, env, scope} = :elixir.eval('import IEx.Helpers', []) %{execution_count: 1, binding: binding, env: env, scope: scope} end

I don't know what :elixir.eval/2 is supposed to return as I can't find any documentation for it.

Ljzn commented 4 years ago

defp prepare_clear_state() do {_, binding, env, scope} = :elixir.eval('import IEx.Helpers', []) %{execution_count: 1, binding: binding, env: env, scope: scope} end

I don't know what :elixir.eval/2 is supposed to return as I can't find any documentation for it.

The :elixir.eval/2 has been deleted in the recent version of the elixir. I made a PR #54 to make IElixir works with elixir 1.10. But the fix is not perfect, still failed some tests.