タグ

erlangとhot-code-loadingに関するnabinnoのブックマーク (4)

  • Introduction | Learn You Some Erlang for Great Good!

    25.1. appupとrelupのしゃっくり¶ コードのホットローディングは、Erlangの中でも最も簡単な事の1つです。 再コンパイルして、完全修飾関数呼出し(fully-qualified function call)をして、それで完了です。 しかしながら、これを正しく安全に行うのはもっとずっと難しいのです。 コードをリロードすることを難しくしている、非常に単純な課題が1つあります。 素晴らしいErlangプログラマの脳みそを使って、gen_serverのプロセスを考えてみましょう。 このプロセスは、1種類の引数だけ受け取る handle_cast/2 関数を持っています。 この関数を異なる種類の引数を取るように更新して、コンパイルして、プロダクション環境にプッシュします。 すべて順調に動いていますが、停止させたくないアプリケーションがあるので、プロダクション環境のVMにロードして実

  • 使いたい!ホットコードローディング - Qiita

    Erlangといえば、まずが思い出したのはなんだろう?OTPとか、アクターモデルとか、パターンマッチとか、Erlangerにとってどちらも日々仕事の中で当たり前の概念になりましたよね。でもその中にはなんとかひとつ神秘な場所が存在するじゃない?暗くて危ない、都市伝説のような、それはホットコードローディングである。 Erlang地獄、そして最下層? 有名な Erlang 教科書『Learn you some Erlang for great good』の中で、ホットコードローディングについてこう書かれています これからOTPの中で最も複雑で、理解しがたく、正しく動作させることが難しく、時間もかかる部分の内の1つについて話そうとしています。 事実、すべての手順(以下relupと呼びます)を避け、単純にVMを再起動し新しいアプリケーションを起動することで更新ができるなら、そちらを選ぶことをおすすめ

    使いたい!ホットコードローディング - Qiita
  • Introduction | Learn You Some Erlang for Great Good!

    15. 並列アプリケーションを設計する¶ すべていい感じです。概念は理解されたと思います。 が、再度いいますが、このの最初からやってきたことは全部おもちゃです: 計算機、ツリー、ヒースローからロンドン、などなど。 そろそろ何か楽しくてもっと役に経つことをすることです。 並列Erlangで小さいアプリケーションを書きましょう。 アプリケーションは小さく行を基にしているけれど、それでいて役立つしそれなりに拡張できるものになります。 私はいくらか考えが体系立っていない人間です。 宿題を忘れたり、アパートの周りですることを忘れたり、このや、仕事、ミーティング、約束などなど良く忘れます。 結局タスクであふれた何十ものリストを書く羽目になって、それでもなおやり忘れたり、見直しを忘れたりします。 希望的にはあなたにもすべきことのリマインダーが必要であってほしいです。(しかしあなたの場合は私ほど欲しい

  • 3分で分かる Erlang hot code loading - Qiita

    安っぽいタイトルを付けてしまい大変申し訳ありません。 Hot code loading とは、データはそのままでコードだけ最新のやつに差し替える Erlang VM の機能です。 うまくやると無停止で運用できるので嬉しかったりしますが、ちゃんとわかって使わないと謎の挙動に苦しむことになるのでちょっと調べてみました。 概要 まずは 公式ドキュメント を見て、一部動作を予想しつつまとめてみました。最低限、これだけ覚えておけば勝つる。 ■関数の実体 ある関数の実体が所属する世界は current, old の2種類ある. ■関数の実体の解決方法 「Fully qualified function calls」や「Fully qualified functionが入った変数」は常に current のやつを指す. そうでないものは現在実行中の関数が所属する世界のやつを指す. ■コード更新時の処理

    3分で分かる Erlang hot code loading - Qiita
  • 1