9

Erlang アプリケーションを編集し、コードをコンパイルし、実行結果を確認する最速の方法は何ですか? できれば、最後のステップで Erlang シェルにジャンプします。

私の現在の初心者のセットアップ:

  • アプリをコンパイルし、erl シェルを起動するスクリプト。
  • 次に、application:start(foo) と入力します。
  • タイプミスを修正したら、モジュールを c('module') で再コンパイルし、アプリを再起動します。

もっと速い方法はありますか?ところで。私が選んだエディタは Emacs です。

4

4 に答える 4

13

これが私のセットアップです:

  • 開発中は、Erlang シェルを別のターミナル ウィンドウで開いたままにしています。
  • エディターから (キーの組み合わせを使用して) コンパイルを開始するかmake、ソース ディレクトリに入力するだけでコンパイルを開始します。
  • l()コンパイル後、Erlang シェルに入力して、変更されたすべてのモジュールを一度にロードします。これとその他の便利なマクロは、http ://www.snookles.com/erlang/user_default.erl にあります。

Erlang アプリケーション全体を再起動する必要はめったにありません。変更されたモジュールのリロードはより一般的な使用例であり、通常は変更を適用するだけで十分です。

アプリケーションの開始について: アプリケーションが他のアプリケーションに依存している場合、すべての依存関係を開始するまで application:start() は失敗します。そのため、ヘルパー関数を記述するのが一般的<your-app-name>:start()です。ここにがあります。もう 1 つの便利な関数は<your-app-name>:stop().

これらすべての手法を適用すると、ワークフローは次のようになります。

  • Erlang シェルを起動し、開いたままにします。タイプ<your-app-name>:start().
  • 変更を加えます。コンパイルを実行します。l()Erlang シェルに入力します。
  • 変更にアプリケーションの再起動が必要な場合は、次のように入力します<your-app-name>:stop(), <your-app-name>:start().
于 2011-04-27T20:48:23.623 に答える
2

鉄筋は建築ツールと見なされるかもしれません。makeモジュールmake:all/0全体も同様に役立ちます。シェルからモジュールを明示的にリロードするには、. 最後に、すべての Erlang アプリケーションを「ラップ」するために Erlangリリースを作成することにも関心があるかもしれません。l(Module)

于 2011-04-27T19:57:24.523 に答える
2

あなたも試すことができるのはerlbuildです。Erlbuild は、src ディレクトリで変更されたソース ファイルを検索し、いくつかのファイルが見つかった場合は、モジュールをコンパイルして再度ロードする単純なアプリケーションです。モジュールをロードした後、erlbuild はモジュールのテストを実行します。

プロジェクトは以下にあります: https://github.com/ulfa/erlbuild

〜ウルフ

于 2011-04-29T17:03:39.987 に答える
2

編集とコンパイルは、私が使用している IDE (Eclispe with erlide) によって行われます。

VM アプリケーションと便利なツールを起動するスクリプトも作成しました。スクリプトは開発時にのみ使用されます。

変更されたソースとコンパイルされたビンをリロードするには、mochiweb のリローダーを使用します。リローダーはbinディレクトリを監視し、変更がある場合はモジュールをロードし、内部にいくつかある場合は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 ツールバー -s

于 2011-04-28T05:31:47.727 に答える