Задача dialyxir mix для создания выходов PLT без ошибок или создания таблицы
Я пытаюсь использовать dialyxir для запуска анализа диализатора в моем проекте с помощью смешанных задач, которые он предоставляет.
Я добавил его в мои зависимости и скомпилировал в соответствии с README.
Когда я бегу mix dialyxir.plt
он не сообщает об ошибке и завершает работу без создания таблицы.
$ mix dialyzer.plt
Starting PLT Core Build ... this will take awhile
dialyzer --build_plt --output_plt /home/vagrant/.dialyxir_core_19_1.3.2.plt --apps erts kernel stdlib crypto public_key -r /usr/local/lib/elixir/bin/../lib/elixir/../eex/ebin /usr/local/lib/elixir/bin/../lib/elixir/../elixir/ebin /usr/local/lib/elixir/bin/../lib/elixir/../ex_unit/ebin /usr/local/lib/elixir/bin/../lib/elixir/../iex/ebin /usr/local/lib/elixir/bin/../lib/elixir/../logger/ebin /usr/local/lib/elixir/bin/../lib/elixir/../mix/ebin
Creating PLT /home/vagrant/.dialyxir_core_19_1.3.2.plt ...
# later
$ ll /home/vagrant
# No file called /home/vagrant/.dialyxir_core_19_1.3.2.plt
# running the mix task errors as expected with no plt
$ mix dialyzer
dialyzer --no_check_plt --plt /home/vagrant/.dialyxir_core_19_1.3.2.plt -Wunmatched_returns -Werror_handling -Wrace_conditions -Wunderspecs /vagrant/_build/dev/lib/ace/ebin
dialyzer: No such file, directory or application: "/home/vagrant/.dialyxir_core_19_1.3.2.plt"
Вопрос в том, как мне это отладить?
2 ответа
Как вы упомянули в комментариях, полное сообщение об ошибке при запуске dialyzer
непосредственно включен текст Killed
в конце. Это убийца нехватки памяти в Linux, убивающая процесс за использование слишком большого количества ресурсов (скорее всего, RAM/swap), поскольку у виртуальной машины было всего ~489MiB оперативной памяти. dialyzer
Создание PLT требует значительных ресурсов процессора / памяти, поэтому увеличение объема оперативной памяти (скажем, 1 или 2 ГБ) должно исправить это.
mix dialyzer --plt
Опция командной строки mix dialyxir.plt
возвращает ошибку по состоянию на диалксир 0.4.3. Синтаксис точки заменен на флаг, добавленный выше.
Рекомендации: