Ускорение цикла редактирования, компиляции, запуска/отладки Erlang
каков самый быстрый способ редактирования приложения Erlang, компиляции кода и просмотра результата работы? Желательно прыгнуть в раковину Эрланга на последней ступеньке.
моя текущая настройка новичка:
- скрипт, который компилирует приложение и запускает оболочку erl.
- затем я набираю приложение: start (foo).
- когда я исправляю опечатку, я перекомпилирую модуль с помощью c ('module') и перезапущу приложение.
есть ли более быстрый способ? КСТАТИ. моего редактора Выбор редактора Emacs.
4 ответов
вот мои настройки:
- при разработке я держу оболочку 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().
редактирование и компиляция выполняется IDE (Eclispe с erlide), которую я использую.
Я также создал скрипт, который запускает vm my application и полезные инструменты. Скрипт используется только для разработки.
для перезагрузки измененных источников, а затем скомпилированных бункеров я использую перегружатель из mochiweb. Перегружатель наблюдает за bin dir, и если есть изменения, он загружает модули и запускает тесты eunit, если у вас есть некоторые внутри.
пример:
Эрл +в 5 +к истинно -имя @127.0.0.1 -па $ФРД/Эбин $ФРД/тест $ФРД/дэпс/*/Эбин -загрузки start_sasl -с перегружателем -с панели инструментов -ы
Что вы также можете попробовать, это erlbuild. Erlbuild-это простое приложение, которое ищет в каталоге src измененные исходные файлы, и если оно находит некоторые файлы, то компилирует и загружает модули снова. После загрузки модулей erlbuild запускает тесты модулей.
вы можете найти проект в разделе:https://github.com/ulfa/erlbuild
~УНЧ