ruby-trunk-changes r38298 - r38323

今日は Refinement と include の併用時の挙動の修正、Matrix#{row,column}_size の名前変更、RDoc のオプション追加 Fiddle::Function.new の引数追加などがありました。

shugo:r38298 2012-12-11 01:05:45 +0900

Refinement の修正です。 Module#refine のブロック内で include した時に refinement の影響範囲内にのみ Mixin が効き、また super で辿る順が refine したメソッド -> include で Mixin したモジュールのメソッド -> 元のメソッドとなるようにしています。この変更はややこしいので refine 内での include は禁止したほうがいいかも、と書かれているので最近の流れからするとやっぱり禁止されることになるかもしれません。

svn:r38299 2012-12-11 01:05:50 +0900

version.h の日付更新。

marcandre:r38300 2012-12-11 01:53:57 +0900

標準ライブラリ matrix.rb でドキュメントやメソッドの引数の row_size/column_size を row_count/column_count に変更して、同名のメソッドも alias を貼って xxx_count のほうを使うように統一しています。 xxx_size は意味がわかりにくい/誤解しやすいからだそうで、英語圏の人が言うからにはそうなのでしょう。個人的にはだいたいわかるだろという気がしますけど。 [ruby-core:49409] [Bug #7369]

naruse:r38301 2012-12-11 01:57:23 +0900

r38296 で追加していた RubyGems の rubyci でのテスト用のデバッグプリントをさらに追加しています。

naruse:r38302 2012-12-11 11:32:35 +0900

そして原因がわかったらしく r38296 と r38301 で追加したデバッグプリントを削除しています。

naruse:r38303 2012-12-11 11:38:20 +0900

ビルド時に miniprelude.c を生成するために $BASERUBY を使って tool/compile_prelude.rb を実行する時に、-I$(srcdir) が指定されていて、ソースディレクトリでビルドしていると生成中の rbconfig.rb がロードされてしまってエラーになるという事故を防ぐため、-I オプションの指定を削除しています。 [ruby-core:50736] [Bug #7541] が、後に r38308 で revert されています。

naruse:r38304 2012-12-11 11:58:54 +0900

r38041 で $LOADED_FEATURES に文字列以外のオブジェクトが含まれていて SEGV した時などにバックトレースを生成するために to_str を呼ぶとそこから Ruby のメソッドが動いてしまう可能性があるので、T_STRING 以外のものを文字列化するのは諦めてクラス名と VALUE 値だけ表示するようにしたのを revert しています。よくわかりませんがこれが SEGV の原因になっているそうです。(参考URL: http://fb.rubyci.org/~chkbuild/ruby-trunk/log/20121130T090301Z.diff.html.gz とはいれこれを見てもなぜなのかわかりませんでしたけど)

naruse:r38305 2012-12-11 12:02:04 +0900

r38294 での ext/dl/win32/extconf.rb に追加されたメソッド呼び出しの typo 修正。

nobu:r38306 2012-12-11 12:37:16 +0900

test/ruby/test_settracefunc.rb に require_relative "envutil" を追加しています。単体で走らせた時に必要だったようです。

nobu:r38307 2012-12-11 12:37:19 +0900

RUBY_DTRACE_METHOD_RETURN_HOOK() という関数マクロがセミコロンを後ろにつけないスタイルになっていたので、定義を do{ ... } while(0) で括って(複文の関数マクロを定義する時の定石ですね)、利用しているところでセミコロンを後置するようにしています。

naruse:r38308 2012-12-11 15:13:41 +0900

r38301 で miniprelude.c を生成する時のコマンドラインから -I$(srcdir) を削除したのを revert しています。ビルドエラーが直らなかった模様。

naruse:r38309 2012-12-11 15:13:43 +0900

tool/make-snapshot で $BASERUBY の実行時に受け付けていれば --disable-gem オプションを追加しています。 [ruby-core:50736] [Bug #7541]

drbrain:r38310 2012-12-11 15:25:56 +0900

ext/pathname/lib/pathname.rb の内部的に使うメソッドに :nodoc: タグをつけて RDoc でドキュメント化されないようにしています。

drbrain:r38311 2012-12-11 16:44:56 +0900

rdoc のコマンドラインオプションに --page-dir を追加してリンクの相対パスの起点にするようにしているっぽいです。例によってテストが単体テスト的なので最終的な生成物にどう影響するのかはわかりませんが。

drbrain:r38312 2012-12-11 16:57:56 +0900

r38311 の ChangeLog エントリの追加と doc/.document の追加と make rdoc 時に --page-dir オプションの指定を追加しています。指定したディレクトリ配下のファイルをトップレベルにあるように処理するためのものだったみたいですね。

kazu:r38316 2012-12-11 18:31:26 +0900

r38298 の変数名および ChangeLogtypo 修正。

ngoto:r38322 2012-12-11 19:41:00 +0900

拡張ライブラリ fiddle の Fiddle::Function.new でキーワード引数の :name にて Fiddle::Function#name の指定を受け付けるようにしています。 r38243 で instance_eval を使って無理矢理セットしていたのを正式に initialize の引数で対応しています。 [ruby-core:50566]

kazu:r38323 2012-12-11 21:38:42 +0900

test/ruby/marshaltestlib.rb のコメントの typo 修正。