Ruby on Erlang!!! errubyの紹介 #RubyKaigi #RubyKaigiB

ErRuby: Ruby on Erlang/OTP @johnlinvc "ErRuby: Ruby on Erlang/OTP Concurrency will be an important feature for future Ruby, and Erlang programming language is famous for its concurrency features such as Actor model, Lightweight process and ability to build fault tolerant distributed systems such as the telecom. 続きを読む
0

黒曜@Leaner Technologies @kokuyouwind

次はErlangの話が面白そうなのでB会場に移動。 #rubykaigi #rubykaigiB

2016-09-08 11:16:30
黒曜@Leaner Technologies @kokuyouwind

Ruby実行系のErlang実装の話。台湾の方。「I ♥Programming Language」のスライドの中にHaskellアイコンも入っててなるほど感 #rubykaigi #rubykaigiB

2016-09-08 11:22:51
黒曜@Leaner Technologies @kokuyouwind

ErlangでRubyの完全な実装ができれば、Rubyの表現力とErlangの並行実行管理が両立できるよね、というのがモチベーション #rubykaigi #rubykaigiB

2016-09-08 11:24:01
Tony 不带水 @tony612_han

https://t.co/PXMW7acRPT 所有言论仅代表个人观点。熟悉 #go #docker #k8s #grpc #envoy #servicemesh,学习 #rust 中。欢迎推荐后端工作机会。偶尔怀疑人生,又偶尔觉得十分幸运

https://t.co/9raYmtE8ED

黒曜@Leaner Technologies @kokuyouwind

errubyの目指すところは、Rubyのmajor featureと実験的なconcurrent機能の実装。これをErlang VM上で実行出来るようにする github.com/johnlinvc/erru… #rubykaigi #rubykaigiB

2016-09-08 11:25:42
リンク GitHub johnlinvc/erruby erruby - ruby on erlang
黒曜@Leaner Technologies @kokuyouwind

Erlang基礎の話。不変データ型、単一代入、アクターモデルあたり。この辺はまぁ。 #rubykaigi #rubykaigiB

2016-09-08 11:27:40
黒曜@Leaner Technologies @kokuyouwind

実装の話が始まった。Rubyは複雑な言語でparseがきつい #rubykaigi #rubykaigiB

2016-09-08 11:30:32
joker1007 (アルフォートおじさん) @joker1007

parser gemを使ってASTまで取ったのか。良いサボり方っぽい。 #rubykaigiB

2016-09-08 11:30:59
黒曜@Leaner Technologies @kokuyouwind

parseできたらabstruct syntax treeを作る。で、ErlangはimmutableだけどRubyはmutableなので、continuation passingを使って辞書の変化を表現する。 #rubykaigiB #rubykaigi

2016-09-08 11:32:56
joker1007 (アルフォートおじさん) @joker1007

状態を暗黙的に次の評価に渡すのか。モナドっぽい形でErlangVM上にmutableな構造を実装してるっぽい。 #rubykaigiB

2016-09-08 11:33:11
黒曜@Leaner Technologies @kokuyouwind

Rubyのobjectをどう実現するか。Erlangのオブジェクトと対応させ、メッセージを受け取ったらまずメッセージを返してから状態をアップデートする(再帰呼び出しする) #rubykaigi #rubykaigiB

2016-09-08 11:36:32
黒曜@Leaner Technologies @kokuyouwind

「インスタンス変数への代入は普通にメッセージング。メソッドの定義は返信メッセージに引数の数を含めたりする。」 あーそうか、evaluateの話だから、クラスの状態をどんどん変えてくことになるのか #rubykaigi #rubykaigiB

2016-09-08 11:41:29
黒曜@Leaner Technologies @kokuyouwind

「method invokeでは呼び出し側でeval argumentしたあと、受け取り側でpush a new frame, bind argument, eval bodyの手順で進める。」 frameの説明を聞き逃した #rubykaigi #rubykaigiB

2016-09-08 11:44:21
黒曜@Leaner Technologies @kokuyouwind

experimental featureの話。薬品アイコンと爆弾アイコンが並んでてウケる。First class concurrency。プログラマはハッピーになるが、マシンはそうでもない #rubykaigi #rubykaigiB

2016-09-08 11:45:56