Erlang
プログラミング言語
旧 rebar は rebar generate で reltool を呼び出す。
reltool は relディレクトリ以下で作業を行う。
rel/files 以下が各種設定のソース。
参考:
Erlangリリースことはじめ
すごいErlang愉快に学ぼう 24章
----
rebar3 は relx を使う
分散アルゴリズムを紹介しているメモ
https://gist.github.com/sile/b24a0b45f6ab60adbc12
https://twitter.com/voluntas/status/1020892332382511104
Erlang VM でコード書く時は「自分で考えられる範囲までの対応は全てする、もしそ想定外が起きた場合はクラッシュしても他のプロセスに影響がないようキレイに終了させるようにする
再起動戦略はできるだけ使わない」が正解
Erlang/OTP 想定できないエラーですらできるだけ対応できるようにコード書くのが基本
そんな中でも軽量プロセス内でクラッシュした時に周りへの被害が最小限というだけ
プロセス再起動なんかうまく使えてる人ほとんどいない
Erlangが速いのは、
* パースが楽な比較的シンプルなプロトコルやデータで
* 通信やI/Oの頻度がそれほど高くなくて
* 全コアがカツカツにならない程度のジョブ数で
* Erlang外との連携が少ない
状況下ではないかな。
https://twitter.com/mizushika1/status/1171416411903688704
Erlangのアロケータについて
https://twitter.com/mizushika1/status/1245692572854439938
rebar3, cowboy で hello, world を返すチュートリアル
https://cpplover.blogspot.com/2020/04/walkthrough-of-hello-world-http-server.html
Erlang tooling in 2020
https://notamonadtutorial.com/erlang-tooling-in-2020-b9606596353a
Erlang処理系の発展の歴史
http://blog.erlang.org/the-road-to-the-jit/
Rust製のBEAM実装
https://github.com/lumen/lumen
riak_core のチュートリアル
https://twitter.com/warianoguerra/status/1189903329859637249
https://twitter.com/joeerl/status/934474070061658113
https://gyazo.com/8afbfec6287b0f8aee94f75136649892