BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Rubiniusの話のまとめ:SendSites、情報源、プロジェクトマネージメント

Rubiniusの話のまとめ:SendSites、情報源、プロジェクトマネージメント

Rubiniusの動向に追いつく一番良い方法は、#rubinusというIRCチャンネルに参加するか、#rubinius IRCチャンネルのログ(source)を参照することだ。IRCチャンネルは、情報源として優れているが、本当に必要としている情報に辿り着くのに雑談を沢山読まないといけない。IRCチャンネルでは、目的としている情報を取得するのに時間がかかるが、二つの新しいブログによって、Rubiniusの開発に関する情報に追いついて行く事がより簡単になるのだ。

Unwinding the stack(source)というブログは、Rubiniusプロジェクトに関する新しい週刊ニュースレター(source)に関するイベントのアイデアを提供している。Michael Klishin氏は、このブログのオーナーであり、rubinius-bookプロジェクトをGitHub上(source)で始めました。これは、Rubiniusに関する様々な話題の概要を提供する目次(source)からなるものだ。Githubプロジェクトの性質(参考記事・英語)が故に、ブランチを新しく作り、プロジェクトの小さな部分に取り組むことによって簡単にプロジェクトに関わることが出来る。GitHub によって、ブランチ間の変更の経過を追う事が出来たり、ブランチ間で行われた様々な種類のマージを追う事が出来るので、このことにより、全ての人が、 rubinius-bookプロジェクトを初めから始めたり、共有したり出来る。また後者のオプションで、マージしたものをマスターブランチへ戻す事が出来るのだ。

 
もうひとつの新しいRubiniusブログは、Building a Better Ruby(source)というAdam Gardiner氏(フルスピードのRubiniusデバッガ開発者(参考記事・英語))によるもので、Rubiniusの基本的な構成概念に関する長い記事が二つ既に掲載されています。


Adamは別の記事で、Sendsitesの説明をしている(source)

Rubinius SendSite[…]は、オブジェクトで、それはあらゆるsend site(メソッドコール)用にRubiniusのバイトコードで作られており、また最適化を容易にします。

混乱を避けるための説明:「send site」とは、コード上でメソッドが実行される箇所だ。SmalltalkやRuby用語を使うと、「メッセージ送信」で、例えばfoo.barのことだ。Adam 氏が、記事の中で説明しているように、SendSitesは、様々な最適化を行うのに必要だ。またそれらの最適化の中で、ポリモフィックなInline Cachesのような概念のためにも必要だ。Inline Caches(サイト・英語)はメソッドのルックアップの結果をキャッシュし、従って多くの場合バーチャルコールのコストを下げている。

Adam氏が説明するように、Sendsitesの実装の副作用は、とても有益だ。

 [A]SendSiteは、Selectorオブジェクトへの参照を含みます。Selectorは、メッセージすなわちメソッド名を意味するオブジェクトだ。Selectorは、メッセージのシンボルから成ります。また同じメッセージを使用するSendSiteへの多数のリンクからも成っている。特定のメッセージを直接的に使う能力を提供しているので、これはとても役に立つかもしれない。(例えば、送信を経た間接的な用途や様々なevalを捕捉出来ないなどがあるが)

これによって、SendSiteが使われるたびに、即ちメッセージ送信が行われるたびに、SendSiteがカウンターを増加させる事実と共に、ロード済みのコードとその振る舞いとパフォーマンス分析するのために非常に有益なツールを書く事が出来ます。
もっとも重要な事:Selectors and SendSitesは、Rubyのコードからアクセス可能なので、この情報の全ては、irbシェル又はロード済みのRubyのコードからインタラクティブにアクセス可能だ。Full speed Rubinius debuggerが、同様に命令コード置き換えを使用しているRubyで書かれているということを考えると、Rubiniusのデザインとトランスペアレンシーは、計測モニタリング用のツールを記述する強力なプラットホームであることが分かる。


最後に、Rubiniusを創ったEvan Phoenix氏のMountainWest Ruby会議2008のビデオ(VTR・英語)がアップされている。そのビデオではRubiniusプロジェクトがどのように組織されて、新しい開発者の参入障壁を低くする「Free flowing commit bit」戦略に伴う経験を説明している。

Rubiniusに関する今までの情報をチェックしてみて下さい(参考記事)

この記事に星をつける

おすすめ度
スタイル

BT