ruby-trunk-changes r57835 - r57892

今日は VM 命令列へのコンパイル時の小さな最適化やリファクタリング、ドキュメントの修正などがありました。

nobu: r57835 2017-03-11 20:15:05 +0900

test/ruby/test_require.rb のテストでヒアドキュメントに ~<< によるインデント除去つきのヒアドキュメントを利用するように書き換えています。ついでに begin と end をトークンに使ってエディタのハイライトも騙す技法を使うようにしています。

nobu: r57836 2017-03-11 21:26:00 +0900

compile.c の compile_cpath() で Qtrue/Qfalse を返していたのを VM_DEFINECLASS_FLAG_SCOPED のビットフラグの有無をそのまま返すようにしています。呼び元での分岐を減らすためみたいですね。

nobu: r57842 2017-03-11 22:24:08 +0900

r57814 で追加された make commit というターゲットで commit/push 後の update に 2秒ほど wait を入れるようにしています。 git svn を使った時の git リポジトリへの変更の反映に少しラグがある場合があるみたいですね。

naruse: r57851 2017-03-12 01:08:54 +0900

tool/generic_erb.rb で警告の除去。ブロックパラメータの shadowing とのことですが erb.result を Proc オブジェクトで wrap してから呼ぶように変えていて謎。

svn: r57852 2017-03-12 01:08:55 +0900

version.h の日付更新。

naruse: r57883 2017-03-12 04:03:11 +0900

tool/merger.rb で複数のリビジョンをバックポートする時のログメッセージを svn log から取得するのが2つめ以降動いていなかったので全リビジョンで取得するようにしています。

stomar: r57886 2017-03-12 05:01:55 +0900

String#casecmp の rdoc 用コメントに Encoding が異なった時の挙動の追記など。

stomar: r57887 2017-03-12 06:32:46 +0900

標準添付ライブラリ ostruct.rb の OpenStruct の rdoc 用コメントを全面的に書き直しています。 [ruby-core:79265] [Bug #13159]

nobu: r57888 2017-03-12 07:25:32 +0900

compile.c の iseq_compile_each() から NODE_CASE の時の処理をまるっと compile_case() という関数に切り出すリファクタリング

nobu: r57889 2017-03-12 07:37:50 +0900

同様に compile.c の iseq_compile_each() から NODE_WHEN の時の処理を compile_when() という関数に切り出すリファクタリング

nobu: r57890 2017-03-12 07:44:26 +0900

compile.c の iseq_compile_each() から node が NULL の時のチェック以降を iseq_compile_each0() と別関数に分離しています。

nobu: r57891 2017-03-12 14:48:58 +0900

compile.c の r57890 で分離された iseq_compile_each0() で NODE_VALUES の時に popped フラグが立ってたら CompileError にするようにしています。

nobu: r57892 2017-03-12 14:52:42 +0900

compile.c で空 Hash のリテラルで結果がすぐに捨てられるものは生成しないように最適化しています。