タグ

2013年3月29日のブックマーク (3件)

  • HaskellとRuby1.8までのグリーンスレッド

    nari3 @nari3 GVLの話で思い出したけど、山さんが書かれてたユーザスレッドの話って( http://t.co/jmqrhonlZ3 )どうなんだろう。Ruby側からの意見がなかった気がするけど、書いてあるとおりってことなんだろうか。 nari3 @nari3 "We have an accurate GC, which means that the Haskell stack can be movable, whereas the C stack isn't" うーん…?

    HaskellとRuby1.8までのグリーンスレッド
    authorNari
    authorNari 2013/03/29
    グリーンスレッド,まとめてみた
  • Haskell(GHC)での軽量ユーザスレッドの実装方法 - あどけない話

    命令型言語の JavaRuby がユーザスレッドからカーネルスレッドに移行したのとは対照的に、関数型言語の Erlang や Haskell では軽量なユーザスレッドを提供することに成功しています。僕は、この違いが何から生じているのか理解したいと思っています。この記事では、これまで調べたことをまとめます。 軽量なユーザスレッドは Erlang が有名ですが、Haskell (GHC)でも利用できることを重ねて強調しておきます。Haskell の方が Erlang よりも速いようです。追記:フェアな比較ではないようなので、話半分で参照して下さい。 Rubyの場合 Ruby 1.8 まで提供されていたユーザスレッドは、軽量とは言えませんでした。その理由は、ユーザスレッドをコンテキストスイッチさせる際にスタックをコピーしていたからです。Rubyソースコード完全解説の第19章 スレッドによれ

    Haskell(GHC)での軽量ユーザスレッドの実装方法 - あどけない話
    authorNari
    authorNari 2013/03/29
    グリーンスレッド,考察,比較
  • on-stack replacement メモ - miura1729の日記

    今、LLVMのソースを読んでいます。そしたら、recompileAndRelinkFunctionなるメソッドを見つけました。後は、実行中のフレームを書き換える目処が付いたらLLVMでon-stack replacementできそうです。フレームを書き換えるところは、GC APIが有望そうなのですが、果たしてどうなることか・・・。 この日記は、Wikiみたいにすると後でいろんなページに飛ばなくて済むから便利かなと思って、新しいエントリーを起さずに更新を繰り返しています。更新履歴を書くようにしました。最後に更新した小項目を前に持ってくるようにしました。ただし、更新履歴, yarv2llvmへの応用のまとめは常に先頭です。 更新履歴 2009/04/06 ShadowStackについて更新しました。 2009/04/06 更新履歴を作りました。 yarv2llvmへの応用のまとめ 結局、gcr

    on-stack replacement メモ - miura1729の日記