ruby-trunk-changes r52581 - r52597

今日は Struct のメソッドに dig が追加されたり、パッケージからインストールすると bundled gems の .gemspec ファイルの permission が 600 になる不具合の修正などがありました。

hsbt: r52581 2015-11-16 12:11:20 +0900

標準添付ライブラリ webrick の rdoc 用コメントの typo 修正。 https://github.com/ruby/ruby/pull/1099

svn: r52582 2015-11-16 12:11:50 +0900

version.h の日付更新。

akr: r52583 2015-11-16 12:34:53 +0900

標準添付ライブラリ securerandom の SecureRandom.uuid の rdoc 用コメントに結果が持つ乱数のビット幅(122 bits = 15.25 bytes)を追記しています。

nobu: r52584 2015-11-16 14:46:50 +0900

Struct#[ ] と Struct#[ ]= で要素を整数の index で指定した時(ってことができるのか)、範囲外の index が指定された場合に例外メッセージにその値を含めるようにしています。

hsbt: r52585 2015-11-16 15:33:17 +0900

tool/rbinstall.rb でソースディレクトリの gems/ に展開済みの gemspec を含む gem パッケージがあったらそこからインストールするようになっていたのですが(ruby の tar.gz などのパッケージからインストールする時には展開済みなのでここでインストールされていたようです)、この時に .gemspec ファイルの permission を変更する chmod が実行されていなかったので $data_mode に変更するように処理を追加しています。 [ruby-dev:49343] [Bug #11685]

knu: r52586 2015-11-16 15:43:43 +0900

標準添付ライブラリ set の Set#superset? などの alias である Set#>=, Set#>, Set#<=, Set#< などのメソッドで、引数のオブジェクトとクラスが一致していたら、r52518 で追加された Hash の同名のメソッド群を利用して @hash の内容を直接比較するようにしています。

hsbt: r52587 2015-11-16 15:58:43 +0900

Struct#[ ]= の rdoc 用コメントで仮引数名を Struct#[ ] の rdoc 用コメントとそろえるように修正しています。 https://github.com/ruby/ruby/pull/1095

hsbt: r52588 2015-11-16 16:00:56 +0900

Method#super_method の rdoc 用コメントに call-seq と super で呼ばれるメソッドが存在しない時の挙動について追記しています。 https://github.com/ruby/ruby/pull/1094

hsbt: r52589 2015-11-16 16:16:16 +0900

tool/mkconfig.rb にこれが ruby のビルド時に config.status から rbconfig.rb を生成するためのものだという説明のコメントを追記しています。 https://github.com/ruby/ruby/pull/1081

hsbt: r52590 2015-11-16 16:18:02 +0900

r52589 の ChangeLog エントリにパッチ提供者について追記しています。

knu: r52591 2015-11-16 16:29:37 +0900

標準添付ライブラリ set の Set#flatten!, #add? #delete?, #collect!, #reject!, #select!, #^, #classify などのメソッド定義で後置 if 文などを用いてシンプルに書くようにリファクタリングしています。

knu: r52592 2015-11-16 16:41:18 +0900

標準添付ライブラリ set の Set#replace で self を変更する前に do_with_enum を呼んで Enumerable であるかどうか(正確には each/each_pair が呼べるか)をチェックするようにしています。

knu: r52593 2015-11-16 16:41:30 +0900

標準添付ライブラリ set に frozen_string_literal: true の magic comment を追加しています。また Set#inspect の実装で無限再帰を防ぐために Thread.current の thread local storage に object_id を保管するところで後始末の pop と対応がつくように begin ブロックの前に追加するようにしています。

nobu: r52594 2015-11-16 17:40:42 +0900

ISeq へのコンパイル時の peephole optimization で label へのジャンプ直後に leave があった場合に jump 命令を leave 命令に変換する処理で、さらにその leave 命令に tail call optimization もされるように最適化処理を再適用するようにしています。

nobu: r52595 2015-11-16 17:41:41 +0900

compile.c の tail call optimization の対象になる leave 前の命令に send や opt_send_without_block、invokesuper に加えて opt_aref、opt_aref_with、opt_aset、opt_aset_with などの最適化命令も対象にするようにしています。

nobu: r52596 2015-11-16 18:21:56 +0900

r52504 で追加された Hash#dig, Array#dig と同様にネストした要素にアクセスするためのメソッド Struct#dig を追加しています。正確には Struct から作ったクラスのインスタンスメソッド、ですね。 [ruby-dev:49344] [Feature #11688]

ngoto: r52597 2015-11-16 21:38:09 +0900

DTrace のテストで Solaris では dtrace の引数にバッファサイズの指定 -b 8m という引数を追加するようにしています。Solaris 10 でのテスト失敗の対策だそうです。 [ruby-core:71504] [Bug #11697]