ruby-trunk-changes r59935 - r59946

今日は ruby-runner -> bin/ruby の改名の影響の修正や tool/make-snapshot のパッケージ作成の不具合修正の他 dynamic literal の生成が String#intern の再定義の影響を受けていた不具合の修正などがありました。

nobu: r59935 2017-09-17 07:40:09 +0900

標準添付ライブラリ fileutils のテストに FileUtils.rmdir で Errno::ENOENT が発生するテストを追加しています。 r59934 の変更に追随させています。 [ruby-dev:50236] [Bug #13889]

svn: r59936 2017-09-17 07:40:10 +0900

version.h の日付更新。

nobu: r59937 2017-09-17 13:14:51 +0900

r59927 で ruby-runner を bin/ruby に改名した影響で srcdir でビルド/インストールした時に元の ruby-runner が ruby としてインストールされてしまっていたそうです。 そこで bin/ruby ではなく exe/ruby という名前(パス)に変更しています。 [ruby-dev:50250] [Bug #13911]

rhe: r59938 2017-09-17 13:26:48 +0900

configure.in から既に不要になっていた timezone(3) の関数のチェックを削除しています。

rhe: r59939 2017-09-17 13:26:51 +0900

r59938 と同様に拡張ライブラリ date でしか使われていない変数の timezone と altzone のチェックを configure.in から削除して、拡張ライブラリ date の extconf.rb に移動しています。

mame: r59940 2017-09-17 13:30:30 +0900

tool/run-lcov.rb で Coverage.results の結果の branch coverage と method coverage の内容で通し番号を示す id を誤って行番号として扱かってたところがあったのを修正しています。

nobu: r59941 2017-09-17 14:51:15 +0900

r59876 や r59877, r59885 あたりで追加した compile_if() や compile_loop(), compile_case() などの branch coverage 用の変数が未初期化として gcc7 で警告になるそうで 0 で初期化しておくようにしています。

nobu: r59942 2017-09-17 15:50:31 +0900

tool/make-snapshot で生成する Makefile に prereq から after-update への依存関係がなくなっていて、パッケージに同梱する libffi の展開処理が実行されなくなっていたのを修正しています。 [ruby-dev:50244] [Bug #13897]

yui-knk: r59943 2017-09-17 16:19:20 +0900

node.h から未使用になっていた nd_refinements_ というマクロの定義を削除しています。

mame: r59944 2017-09-17 17:04:34 +0900

r31628 で追加された ext/io/console/lib/console/size.rb で require "io/console" が LoadError で失敗した時に代替実装する時に IO のクラスメソッドではなくインスタンスメソッドとして定義してしまっていたのを修正しています。

nobu: r59945 2017-09-17 18:21:47 +0900

iseq_peephole_optimize() で tostring 命令の後にオペランドが 1 の concatstring 命令(つまりスタックトップの文字列をそのまま残すので結果として何もしない)があった時には concatstring 命令を消すような最適化を追加しています。文字列への式の埋め込みなどでありえるみたいです。 https://github.com/ruby/ruby/pull/1626#discussion_r139285653

nobu: r59946 2017-09-17 18:28:58 +0900

式展開を含む文字列リテラルに : をつけて :"#{var}" のように dynamic Symbol を作る記法で send 命令を使って intern メソッドを呼び出していたのを opt_call_c_function 命令を使って直接 C 関数を呼び出すように最適化しています。 String#intern の再定義の影響を受けないようにするためみたいです。