Rubinius に Module#include のパッチ送ってみました

前に Rubinius の Module#inlcude がおかしいから直すって書いたきり、直してないのを思い出しました。

Rubinius で循環継承 - ¬¬日常日記

有言実行ということでとりあえずパッチを作りました(パッチは LightHouse のトラッカーに送ればいいみたいですね)。

これで Module#include が CRuby と同じ振舞いになります。それにしても Rubinius の流儀とかマナーとか良く分かりません。とりあえず送ってみて様子を見ることに。

と、これだけ書いてもつまらないので Rubinius での開発方法をメモしておきます。

  1. git からコードをダウンロード
  2. とりあえず rake build してみる
  3. スペックを書くとかして、とにかくあるべき振舞いを定める
    • 今回は既に spec/ruby/1.8/core/module/include_spec.rb があるのでこれを使いました
  4. コードを書く
    • 今回は kernel/core/module.rb にある Module#include を修正
  5. 再び rake build
  6. テストしてみる
    • ./bin/mspec spec/ruby/1.8/core/module/include_spec.rb みたいな感じ
  7. 修正が終わったら、一応全体のテスト rake spec:full も通してみる

こんな手順で良さそうな気がします。ちなみに以下の文書を参考にしました。

http://rubinius.lighthouseapp.com/projects/5089/howto-develop-with-a-separate-rubyspec-repo

ところで spec/ruby/1.8/core/ 以下は色々とテストが通らないものがある気がするのですが、Rubinius はまだそういう感じなのでしょうか。直した方がいいの?それとも私はなにか勘違いしてるのでしょうか。