ruby-trunk-changes r59824 - r59839

今日は coverage 用命令の最適化の不具合修正や Fiber の内部構造の変更などがありました。

nobu: r59824 2017-09-10 21:35:06 +0900

tool/merger.rb で複数の revision のバックポート時にオリジナルの revision のコミットログを連結する間に空行をはさむようにしています。

ko1: r59825 2017-09-11 00:49:45 +0900

rb_thread_t::machine メンバーを rb_execution_context_t::machine に移動しています。 cont_save_thread() で #if FIBER_USE_NATIVE による preprocessor 分岐を入れてるのはいいのかな。

svn: r59826 2017-09-11 00:49:46 +0900

version.h の日付更新。

nobu: r59827 2017-09-11 01:19:39 +0900

r59825 で追加したコメントの typo 修正。

nobu: r59828 2017-09-11 01:19:40 +0900

r59769 で coverage 用の trace 命令の実行すべき命令がない行のぶんを消すコードで coverage 用ではないものも消してしまっていたのようなので、条件を強めています。コンパイルエラー時の命令列のダンプ中に SEGV してしまうことがあったみたいです。 [ruby-core:82726] [Bug #13886]

ko1: r59829 2017-09-11 02:30:16 +0900

r59825 で cont_save_thread() に追加していた #if FIBER_USE_NATIVE の分岐をやはり削っています。ただし sth->ec.machine.stack_end だけクリアして sth->ec.machine.stack_start はそのままにしています。 コミットログによると #if FIBER_USE_NATIVE の分岐を入れたのは stack_start は FIBER_USE_NATIVE が 0 の時に利用されるためで、 stack_end のほうはクリアして良かったようです。また IA64 の時の register_stack_start/end は両方常にクリアするように戻しています。

ko1: r59830 2017-09-11 03:37:55 +0900

fiber_store() で cont_save_machine_stack() の呼び出し位置を移動しています。 fiber_verify() でのチェックにひっかかる可能性があったのを修正しているそうです。 "This patch is very dirty and it should be removed soon." って書いてあるので、そのうち再修正されるかも

ko1: r59831 2017-09-11 04:00:08 +0900

rb_fiber_t 構造体に持たせている rb_thread_t saved_thread を rb_execution_context_t saved_ec に変更しています。必要な情報はこれまでの移動で rb_execution_context_t に集約できたということみたいです。でも Thread のオブジェクトへの参照自体は必要なので VALUE 型のメンバー thread_value を追加しています。あくまで退避しておくためのバッファなので全部コピーしておく必要はないってことですね。

hsbt: r59832 2017-09-11 10:33:46 +0900

bundler の標準添付ライブラリへの追加について NEWS ファイルに追記しています。 [ruby-core:77172] [Feature #12733]

hsbt: r59833 2017-09-11 11:29:11 +0900

gems/bundled_gems の rake のバージョンを 12.1.0 に更新しています。

hsbt: r59834 2017-09-11 12:05:07 +0900

tool/sync_default_gems.rb の r59779 で追加した bundler 向けの追加部分のクオート閉じ漏れ修正。

hsbt: r59835 2017-09-11 15:11:37 +0900

標準添付ライブラリ securerandom でコメントアウトされている SecureRandom.random_number を削除しています。 [ruby-core:82654] [Misc #13870]

hsbt: r59836 2017-09-11 15:12:40 +0900

標準添付ライブラリ uri/http でもコメントアウトされていた URI::HTTP#initialize を削除しています。これ rdoc でドキュメント生成するためだけにコメントアウト状態で置かれてたんじゃないのかな…? [ruby-core:82655] [Misc #13871]

naruse: r59837 2017-09-11 17:50:07 +0900

vm_core.h の vm_block_handler_verify() の引数に MAYBE_UNUSED() マクロを使うことで未使用引数の警告除去をしています。

naruse: r59838 2017-09-11 17:50:08 +0900

.gdbinit で check_method_entry の不要な引数の削除や ISeq の location に行番号情報が配列で入っている場合に対応(r58979 の変更に追随ですね)する変更など。

hsbt: r59839 2017-09-11 18:44:29 +0900

rubygems のテストで default gem のテストで ruby 本体ではインストール前にはテストできないケースについて skip つきで追加しています。 rubygems 難しい。