ruby-trunk-changes r40216 - r40248

今日は CGI のタグ生成メソッド群のリファクタリングと、その他テストの修正がありました。

naruse:r40216 2013-04-11 03:35:21 +0900

拡張ライブラリ fiddle の Fiddle::Closure の作成時に mprotect(2) の戻り値をエラーチェックしていなかったのをチェックするようにしています。 rubyci で DL のテストが時々 SEGV しているのでここで mprotect によるメモリの実行権限付与に失敗しているのではないかと疑ったようです。結果は違ったみたいですけど。

svn:r40217 2013-04-11 03:35:26 +0900

version.h の日付更新。

naruse:r40218 2013-04-11 06:15:32 +0900

mkmf.rb の pkg_config に option 引数を追加して、オプション名を指定すると `pkg-config --"オプション" "パッケージ名"` の結果をそのまま返す機能を追加しています。

naruse:r40219 2013-04-11 06:15:37 +0900

拡張ライブラリ fiddle の extconf.rb で libffi のバージョンを pkg-config で(r40218 で追加した mkmf.rb の機能で)調べて RUBY_LIBFFI_MODVERSION マクロとし定義して、それをみて ffi_closure_alloc(), ffi_closure_free() を使うかどうかの判定をするようにしています。 古い libffi に不具合があるようなのでそれを回避しようとしているみたいです。 [ruby-dev:41483] [Bug #3371]

naruse:r40220 2013-04-11 06:16:44 +0900

アーキテクチャを判定するためのマクロの typo 修正(_M_AMD86 -> _M_AMD64)。

naruse:r40221 2013-04-11 06:59:13 +0900

test/test_curses.rb で pty 内の子プロセスで標準出力に出力した後に明示的に $stdout.flush でバッファクリアを呼ぶようにしています。

zzak:r40223 2013-04-11 09:27:39 +0900

File.fnmatch の rdoc コメントに {a,b} のような選択の記法についてと File::FNM_EXTGLOB フラグについての記述を追記しています。

nobu:r40224 2013-04-11 10:11:27 +0900

mkmf.rb がチェックのために生成する C のソースの警告を抑制するために main 関数の定義位置を移動しています。

naruse:r40225 2013-04-11 10:40:11 +0900

r40219 の続きで主に Windows 環境で RUBY_LIBFFI_MODVERSION が定義されない場合を考慮するようにしています。

knu:r40226 2013-04-11 11:12:15 +0900

r40223 の File.fnmatch の rdoc 追記の typo を修正しています。

usa:r40232 2013-04-11 13:21:34 +0900

dRuby のテストの後始末で子プロセスを kill するところで Windows 環境では Process.kill が Errno::EPERM を発生させることがあるのを対応しています。 [ruby-dev:47245] [Bug #8251]

naruse:r40233 2013-04-11 15:35:43 +0900

拡張ライブラリ dl および fiddle のテストでテストの teardown にて Linux の場合には GC を強制的に実行するようにしています。これも dl のテストでの SEGV を抑制するための対応で、Fiddle::Closure が残る(ffi_closure_free() が遅延する)と SEGV しているっぽいのでその調査のための修正みたいです。

naruse:r40234 2013-04-11 16:10:39 +0900

Mac OS XLinux でも USE_FFI_CLOSURE_ALLOC を 0 に定義して ffi_clousre_alloc()/free() を利用しないようにしています。 [ruby-dev:41483] [Bug #3371]

usa:r40235 2013-04-11 16:51:54 +0900

r40233 の文法エラー修正。

naruse:r40236 2013-04-11 16:53:26 +0900

r40233 の文法エラー修正もうひとつ。

xibbar:r40237 2013-04-11 17:04:27 +0900

標準ライブラリ cgi の html タグ生成メソッド群を __callee__ を使ってなんというメソッド名経由で呼ばれたかを使ってタグ名を解決することで、メソッド定義に eval を使うのを避けるようにしています。

hsbt:r40238 2013-04-11 18:32:42 +0900

r40223 の File.fnmatch の rdoc のサンプルの評価値の修正。

naruse:r40239 2013-04-11 20:03:21 +0900

r40183 の id.h, id.c の生成場所をソースディレクトリにする変更を revert しています。ソースツリー以外でのビルドがエラーになることがあったらしいです。

akr:r40240 2013-04-11 21:03:23 +0900

common.mk に記述しているいくつかのオブジェクトファイルの依存関係に internal.h や vm_opts.h, node.h, probes_helper.h を追加しています。また tool/update-deps を書き換えています。詳細は読んでいません。

xibbar:r40241 2013-04-11 22:22:58 +0900

test/ruby/test_regexp.rb で envutil.rb を読み込むのに require_relative を利用するようにしています。

xibbar:r40242 2013-04-11 22:23:01 +0900

r40237 で書き換えた CGI のタグ生成メソッドでタグの未定義の属性が無視される不具合があったのを修正。 [ruby-dev:47246] [Bug #8252]

akr:r40243 2013-04-11 23:22:04 +0900

tool/update-deps で依存関係を検出するために make -p でビルドする対象に golf も追加しています。

xibbar:r40244 2013-04-11 23:27:40 +0900

r40237 で書き換えた CGI のタグ生成メソッドで不要になっていたコードの除去とインデント修正。

xibbar:r40245 2013-04-11 23:27:44 +0900

同じく r40237 で書き換えた CGI のタグ生成メソッドで super でブロックも引き継げるようになっているので不要になった分岐を削除しています。

akr:r40246 2013-04-11 23:42:33 +0900

tool/update-deps で依存関係を抽出するための make -p のターゲットに ruby, miniruby を追加しています。 all は ruby と miniruby を含んでいるような気がしますが。そしていくつかのオブジェクトファイルに ruby.h への依存関係を追加しています。

naruse:r40247 2013-04-12 00:52:41 +0900

r40195 で IO::WaitReadable, IO::WaitWritable を include した例外のバリエーションを作った修正の一部で openssl での例外クラスが SSLErrorWaitWritable でないといけなかったところが SSLErrorWaitReadable になっていたのを修正。

svn:r40248 2013-04-12 00:52:46 +0900

version.h の日付更新。