ruby-trunk-changes r36241 - r36246

今日は昨日追加された Module#prepend について追加の修正などがありました。けどまだもうちょっと考える必要がありそうです。

nobu:r36241 2012-06-28 06:12:46 +0900

Module#prepend した Class/Module に対して ancestors メソッドを呼ぶと

  • 順番が include と同じで prepend した Class/Module → prepend に渡された Module の順番になる
  • Class というのが入りこむ

という問題の対処をしています。よく読まずに重複だと思ってしまいましたが、厳密にはちょっと違う内容でしたね。 [ruby-core:45919] [Bug #6658] [ruby-dev:45861] [Bug #6659]
しかしまだ superclass や include したモジュールなど継承ツリー上の上流に prepend した Class/Module があった時には同じような問題が残っているようです。 [ruby-dev:45868] [Bug #6662]

svn:r36242 2012-06-28 06:12:51 +0900

version.h の日付更新。

nagachika:r36243 2012-06-28 09:39:52 +0900

Module#prepend を使った Module/Class に対して instance_methods(false) と superclass などを辿らずにインスタンスメソッドを取得しようとすると常に空配列が帰ってきてしまう不具合を修正しています。メソッドテーブルが RCLASS_ORIGIN() が指している IClass に移動してしまっているので、引数が false で親を辿る必要がない時はそこから探索するようにしています。 [ruby-dev:45863] [Bug #6660]
しかしチケットにも書きましたがこれだとまだ不十分なケースがあるかも。

akr:r36245 2012-06-28 19:38:26 +0900

exec/spawn のオプション :close_others の rdoc に close-on-exec がセットされている file descriptor はこのオプションに依らず exec 時に close される旨追記しています。

luislavena:r36246 2012-06-28 21:33:12 +0900

Win32OLE のテストを修正しています。 Windows の FileSystemObject が ANSI か UTF-16LE のエンコーディングしかサポートしていないのでエンコーディングの指定を変更しています。 [Bug #6650]