Ускорение редактирования Erlang, компиляция, запуск/отладочный цикл

StackOverflow https://stackoverflow.com/questions/5809525

  •  25-10-2019
  •  | 
  •  

Вопрос

Какой самый быстрый способ отредактировать приложение 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top