Ускорение цикла редактирования, компиляции, запуска/отладки 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().

на арматура как строительный инструмент. make:all/0 и все сделать модуль также может помочь. Чтобы явно загрузить модуль из оболочки вы можете использовать l(Module). Наконец, вы также можете быть заинтересованы в создании Эрланг релиз "обернуть" все ваши приложения Erlang.


редактирование и компиляция выполняется 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

~УНЧ