ruby-trunk-changes r40864 - r40883

今日は StringScanner#[] の機能追加や GC::Profiler の項目の追加などがありました。

nobu:r40864 2013-05-21 03:07:31 +0900

rb_str_conv_enc_opts() で引数に渡された文字列オブジェクトのエンコーディングを変換する際に新しく作った文字列オブジェクトに tainted/untrusted フラグを反映させるようにしています。

svn:r40865 2013-05-21 03:07:37 +0900

version.h の日付更新。

nobu:r40866 2013-05-21 03:08:55 +0900

test-all のユーティリティを定義している test/ruby/envutil.rb の assert_separately で子プロセスで envutil.rb を require させるようにしています。

nobu:r40867 2013-05-21 03:10:34 +0900

テスト test/ruby/test_dir_m17n.rb で定義しているユーティリティメソッドで assert_ruby_status() を使っていたところを assert_separately を利用するように書き変えています。メッセージを明確にするためとのこと。

nobu:r40868 2013-05-21 03:11:23 +0900

Mac OS X の HFS ファイルシステム上で Dir.each でブロックパラメータに渡されるファイルパスのエンコーディングUTF-8-MAC から変換するようにしています。 r39821 で Dir.glob でマッチした時のパスのエンコーディング変換と同様の対応です。 [ruby-core:48745] [Bug #7267]

naruse:r40869 2013-05-21 15:08:04 +0900

r40868 で追加したテストで filesystem encoding が US-ASCII だった時にテストが失敗しないようにファイル名の文字列を ASCII-8BIT に force_encoding するようにしています。

ko1:r40870 2013-05-21 16:27:32 +0900

GC::Profiler のプロファイル出力用の関数で変数の型を修正したり構造体の内容のコピーを省いたりといった細かい変更を行っています。

nobu:r40871 2013-05-21 16:31:05 +0900

r40870 の ChangeLog の行末の空白除去

ko1:r40872 2013-05-21 16:36:34 +0900

GC::Profiler のテスト用に rdoc のベンチマークを実行する make ターゲット rdoc-bench を追加しています。

nobu:r40873 2013-05-21 16:40:03 +0900

r40872 で新規追加されたファイルの svn property 設定。

nobu:r40874 2013-05-21 16:41:05 +0900

r40872 の ChangeLog エントリの行末の空白除去。

nobu:r40875 2013-05-21 16:43:40 +0900

r40868 で追加したテストが Dir.entries の結果の順番に依存してしまっていたので事前にソートしてから比較するようにしています。

ko1:r40876 2013-05-21 16:52:03 +0900

GC::Profiler の sweep 時間の計測が LazySweep 導入によりスロット毎に sweep 時間を記録していたのを、全スロットの sweep 時間の合計を計算するようにしているそうです。

ko1:r40877 2013-05-21 17:19:07 +0900

GC::Profiler の報告する項目を追加して RGENGC の major GC か minor GC かの区別や GC が走り始めた理由を表示するようにしているようです。

ko1:r40878 2013-05-21 17:21:59 +0900

struct gc_profile_record の is_marked というメンバーは常に Qtrue になるので削っています。

knu:r40879 2013-05-21 21:41:34 +0900

拡張ライブラリ digest の Digest::Class.file メソッドにファイル名のほかに追加の引数を受け付けて、それをそのまま Digest::XXX.new の引数に渡すことができるようにしています。 Digest::SHA2 など new に引数を受け付けるアルゴリズムの時に対応するため。

kou:r40880 2013-05-21 21:50:21 +0900

r40868 で追加したテストで r40869 でパス名の配列の各文字列に force_encoding を呼ぶところで、force_encoding は破壊的メソッドなので単に each でいいところを map でループを回していたので each メソッドに変更しています。

naruse:r40881 2013-05-21 22:48:57 +0900

拡張ライブラリ strscan の StringScanner#[] で正規表現の名前つきキャプチャをすると、インデックスだけでなくその名称の String や Symbol でもマッチした部分文字列を取得できるようにしています。 [ruby-core:54664] [Feature #8343]

naruse:r40882 2013-05-21 22:51:25 +0900

r40881 の StringScanner の新機能について NEWS ファイルに追記しています。

akr:r40883 2013-05-21 22:54:31 +0900

Enumerator#feed メソッドの rdoc コメントに Enumerable#map の返す Enumerator を使ったサンプルコードを追加しています。