HaskellとRuby1.8までのグリーンスレッド
HaskellとRuby1.8までのグリーンスレッドを比較されてたのですが、自分の中でうまく理解できてなかったのでもう少し考えてみた。
nari3
@nari3
GVLの話で思い出したけど、山本さんが書かれてたユーザスレッドの話って( http://t.co/jmqrhonlZ3 )どうなんだろう。Ruby側からの意見がなかった気がするけど、書いてあるとおりってことなんだろうか。
2013-03-29 11:18:35
nari3
@nari3
"We have an accurate GC, which means that the Haskell stack can be movable, whereas the C stack isn't" うーん…?
2013-03-29 11:28:23
nari3
@nari3
@mrkn いやー、なんかそのへんが次の記事(http://t.co/222u0MuiHU)で関係ないよ、とか言われてたみたいなので。実際のところはどうなのかなと思いまして。
2013-03-29 11:45:10
小崎 資広
@kosaki55tea
@nalsh @mrkn @nari3 Rubyのファイバーだって環境限定ならコピーせずに出来てるので、気合いれたらコピー回避できるはある程度真ではないかな
2013-03-29 11:48:09
小崎 資広
@kosaki55tea
@nalsh @mrkn @nari3 Rubyの場合はVALUEにポインタをそのまま埋め込むオブジェクトモデルだからスタック移動むつかしいけど、なんらかの相対アドレスがはいっててVMスタックの構造が注意深く定義されてたら出来るんでないかな
2013-03-29 11:49:37
小崎 資広
@kosaki55tea
@nalsh @mrkn @nari3 いやだから、それはRubyの拡張ライブラリの仕組みにすぎないので、他の言語で出来ない理由になってないよ
2013-03-29 11:53:31
nari3
@nari3
CRubyとはそもそも処理系を実装するアプローチが違うってことなのなあ。なるべくHaskellで処理系書いてるので、Haskell threadsみたいなのが作れて、そこには必要な情報しかないから切り替えるのも簡単〜、やった〜、みたいな話なのかも。
2013-03-29 11:53:59