ruby-trunk-changes r37430 - r37462

今日はたくさんコミットがありました。 REXML の修正や VM の不具合修正などがありました。

nobu:r37430 2012-11-03 04:14:24 +0900

KNOWNBUGS.rb にあった yield するメソッドの ensure 節でブロックのあるメソッドを呼びだしてさらにそのブロック内で Proc.new するとエラーになる不具合を修正。[ruby-dev:45656] [Bug #6460]

shugo:r37431 2012-11-03 09:09:26 +0900

refinement のテストで send や Symbol#to_proc の挙動についてのテストを追加しています。

nari:r37432 2012-11-03 10:37:50 +0900

__dir__ というメソッドで File.dirname(__FILE__) を返す機能を追加しています。 [Feature #3346]

nari:r37433 2012-11-03 11:35:36 +0900

NEWS ファイルに rb_newobj_of() と NEWOBJ_OF() という新規API について追記しています。

nari:r37434 2012-11-03 11:35:39 +0900

NEWS ファイルに GC::Profiler.raw_data メソッドの新設について追記しています。

zzak:r37435 2012-11-03 11:45:15 +0900

Hash#delete_key の rdoc の文法修正。

kou:r37436 2012-11-03 12:05:28 +0900

rexml のテストのファイル名変更のみ。

kou:r37437 2012-11-03 12:06:50 +0900

rexml のテストのメソッド名変更のみ。

glass:r37438 2012-11-03 12:21:47 +0900

r37420 で修正した Array の比較の再修正です。 eql? を呼び出すとそこで Rubyスクリプトを呼ぶ可能性があり配列の長さが変化する可能性があるので再取得しているのですが、2つの配列のサイズが同じであればインデックスとの比較はせず次の要素を取り出そうとしていたので、インデックスとの比較もチェックするようにしています。ちなみにサイズが変更されて最後になってしまったら false を返すようです。 [ruby-dev:46373] [Feature #6177]

kou:r37439 2012-11-03 12:41:26 +0900

REXML::Encoding を使って XMLエンコーディング指定を元に変換するのをやめています。 REXML::XMLDecl#encoding を廃止。 XML タグで指定されるエンコーディング名を upcase で揃えるのもやめているそうです。

kou:r37440 2012-11-03 12:53:09 +0900

REXML::Document#write の rdoc に encoding オプションについて追記しています。 またエンコーディングの変換に常に xml タグで定義してあるエンコーディングを用いるようにしています。 [Feature #4872]

kou:r37441 2012-11-03 12:55:06 +0900

r37439 で REXML::Document でエンコーディング名が upcase されなくなった変更に追随するようにテストを修正しています。

kou:r37442 2012-11-03 13:03:55 +0900

標準ライブラリ rexml で REXML::Document#write にエンコーディング指定をすると xml タグの属性のエンコーディング名にも反映される機能がなくなったのでそれに追随してテストを修正しています。

zzak:r37443 2012-11-03 13:27:56 +0900

IO#open の rdoc のフォーマット修正。 [ruby-core:48052] [Bug #7179]

zzak:r37444 2012-11-03 13:28:38 +0900

r37443 の ChangeLog エントリを追加しています。

kazu:r37445 2012-11-03 13:40:42 +0900

r37424, r37432, r37440 の ChangeLog エントリの typo 修正。

kou:r37446 2012-11-03 13:46:06 +0900

r37439 と r37441 の REXML のエンコーディングについての変更を revert しています。 ML 呼んでないのでよく事情がわかりませんが、仕様変更を含むのでだめだったんでしょうか。

zzak:r37447 2012-11-03 13:47:49 +0900

Dir#glob の rdoc のフォーマット修正。 [ruby-core:48528] [Bug #7230]

kou:r37448 2012-11-03 13:58:03 +0900

REXML::Document でエンコーディング名が upcase されるように戻ったので r37441 で変更したテストをまた戻しています。

kou:r37449 2012-11-03 14:11:00 +0900

NEWS ファイルに REXML::Document#write と new のオプション引数のサポートと :encoding オプションの追加について追記しています。

kou:r37450 2012-11-03 14:42:40 +0900

ちょっと読み切れてないのですが REXML::Output で encoding の設定で UTF-16 が設定されていたら BOM を出力するようにしています。コミットメッセージには出力の途中に BOM を出力しないように(つまり先頭には出力するということなのでそれはいいのですが)、と書かれているので、これまでは途中に出力される可能性があったのだろうと思いますが、それに関する変更はみあたりませんでした。
[追記]コメント欄で kou さん(須藤さん)に教えていただきましたのでそちらを参照してください。途中の文字列の断片のエンコード変換で UTF-16BE で変換しているので最終的に全体に BOM を付与するために最後に UTF-16 に変換して BOM を付与するようにしているということのようです。[/追記]

kou:r37451 2012-11-03 14:43:28 +0900

REXML::Document#initialize でエンコーディングのチェックをするために upcase されたエンコーディング名を利用するようにしています。

kou:r37452 2012-11-03 14:44:31 +0900

標準添付ライブラリ rexml の REXML::XMLDecl#content でエンコーディング名を判定する正規表現に \A, \z を追加して厳密に一致させるようにしています。
[追記]この \z は \Z でなくてもいいのでしょうか[/追記]

tadf:r37453 2012-11-03 14:47:32 +0900

拡張ライブラリ date の TIGHT_PARSER マクロが定義されていた時のパーサの正規表現を修正しています。デフォルトでは無効になっているので動作に変更はありません。

tadf:r37454 2012-11-03 14:59:08 +0900

拡張ライブラリ date の TIGHT_PARSER が定義されていた時の正規表現にもうひとつ修正が入っています。これもデフォルトでは無効なので動作には変更ありません。

kou:r37455 2012-11-03 17:56:22 +0900

lib/test に 標準添付の Test::Unit と test-unit.gem の互換性向上の為の変更を加えているようです。

ktsj:r37456 2012-11-03 18:14:28 +0900

r37455 の ChangeLog の重複した行を削除。

ktsj:r37457 2012-11-03 18:18:58 +0900

詳細を読み込めていませんが rb_vm_rewrite_ep_in_errinfo() の呼び出しを proc_new(), vm_make_env_each() から rb_vm_make_env_object() にまとめるように移動しています。

ktsj:r37458 2012-11-03 18:41:38 +0900

rb_vm_rewrite_ep_in_errinfo() を他のファイルから呼ぶ必要がなくなったので static 関数の vm_rewrite_ep_in_errinfo() にまとめています。

tadf:r37459 2012-11-03 22:39:54 +0900

拡張ライブラリ date の rdoc 用コメントの修正。主に "For sample" という文を消しています。

tadf:r37460 2012-11-03 23:39:50 +0900

Complex と Rational の rdoc 用コメントの修正。サンプルの追加や修正があります。

nagachika:r37461 2012-11-04 04:51:38 +0900

r37444 (r37443 のための ChangeLog 追記) と r37447 で ruby-core の参照が "#" で区切られていたのを ":" 区切りに修正しています。
いやまあこれを間違うとこの ruby trunk changes の生成のためのツールが自動リンクに失敗するんですよね。

svn:r37462 2012-11-04 04:51:43 +0900

version.h の日付更新。