ruby-trunk-changes r57363 - r57376

今日はまず do..end のブロックに begin なしで rescue,ensure,else が書けるようになった文法の変更と、Kernel#warn が Warning.warn によるカスタマイズが効くようにする変更、その他古くからあった不具合修正などがありました。

kazu: r57363 2017-01-18 21:35:10 +0900

標準添付ライブラリ profiler の magic comment frozen_string_literal を true に変更しています。

normal: r57364 2017-01-19 03:23:49 +0900

非 IO オブジェクトを入力とした時の IO.copy_stream のベンチマークスクリプトを追加しています。 [Bug #13085] で報告されている問題のために入れたみたいですね。

svn: r57365 2017-01-19 03:23:49 +0900

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

svn: r57366 2017-01-19 03:23:49 +0900

version.h の日付更新。

nobu: r57367 2017-01-19 10:38:59 +0900

メソッド呼び出しのかっこの前に空白があった時に警告するようにしています。いままでもあったような気がしてましたが出てなかったですね。

nobu: r57368 2017-01-19 12:42:07 +0900

r57300 の続き? iseq_setup() で iseq->aux.compile_data->err_info にエラー情報があったらエラーを返すようにしています。 [ruby-core:76531] [Bug #12613]

nobu: r57369 2017-01-19 14:24:34 +0900

id_table.c のコメントの typo 修正。

nobu: r57370 2017-01-19 15:25:06 +0900

Kernel#warn で r56269 で導入された Warning.warn を呼び出すようにしてカスタマイズが効くようにしています。ただし Kernel#warn の挙動が少し変化するみたいです。 [ruby-core:78156] [Feature #12944]

nobu: r57371 2017-01-19 15:39:44 +0900

ENV#fetch の rdoc 用コメントの指定された環境変数がない時の例外クラスの記述を修正しています。 https://github.com/ruby/ruby/pull/1514

hsbt: r57372 2017-01-19 16:07:17 +0900

標準添付ライブラリ fileutils の rdoc 用コメントの記述を修正。 https://github.com/ruby/ruby/pull/1510

nobu: r57373 2017-01-19 16:18:23 +0900

ruby の -l オプションで標準入力から読む時に chop で改行を落とす挙動をしているのは chomp に変更しています。 "This is because -l is older than chomp." だそうで。 [ruby-core:78099] [Bug #12926]

shugo: r57374 2017-01-19 17:13:03 +0900

String#rindex で正規表現に // が渡されると Regexp.last_match や $~ が nil になる不具合を修正しています。不要な分岐があったみたいですね。 [ruby-core:79110] [Bug #13135]

naruse: r57375 2017-01-19 18:34:30 +0900

protected の rdoc 用コメントに Java の protected とは違うよと挙動について注釈を追記しています。どうも rdoc で private メソッドのドキュメントを生成するために protected にするという Tips が出回ってるみたいで(?)、そうじゃなくて :doc: タグを使えと書かれています。

nobu: r57376 2017-01-19 18:54:58 +0900

do...end ブロックに def...end の時と同様に begin なしの rescue, else, ensure などの節を書けるようにしているみたいです。つまり

ary.each do
  do_something
ensure
  cleanup
end

みたいに書けるみたいですね。 [ruby-core:78021] [Feature #12906]
parse.y の変更はたった1行! しかし、経験上 parse.y をこんなふうにいじると後からぽろぽろ出てくるので、是非 trunk でお手元のスクリプトが SyntaxError にならないか試してもらうのが良いでしょう(リリースしてから気がつくとつらい)。