ruby-trunk-changes r53223 - r53230

今日は Symbol をブロック引数にした時に C API の rb_profile_frames() が SEGV することがある不具合の修正などがありました。

nobu: r53223 2015-12-21 09:33:20 +0900

拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket で ExtConfig::OPENSSL_NO_SOCK が定義されていた時の NotImplementedError 例外を発生させるところでクラス名を typo していたのを修正しています。 https://github.com/ruby/ruby/pull/1165

svn: r53224 2015-12-21 09:33:45 +0900

version.h の日付更新。

nobu: r53225 2015-12-21 10:18:48 +0900

バックトレース表示のために control frame の位置情報を処理する rb_profile_frames() で ifunc を無視するようにしています。 ブロック引数に Symbol を渡した時にその中で rb_profile_frames() が呼ばれると SEGV することがあったようです。 [ruby-core:72409] [Bug #11851]

normal: r53226 2015-12-21 10:24:12 +0900

r52480 で標準添付ライブラリ net/http の Net::HTTP の open_timeout のデフォルト値が nil から 60秒に変更されましたが、rdoc 用コメントの記述が古いままだったので追随させています。 [ruby-core:72413]

hsbt: r53227 2015-12-21 12:15:41 +0900

r52277 の test_dup_many と同様に test/ruby/test_io.rb のテストの子プロセス起動時に :rlimit_nproc オプションを指定するところでも Process.getrlimit を使って Process::RLIMIT_NPROC の値を取得してから…あれこっちは2つめの値、つまり現在の値じゃなくて設定可能な最大値を取ってきてつかっていますけど、これでいいんですかね? チケットをみると環境の hard limit を超えてエラーになることがあるというものなのでこれでいいのか。 [ruby-dev:49446] [Bug #11852]
じゃあ test_dup_many のほうは…と思いきやこっちの :rlimit_nofile の設定は今は 1024 に固定されているので既に Process.getrlimit を呼ばなくなっていますね。

ko1: r53228 2015-12-21 18:40:58 +0900

r51320 で ObjectSpace.each_object に特異クラスがあらわれるようにした影響で、Ruby レベルではアクセスできないはずのクラスの特異クラスが見えるようになってしまっていたのを修正しています。 しかし RubySpec でエラーになってしまうみたいで次で revert されています。 [ruby-core:71682] [Bug #11740]

ko1: r53229 2015-12-21 19:32:33 +0900

r53228 で RubySpec が失敗するようになってしまっていたので revert しています。

ngoto: r53230 2015-12-21 21:35:29 +0900

構造体 struct ivar_update のメンバ名を extended -> iv_extended に改名しています。 Solaris で /usr/include/floatingpoint.h で定義されている型名と衝突しているため警告が出ていたそうです。 [ruby-dev:49448] [Bug #11853]