ruby-trunk-changes r51816 - r51821

今日は rb_iseq_load() で配列から ISeq をコンパイルした時(ruby のコアにはこの関数を呼ぶメソッドはなく、iseq.gem などの拡張ライブラリを使って呼ぶことになるのであまり使われてないはず)に GC の mark が不足していた不具合の修正や、先頭に式の埋め込みのある文字列リテラルエンコーディングの不具合修正などがありました。

nobu: r51816 2015-09-10 12:17:30 +0900

r48705 での rb_iseq_load() 関連の修正の追加修正で、配列から rb_iseq_t を構築する時に cdhash (case 文の when 節のマッチに使う内部的な Hash オブジェクト)を rb_iseq_t から mark するようにしています。これまでコンパイル時の一時的な mark 用の領域にしか記憶していなかったので GC で回収されてしまう恐れがあったようです。 [ruby-core:70708] [Feature #8543]

svn: r51817 2015-09-10 12:18:07 +0900

version.h の日付更新。

shugo: r51818 2015-09-10 15:16:37 +0900

標準添付ライブラリ net/ftp の Net::FTP#getmultiline で3桁のコードの parse を少し厳密にしたり、文字列バッファに追記していたのを配列に入れておいて最後に join で連結するようにしたりしています。

nobu: r51819 2015-09-10 22:15:55 +0900

Process.spawn の :pgroup オプションについての rdoc 用コメントに説明を追記したり、nil も渡せることを明記したりしています。 https://github.com/ruby/ruby/pull/1008

nobu: r51820 2015-09-10 22:48:51 +0900

"#{...}" のように文字列リテラルの先頭に #{} による式の埋め込みがあった時に文字列のエンコーディングが source file encoding ではなくなってしまうことがある不具合を修正しています。なるほどー、空文字列のリテラルが先頭にあって、そこに連結するものと見做さないといけなかったわけですね。 [ruby-core:70703] [Bug #11519]

kazu: r51821 2015-09-10 22:59:31 +0900

r51685 の ChangeLog エントリの typo 修正。