ruby-trunk-changes r40382 - r40392

今日は String#scrub というエンコーディングに対して不正なバイト列を取り除くメソッドの追加などがありました。

marcandre:r40382 2013-04-20 01:36:42 +0900

r40273 で追加した標準添付ライブラリ matrix.rb の Vector#cross_product の rdoc コメントの typo 修正。

svn:r40383 2013-04-20 01:36:45 +0900

version.h の日付更新。

naruse:r40390 2013-04-20 02:50:38 +0900

String#scrub というメソッドを追加しています。これはその文字列のエンコーディングにおいて不正なバイト列を含んでいないかチェックして、含まれていたらそれを指定した文字で置き換えることでエンコーディング的に正当な文字列にするメソッドです。 [ruby-dev:45975] [Feature #6752]

naruse:r40391 2013-04-20 05:21:26 +0900

r40390 で追加した String#scrub の rdoc コメントにサンプルを追加しています。 [Feature #6321] [Feature #6752] [Bug #7967]

nobu:r40392 2013-04-20 14:22:25 +0900

昨日の r40366 で marshal_dump, marshal_load を使った時の Marshal.dump でインスタンス変数の dump の必要性の判定を変更したのを revert して、そもそも常にインスタンス変数情報の dump をやめています。 marshal_dump を使っていたらそこで必要なものは dump/load されるはずなので別途インスタンス変数を dump する必要はないということでしょう。 [ruby-core:54334] [Bug #8276]
また load 時に marshal_load に渡すためのオブジェクトのインスタンス変数を load 結果のオブジェクトにコピーするようにしています。 [ruby-core:51163] [Bug #7627]
marshal_load で読み込んだオブジェクトを自動的に freeze させることが marshal_load で freeze するのがダメなのでできないんじゃないかという指摘がチケットでされています。うーん。