Загрузите все модули erlang в путь - PullRequest
5 голосов
/ 03 августа 2011

Использование ответа от Простой способ загрузки проектов с зависимостями арматуры , зависимости теперь автоматически разрешаются, но не загружаются автоматически.

Итак, как мне загрузить все модули?в моем пути ebin и / deps / * / bin автоматически?Таким образом, они доступны при использовании завершения вкладки оболочки Erlang, что значительно ускоряет мой процесс разработки.

Мое решение основано на великолепном ответе Адама Линдберга : https://gist.github.com/1131312Он загружает только модули проекта автоматически, поэтому практически не задерживается при запуске.

Ответы [ 2 ]

9 голосов
/ 03 августа 2011

Этот фрагмент поможет:

[code:ensure_loaded(list_to_atom(filename:rootname(filename:basename(F))))
 || P <- code:get_path(), F <- filelib:wildcard(P ++ "/*.beam")].

Поместите его в файл ~/.erlang как одну строку (включая точку: .), и он будет выполнен при запуске любой Erlang shell.Будьте осторожны, это ужасно медленно!

» time erl -noshell -s init stop
erl -noshell -s init stop  0.11s user 0.02s system 11% cpu 1.143 total # Without
» time erl -noshell -s init stop
erl -noshell -s init stop  7.31s user 1.08s system 88% cpu 9.480 total # With 
4 голосов
/ 04 августа 2013

если запустить процесс, вы получите очень быстрый старт.

LP = fun() -> [code:ensure_loaded(list_to_atom(filename:rootname(filename:basename(F)))) || P <- code:get_path(), F <- filelib:wildcard(P ++ "/*.beam")] end.
spawn(LP).

в файле ~ / .erlang

...