ruby-trunk-changes r48097 - r48114

今日も unicode_normalize 関係の変更の他、REXML の不具合修正、存在しないキーワード引数を渡した時に意図しないブロック呼び出しが行われる不具合の修正などがありました。

nagachika: r48097 2014-10-22 22:55:24 +0900

r45274 で OpenSSL の SSL/TLS 設定のデフォルトを変更したのですが、OpenSSL::SSL::OP_NO_SSLv3 が未定義の場合にオプションが上書きされない状態だったので修正しています。 [ruby-core:65711] [Bug #9424]

nobu: r48099 2014-10-23 02:25:35 +0900

make の依存関係不足で lib/unicode_normalize/tables.rb の生成が走らないのを修正しています。 [ruby-core:65840] [Bug #10414]

svn: r48100 2014-10-23 02:25:50 +0900

version.h の日付更新。

nobu: r48101 2014-10-23 02:33:02 +0900

make の update-unicode と $(UNICODE_FILES) のルールと依存関係を反転させています。 ALWAYS_UPDATE_UNICODE=yes にしても毎回更新確認されないようになっていたそうです。 [ruby-core:65842] [Bug #10415]

nobu: r48102 2014-10-23 03:41:54 +0900

unknown_keyword_error() で受け付けないキーワード引数のエラーを処理すようとした時に Hash の要素の削除に rb_hash_delete() を呼んでしまっていたので、メソッドに渡されたブロックを yield してしまっていたので st_delete() を使って直接 st_table から削除するようにしています。不可解な挙動だなーと思ったらこんな罠があったとは。チケットのほうでは rb_hash_delete() をブロックを呼ばないように修正しようという案も出ています。 [ruby-core:65837] [Bug #10413]

duerst: r48103 2014-10-23 10:21:25 +0900

NEWS ファイルに String#unicode_normalize, String#unicode_normalize!, String#unicode_normalized メソッドの追加について追記しています。

normal: r48104 2014-10-23 10:36:55 +0900

fork のテストでエラーを発生した時に exit! で終了ステータスに反映させるようにしています。親プロセスでチェックしているけど意味がなかったんですね。

normal: r48105 2014-10-23 10:37:04 +0900

fork のテストで pipe からの読み込みを待つのに Timeout.timeout を使ってタイムアウトするようにしていたのを io/wait を使って IO#wait_readable でタイムアウトするように変更しています。高負荷な状態ではTimeoutを使うよりこちらのほうが性能への影響が低いので失敗しにくくなるだろうということみたいです。

normal: r48106 2014-10-23 10:50:45 +0900

insns.def の getlocal と setlocal 命令に最適化命令についてコメントを追加しています。

kou: r48107 2014-10-23 16:26:39 +0900

rexml のテストで assert_equal の expected と actual が反対になっていたところがあったので修正しています。

kou: r48108 2014-10-23 16:31:31 +0900

rexml のテストでテストメソッドやテスト用のデータファイルの名前が昔の REXML のバグ管理番号を元にしたものだったので改名しています。

kou: r48109 2014-10-23 17:23:10 +0900

標準添付ライブラリ rexml で Encode.default_internal が設定された状態で XML ドキュメントを読み込んだ場合に、読み込み元の IO の Encoding ではなくて default_internal が効いてしまっていたのを修正しています。 [ruby-dev:48686] [Bug #10418]

nobu: r48111 2014-10-23 19:13:29 +0900

object_id と __send__ などいくつかのとても基本的なメソッドは再定義すると警告が出るようにしているのですが、BasicObject を継承したクラスなど元々 object_id がないのに object_id を定義しようとするとこの警告が出てしまっていたので、元々メソッドが存在する時だけ警告するように修正しています。 [ruby-dev:48691] [Bug #10421]

nobu: r48112 2014-10-23 19:16:24 +0900

test/ruby/test_object.rb が ruby-moe.el で誤検出でハイライトがおかしくなるそうで、それを回避するため正規表現リテラルを %r 記法を使うように変更しています。

nobu: r48113 2014-10-23 21:36:25 +0900

unicode_normalize のテストで assertion のメッセージの生成を Proc オブジェクトに包んで遅延することで高速化を図っています。

nobu: r48114 2014-10-23 21:42:57 +0900

r48102 の受け付けられないキーワード引数のエラー処理時にブロックが呼ばれてしまう問題の再修正。 エラー処理のほうを変更するのではなくて、rb_hash_delete() はブロックの呼び出しをしないように変更しています。 [ruby-core:65861] [Bug #10413]