Ускорение редактирования Erlang, компиляция, запуск/отладочный цикл
Вопрос
Какой самый быстрый способ отредактировать приложение Erlang, составить код и увидеть результат запуска? Предпочтительно прыгать в раковине Эрланг на последнем шаге.
Моя текущая настройка новичка:
- Сценарий, который компилирует приложение и запускает оболочку ERL.
- Затем я ввожу приложение: start (foo).
- Когда я исправляю опечатку, я перекомпиляю модуль с помощью C («модуль») и перезагрузить приложение.
Есть быстрее? КСТАТИ. Мой редактор выбора - это emacs.
Решение
Вот моя установка:
- Во время развития я держу оболочку Erlang открытой в отдельном окне терминала.
- Я запускаю компиляцию из редактора (используя комбинацию ключей) или просто вводя
make
в справочнике. - После компиляции я загружаю все измененные модули одновременно путем печати
l()
в оболочке Erlang. Вы можете найти это и некоторые другие полезные макросы здесь: http://www.snookles.com/erlang/user_default.erl
Редко необходимо перезагрузить все приложение Erlang. Перезагрузка изменяющихся модулей является более распространенным вариантом использования, и это обычно достаточно, чтобы применить ваши изменения.
Что касается запуска приложения: если ваше приложение зависит от других приложений, Application: start () потерпит неудачу, пока вы не запустите все зависимости. Из -за этого обычно писать вспомогательную функцию <your-app-name>:start()
. Анкет Вот и пример. Анкет Другая полезная функция - это <your-app-name>:stop()
.
При применении всех этих методов рабочий процесс будет выглядеть так:
- Начните оболочку Erlang и оставьте ее открытым; тип
<your-app-name>:start().
- Вносить изменения; запустить компиляцию; тип
l()
в вашей оболочке Erlang. - Когда изменения требуют перезапуска приложения, введите
<your-app-name>:stop(), <your-app-name>:start().
Другие советы
Вы можете посмотреть на репортаж как инструмент строительства. make:all/0
и все делать Модуль также может помочь. Чтобы явно перезагрузить модуль из оболочки, вы можете использовать l(Module)
. Анкет Наконец, вы также можете быть заинтересованы в создании Erlang выпускать «обернуть» все ваши приложения Erlang.
Редактирование и компиляция выполняется IDE (Eclispe с Erlide), которую я использую.
Я также создал сценарий, который запускает виртуальную машину и полезные инструменты. Сценарий используется только для разработчика времени.
Для перезагрузки измененных источников, а затем скомпилированных мусорных баков, я использую перезарядку из MochiWeb. Перезагружатель наблюдает за директом корзины, и если есть изменения, он загружает модульс и запускает экзамены EUNIT, если у вас есть некоторые внутри.
Пример:
ERL +A 5 +K True -name @127.0.0.1 -pa $ pwd/ebin $ pwd/test $ pwd/deps/*/ebin -boot start_sasl -s reloader -s -bar -s -s
То, что вы также можете попробовать, это Erlbuild. Erlbuild - это простое приложение, которое выглядит в каталоге SRC для измененных исходных файлов, и, если он находит некоторые файлы, то оно компилирует и снова загружает модули. После загрузки модулей Erlbuild запускает тесты модулей.
Вы можете найти проект под: https://github.com/ulfa/erlbuild
~ Ulf