ruby-trunk-changes r48773 - r48787

今日は引き続き終端文字のワイド文字エンコーディング対応、GC.latest_gc_info の項目追加などがありました。

nobu: r48773 2014-12-11 22:52:24 +0900

r48771 の ChangeLog エントリの typo 修正。

nobu: r48774 2014-12-11 22:54:02 +0900

テストのユーティリティ EnvUtil.invoke_ruby で起動した子プロセスをシグナルで停止する時 :pgroup オプションが設定されていたらプロセスグループに対してシグナルを送信して子プロセスだけでなくそこから派生したプロセスも止めるようにしています。

nobu: r48775 2014-12-12 08:16:03 +0900

IO#read の rdoc 用コメントの文法修正。 https://github.com/ruby/ruby/pull/781

svn: r48776 2014-12-12 08:16:14 +0900

version.h の日付更新。

nobu: r48777 2014-12-12 10:20:41 +0900

String#tr でも終端文字のワイド文字エンコーディング対応をしています。

nobu: r48778 2014-12-12 10:32:36 +0900

String#ljust, #rjust, #center などのメソッドで終端文字のワイド文字エンコーディング対応をしています。

nobu: r48779 2014-12-12 10:49:20 +0900

String#crypt で self および引数の salt がワイド文字エンコーディングだった時に ArgumentError にしています。 また salt の先頭2 byte に NUL 文字があったらエラーにしています。 crypt(3) に渡すので NUL 文字だと短すぎることになってしまうからですね。

nobu: r48780 2014-12-12 11:24:49 +0900

String#succ の実装で文字列のサイズやポインタを何度も RSTRING_LEN() や RSTRING_PTR() で取得していたので変数に代入して使いまわすようにしています。

nobu: r48781 2014-12-12 11:24:51 +0900

String#succ でも終端文字のワイド文字エンコーディング対応をしています。

akr: r48782 2014-12-12 12:15:56 +0900

Enumerable#slice_when の rdoc にサンプルコードとして、数値がソート順に格納された配列から、要素間である数以上の差があるところで分割してグループ化するという例を追記しています。

ko1: r48783 2014-12-12 13:09:28 +0900

GC.latest_gc_info が返す Hash に :state というキーを追加して、今 GC のどのフェーズにいるのかを返すようにしています。 [ruby-core:66786] [Feature #10590]

nobu: r48784 2014-12-12 16:23:18 +0900

String#succ! は succ して新しい String オブジェクトを作ってからその内容を replace で自分にコピーしていたのを、rb_str_succ() から切り出した str_succ() を利用して中間オブジェクトを作らず直接自分自身を更新するようにしています。

nobu: r48785 2014-12-12 19:31:47 +0900

標準添付ライブラリ erb で ERB#lineno と ERB#location= を追加してファイル名や行番号を設定できるようにしています。

nobu: r48786 2014-12-12 19:48:57 +0900

標準添付ライブラリ erb のコマンドラインツールとしての erb で、make コマンドのようにコマンドライン引数に var=val のように展開に使う変数を設定できるようにしています。 [ruby-core:65772] [Feature #10395]

kou: r48787 2014-12-12 22:00:15 +0900

gems/bundled_gems の test-unit の取得するバージョンを 3.0.8 に更新しています。r48433 で対応する catch がない時の throw が発生させる例外を ArgumentError を継承した UncaughtThrowError を発生させるようにしたため assert_throw や assert_nothing_throw が動かなくなっていたのを修正したそうです。