-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Closed
Description
Environment
$ elixir --version
Erlang/OTP 22 [erts-10.7.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
Elixir 1.9.4 (compiled with Erlang/OTP 22)
Current behavior
The command recompile called in succession can give unstable results, as in the following example:
iex(14)> recompile
Compiling 2 files (.ex)
Generated my_app app
:ok
iex(15)> recompile
Compiling 2 files (.ex)
warning: function inc_element/1 is unused
lib/my_app/box/element/load_element.ex:406
warning: function inc_element/2 is unused
lib/my_app/box/element/load_element.ex:401
warning: function lk_xpto/1 is unused
lib/my_app/box/element/load_element.ex:388
warning: function lk_xpto/3 is unused
lib/my_app/box/element/load_element.ex:393
warning: function set_thing_xpto/3 is unused
lib/my_app/box/element/load_element.ex:397
== Compilation error in file lib/my_app/box/element/load_element.ex ==
** (CompileError) lib/my_app/box/element/load_element.ex:356: undefined function lk_pls/1
(elixir) src/elixir_locals.erl:108: :elixir_locals."-ensure_no_undefined_local/3-lc$^0/1-0-"/2
(elixir) src/elixir_locals.erl:109: anonymous fn/3 in :elixir_locals.ensure_no_undefined_local/3
** (exit) shutdown: 1
(mix) lib/mix/tasks/compile.all.ex:59: Mix.Tasks.Compile.All.do_compile/4
(mix) lib/mix/tasks/compile.all.ex:24: anonymous fn/1 in Mix.Tasks.Compile.All.run/1
(mix) lib/mix/tasks/compile.all.ex:40: Mix.Tasks.Compile.All.with_logger_app/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(mix) lib/mix/tasks/compile.ex:96: Mix.Tasks.Compile.run/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(iex) lib/iex/helpers.ex:104: IEx.Helpers.recompile/1
iex(15)> recompile
Compiling 2 files (.ex)
** (exit) exited in: :gen_server.call(#PID<0.478.0>, :remote_references, 30000)
** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started
(stdlib) gen_server.erl:223: :gen_server.call/3
(mix) lib/mix/compilers/elixir.ex:334: Mix.Compilers.Elixir.each_file/4
(elixir) lib/kernel/parallel_compiler.ex:397: Kernel.ParallelCompiler.wait_for_messages/7
(elixir) lib/kernel/parallel_compiler.ex:136: Kernel.ParallelCompiler.spawn_workers/3
(mix) lib/mix/compilers/elixir.ex:191: Mix.Compilers.Elixir.compile_manifest/9
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(mix) lib/mix/tasks/compile.all.ex:73: Mix.Tasks.Compile.All.run_compiler/2
(mix) lib/mix/tasks/compile.all.ex:53: Mix.Tasks.Compile.All.do_compile/4
iex(15)> recompile
Compiling 2 files (.ex)
warning: function inc_element/1 is unused
lib/my_app/box/element/load_element.ex:406
warning: function inc_element/2 is unused
lib/my_app/box/element/load_element.ex:401
warning: function lk_xpto/1 is unused
lib/my_app/box/element/load_element.ex:388
warning: function lk_xpto/3 is unused
lib/my_app/box/element/load_element.ex:393
warning: function set_thing_xpto/3 is unused
lib/my_app/box/element/load_element.ex:397
== Compilation error in file lib/my_app/box/element/load_element.ex ==
** (CompileError) lib/my_app/box/element/load_element.ex:13: cannot define module MyAppStore.box.element.Loadelement because it is currently being defined in lib/my_app/box/element/load_element.ex:13
** (exit) shutdown: 1
(mix) lib/mix/tasks/compile.all.ex:59: Mix.Tasks.Compile.All.do_compile/4
(mix) lib/mix/tasks/compile.all.ex:24: anonymous fn/1 in Mix.Tasks.Compile.All.run/1
(mix) lib/mix/tasks/compile.all.ex:40: Mix.Tasks.Compile.All.with_logger_app/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(mix) lib/mix/tasks/compile.ex:96: Mix.Tasks.Compile.run/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(iex) lib/iex/helpers.ex:104: IEx.Helpers.recompile/1
iex(15)> recompile
Compiling 2 files (.ex)
** (MatchError) no match of right hand side value: nil
(elixir) lib/kernel/parallel_compiler.ex:319: anonymous fn/3 in Kernel.ParallelCompiler.without_definition/2
(elixir) lib/enum.ex:1948: Enum."-reduce/3-lists^foldl/2-0-"/3
(elixir) lib/kernel/parallel_compiler.ex:318: Kernel.ParallelCompiler.without_definition/2
(elixir) lib/kernel/parallel_compiler.ex:300: Kernel.ParallelCompiler.spawn_workers/7
(elixir) lib/kernel/parallel_compiler.ex:136: Kernel.ParallelCompiler.spawn_workers/3
(mix) lib/mix/compilers/elixir.ex:191: Mix.Compilers.Elixir.compile_manifest/9
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(mix) lib/mix/tasks/compile.all.ex:73: Mix.Tasks.Compile.All.run_compiler/2
iex(15)> recompile
Compiling 2 files (.ex)
== Compilation error in file lib/my_app/box/element/load_element.ex ==
** (CompileError) lib/my_app/box/element/load_element.ex:13: cannot define module MyAppStore.box.element.Loadelement because it is currently being defined in lib/my_app/box/element/load_element.ex:13
** (exit) shutdown: 1
(mix) lib/mix/tasks/compile.all.ex:59: Mix.Tasks.Compile.All.do_compile/4
(mix) lib/mix/tasks/compile.all.ex:24: anonymous fn/1 in Mix.Tasks.Compile.All.run/1
(mix) lib/mix/tasks/compile.all.ex:40: Mix.Tasks.Compile.All.with_logger_app/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(mix) lib/mix/tasks/compile.ex:96: Mix.Tasks.Compile.run/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(iex) lib/iex/helpers.ex:104: IEx.Helpers.recompile/1
iex(15)> recompile
Compiling 2 files (.ex)
== Compilation error in file lib/my_app/box/element/load_element.ex ==
** (CompileError) lib/my_app/box/element/load_element.ex:13: cannot define module MyAppStore.box.element.Loadelement because it is currently being defined in lib/my_app/box/element/load_element.ex:13
** (exit) shutdown: 1
(mix) lib/mix/tasks/compile.all.ex:59: Mix.Tasks.Compile.All.do_compile/4
(mix) lib/mix/tasks/compile.all.ex:24: anonymous fn/1 in Mix.Tasks.Compile.All.run/1
(mix) lib/mix/tasks/compile.all.ex:40: Mix.Tasks.Compile.All.with_logger_app/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(mix) lib/mix/tasks/compile.ex:96: Mix.Tasks.Compile.run/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(iex) lib/iex/helpers.ex:104: IEx.Helpers.recompile/1
iex(15)> recompile
Compiling 2 files (.ex)
== Compilation error in file lib/my_app/box/element/load_element.ex ==
** (CompileError) lib/my_app/box/element/load_element.ex:13: cannot define module MyAppStore.box.element.Loadelement because it is currently being defined in lib/my_app/box/element/load_element.ex:13
** (exit) shutdown: 1
(mix) lib/mix/tasks/compile.all.ex:59: Mix.Tasks.Compile.All.do_compile/4
(mix) lib/mix/tasks/compile.all.ex:24: anonymous fn/1 in Mix.Tasks.Compile.All.run/1
(mix) lib/mix/tasks/compile.all.ex:40: Mix.Tasks.Compile.All.with_logger_app/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(mix) lib/mix/tasks/compile.ex:96: Mix.Tasks.Compile.run/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(iex) lib/iex/helpers.ex:104: IEx.Helpers.recompile/1
iex(15)>
nil
iex(16)> recompile
Compiling 2 files (.ex)
== Compilation error in file lib/my_app/box/element/load_element.ex ==
** (CompileError) lib/my_app/box/element/load_element.ex:13: cannot define module MyAppStore.box.element.Loadelement because it is currently being defined in lib/my_app/box/element/load_element.ex:13
** (exit) shutdown: 1
(mix) lib/mix/tasks/compile.all.ex:59: Mix.Tasks.Compile.All.do_compile/4
(mix) lib/mix/tasks/compile.all.ex:24: anonymous fn/1 in Mix.Tasks.Compile.All.run/1
(mix) lib/mix/tasks/compile.all.ex:40: Mix.Tasks.Compile.All.with_logger_app/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(mix) lib/mix/tasks/compile.ex:96: Mix.Tasks.Compile.run/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(iex) lib/iex/helpers.ex:104: IEx.Helpers.recompile/1
iex(16)> recompile
Compiling 2 files (.ex)
== Compilation error in file lib/my_app/box/element/load_element.ex ==
** (CompileError) lib/my_app/box/element/load_element.ex:13: cannot define module MyAppStore.box.element.Loadelement because it is currently being defined in lib/my_app/box/element/load_element.ex:13
** (exit) shutdown: 1
(mix) lib/mix/tasks/compile.all.ex:59: Mix.Tasks.Compile.All.do_compile/4
(mix) lib/mix/tasks/compile.all.ex:24: anonymous fn/1 in Mix.Tasks.Compile.All.run/1
(mix) lib/mix/tasks/compile.all.ex:40: Mix.Tasks.Compile.All.with_logger_app/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(mix) lib/mix/tasks/compile.ex:96: Mix.Tasks.Compile.run/1
(mix) lib/mix/task.ex:331: Mix.Task.run_task/3
(iex) lib/iex/helpers.ex:104: IEx.Helpers.recompile/1
iex(16)>
BREAK: (a)bort (A)bort with dump (c)ontinue (p)roc info (i)nfo
(l)oaded (v)ersion (k)ill (D)b-tables (d)istribution
$ iex -S mix
Erlang/OTP 22 [erts-10.7.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
Config MyApp Store
Config MyApp Store (dev)
Compiling 2 files (.ex)
Interactive Elixir (1.9.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
Unfortunately I cannot reproduce the issue (the project is too complex for that), so I hope this output may shed some light on what needs to be fixed.
Expected behavior
The command recompile should work as expected without failures.
FelicianoTech