ruby-trunk-changes r56094 - r56112

今日は RubyKaigi 1日目効果でいろいろ変更がありました。 Module.used_modules という Refinements 関係の新規メソッド追加、rdoc の更新(不具合修正)、Array#flatten の不具合修正などがありました。

shugo: r56094 2016-09-08 01:15:45 +0900

Refinements で using で refine を導入している Module 名の配列を返す Module.used_refinements メソッドを新規追加しています。 [ruby-core:49805] [Feature #7418]

svn: r56095 2016-09-08 01:15:46 +0900

r56094 のテストの行末の空白除去。

svn: r56096 2016-09-08 01:15:46 +0900

version.h の日付更新。

hsbt: r56097 2016-09-08 07:23:38 +0900

標準添付ライブラリ rdoc の 5.0.0.beta2 をマージしています。 コマンドラインツール ri で前方一致する名前が複数あるとヒットしなくなるという不具合を修正しています。 他にも ruby 1.8 向けのコードの削除が行なわれているようです。

rhe: r56098 2016-09-08 10:09:19 +0900

拡張ライブラリ openssl の upstream から v2.0.0.beta.2 をマージしています。 ALPN/NPN のコールバックメソッドが例外を発生させた時の対応や、リファクタリング、テストの修正などが含まれているようです。 https://github.com/ruby/openssl/compare/v2.0.0.beta.1...v2.0.0.beta.2

mrkn: r56099 2016-09-08 11:33:18 +0900

r55847 で追加された Hash#map_v および #map_v! というメソッドはメソッド名を transform_values/transform_values! に改名しています。 [ruby-core:76095] [Feature #12512]

mrkn: r56100 2016-09-08 11:34:54 +0900

NEWS ファイルに Hash#transform_values と #transform_values! について追記しています。 [Feature #12512]

shugo: r56101 2016-09-08 13:44:51 +0900

Module#refine のブロック内で定数やクラス変数への代入を行なうと警告が表示されるようにしています。チケットは定数(の参照)を上書きしたいという内容でしたが、それはできないのが仕様ということで逆に警告を出すようにしています。 [ruby-core:64143] [Bug #10103]

akr: r56102 2016-09-08 13:57:49 +0900

rdoc 用のコメントで戻り値などの説明に Fixnum のオブジェクトが返るという意味を込めて fixnum と書かれていたところを Fixnum/Bignum の統合にあわせて integer に変更しています。

hsbt: r56104 2016-09-08 14:33:59 +0900

psych と rdoc の gemspec ファイルでファイルリストを取得するのに upstream のリポジトリで使われてた git ls-files コマンドを利用する方法がそのままだったので、ファイル名を列挙するように修正しています。 [ruby-dev:49778] [Bug #12736]

kazu: r56105 2016-09-08 14:35:34 +0900

r56087 で追加されたディレクトリ enc/unicode/data/9.0.0 の svn:ignore property にダウンロードされたデータファイルは無視するように設定を追加しています。

naruse: r56107 2016-09-08 14:45:09 +0900

gems/bundled_gems から tk は外しています。

shugo: r56109 2016-09-08 16:49:02 +0900

r56094 で追加した Module.used_refinements は Module.used_modules に改名しています。 [ruby-core:49805] [Feature #7418]

nobu: r56110 2016-09-08 17:40:16 +0900

tool/rbinstall.rb で gem パッケージをインストールする時に gem の展開したディレクトリの bin ディレクトリを固定にしていたのを gemspec.bindir を利用するようにしています。 rdoc 5.0.0 で bindir が exe に変更されたので対応するためみたいです。

ktsj: r56111 2016-09-08 17:56:30 +0900

Array#flatten で返すオブジェクトのクラスを rb_class_of() で取得した receiver と同じクラスを使おうとしていましたが、rb_class_of() は特異クラスがあったらそれを返すので、別のオブジェクトで同じ特異クラスを持つことになってしまうので、rb_obj_class() で特異クラスはスキップしたクラスを取得して使うように修正しています。 [ruby-dev:49781] [Bug #12738]

nobu: r56112 2016-09-08 17:59:00 +0900

File.new で fd から作る場合に対応するため引数が整数かどうかチェックするところで rb_check_convert_type() で Fixnum (または to_int で Fixnum に変換できるオブジェクト)かどうかを確認していたのを rb_check_to_int() を使って Integer に変換できるかのチェックに置き換えています。これも Fixnum と Bignum の統合の一環でしょう。実際に Bignum になるくらい大きな fd は扱えない場合が多いでしょうけど。