Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IEx Entrypoint "Elixir.IEx.CLI start()` no longer exists in Elixir v1.15.0+ #3560

Closed
ashleysommer opened this issue Mar 30, 2024 · 1 comment · Fixed by #3562
Closed

IEx Entrypoint "Elixir.IEx.CLI start()` no longer exists in Elixir v1.15.0+ #3560

ashleysommer opened this issue Mar 30, 2024 · 1 comment · Fixed by #3562
Assignees
Labels
Milestone

Comments

@ashleysommer
Copy link
Contributor

ashleysommer commented Mar 30, 2024

Describe the bug
IEx Entrypoint Elixir.IEx.CLI start() no longer exists.
The start() entrypoint was removed from Elixir v1.15

To Reproduce
Steps to reproduce the behavior:

  1. Add a new Run/Debug configuration
  2. Choose IEx Mix
  3. Click Ok
  4. Run the configuration

Expected behavior
Should run Mix in the IEx interactive Elixir prompt. This works fine in Elixir v1.14.x and below.

Logs

error_info: {error,undef,[{'Elixir.IEx.CLI',start,[],[]},{user_sup,start_user,3,[{file,"user_sup.erl"},{line,102}]},{user_sup,init,1,[{file,"user_sup.erl"},{line,51}]},{supervisor_bridge,init,1,[{file,"supervisor_bridge.erl"},{line,87}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,980}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,935}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,241}]}]}

Desktop:

  • OS: Arch Linux

Erlang:

  • Installer asdf
  • Version 26

Elixir:

  • Installer asdf
  • Version 1.16.2

Plugin:

  • Version 17.0

Additional context

See these two commits for the changes in v1.15.0
elixir-lang/elixir@e1eecb8
elixir-lang/elixir@c28b596

The correct full constructed cmdline to use in v1.15.0 is this:

/path/to/bin/erl -pa ... -s elixir start_cli -noshell -elixir ansi_enabled true -user elixir -extra +iex -e ":elixir.start_iex()"
 --no-halt -S /path/to/bin/mix

But that doesn't work in v1.15.1+ and v1.16.
They introduced yet another mechanism in v1.16 (and v1.15.1+ on the 1.15 branch).
elixir-lang/elixir@cc2d056
The correct full cmdline in v1.15.1+ and v1.16.0+ is this:

/path/to/bin/erl -pa ... -s elixir start_iex -noshell -elixir ansi_enabled true -user elixir -extra +iex --no-halt -S /path/to/bin/mix
@KronicDeth
Copy link
Owner

17.0.0

Confirmed working on 1.14.5
Confirmed broken on 1.15.0
Confirmed broken on 1.15.1
Confirmed broken on 1.16.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
2 participants