ruby-trunk-changes r61447 - r61470

今日はリリースに向けて NEWS ファイルの追記編集が続きました。
そしていよいよ 2.5.0 がリリースされました。
https://www.ruby-lang.org/ja/news/2017/12/25/ruby-2-5-0-released/
メリークリスマス!

mame: r61447 2017-12-24 23:52:23 +0900

NEWS ファイルに拡張ライブラリ coverage の branch coverage と method coverage 機能の追加について説明を追加しています。 コミットログには "a brief explanation" ってあるけど NEWS ファイルのなかではかなり詳細な説明です。

k0kubun: r61448 2017-12-25 01:43:17 +0900

NEWS ファイルに標準添付ライブラリ erb の高速化について追記しています。

svn: r61449 2017-12-25 01:43:17 +0900

version.h の日付更新。

ko1: r61450 2017-12-25 02:07:53 +0900

VM の命令列へのコンパイル時の compile option から :trace_instruction を削除しています。これは trace 命令の生成を抑制するためのオプションでしたが、2.5 からはデフォルトで trace 命令が生成されないので不要になりました。

k0kubun: r61451 2017-12-25 02:20:04 +0900

r61450 の erb の高速化についての記述を "Implementation Improvements" の節に移動しています。

sorah: r61452 2017-12-25 02:55:01 +0900

NEWS ファイルの IO.copy_stream の copy_file_range(2) システムコールを利用する最適化についての記述が新規メソッドのところに書かれてたので少し移動しています。

ko1: r61457 2017-12-25 09:27:17 +0900

空のメソッドやブロックがコンパイルされる時に生成される putnil 命令の行番号情報が 0 になってしまうので、そのメソッド/ブロックの ISeq の範囲情報の先頭位置を使うように修正しています。

hsbt: r61458 2017-12-25 09:33:19 +0900

NEWS ファイルに Gemification という節を追加して、 default gem 化された標準添付ライブラリを列挙しています。たくさん default gem 化されましたねー。

nobu: r61459 2017-12-25 11:09:14 +0900

template/prelude.c.tmpl の prelude_eval() で gcc 向けに #pragma GCC diagnostic error を使って rb_compile_option_t の初期化のメンバーをエラーにして検出できるようにしています。そして r61450 で削除した compile option trace_instruction の初期化子を削除し、かわりに coverage_enabled と debug_level のぶんを追加しています。

nobu: r61460 2017-12-25 11:42:13 +0900

template/prelude.c.tmpl で prelude.rb をインタプリタに埋め込む時に rb_usascii_str_new_static() を使って C の文字列リテラルの静的領域を使って文字列オブジェクト化して不要なコピーを抑制するようにしています。

kazu: r61461 2017-12-25 12:01:07 +0900

NEWS ファイルの typo 修正。

nobu: r61462 2017-12-25 12:25:45 +0900

prelude.rb で Thread.exclusive の定義にブロック引数を追加して MUTEX_FOR_THREAD_EXCLUSIVE.synchronize にそのままブロック引数として引き渡すようにしています。これまで yield するようにしてましたがブロック引数をそのまま渡す時に効率的になったのでこれを使うようにしたのですね。

ko1: r61463 2017-12-25 13:40:42 +0900

RubyVM::InstructionSequence#disasm で iseq->body->location の範囲情報も表示するようにしています。

mame: r61464 2017-12-25 14:16:05 +0900

doc/contributing.rdoc のサポートプラットフォームの記述から、mswn32 と Symbian OS を削除し、Mac OS XmacOS の表記に変更しています。

nobu: r61465 2017-12-25 14:54:27 +0900

rubygems の Gem::Command#invoke_with_build_args で Gem::Command#ui の元の値を退避しておいて ensure 節で元に戻すようにしています。テストで fd leak していたのを修正しているそうです。

nobu: r61469 2017-12-25 16:55:25 +0900

標準添付ライブラリ irb の r61435 の例外のハイライト表示で複数行の例外メッセージがあった時のことが考慮されてなかったのを修正しています。

naruse: r61470 2017-12-25 16:56:46 +0900

.travis.yml にテスト対象として ruby_2_5 ブランチを追加しています。