ruby-trunk-changes r51649 - r51658

今日はブロックの呼び出しで "Stack inconsistency error" が発生することがある不具合の修正や ObjectSpace.count_symbols メソッドの追加などがありました。

tenderlove: r51649 2015-08-21 06:39:54 +0900

r51569 で openssl のテストで OpenSSL::SSL::SSLContext.new に渡す引数 "SSLv3" が利用可能かチェックするようにしてましたが、インストールされている OpenSSL で SSLv3 が無効になっている場合もあるので引数を渡さずに SSLContext を作るように修正しています。 またテスト時に OP_NO_TICKET オプションを設定するようにしています。ここ |= じゃなくて = で上書き代入してしまっていいんですかね? [Bug #11366] [Bug #11367]

svn: r51650 2015-08-21 06:40:56 +0900

version.h の日付更新。

ko1: r51651 2015-08-21 17:37:46 +0900

vm_invoke_block() でブロック呼び出しの前後で rb_call_info_t::argc が変化しうるので VM スタックの操作で pop する数を間違える可能性があったので、ローカル変数に確保しておくようにしています。 発生条件はよくわかりませんが、同じメソッドのブロック呼び出しでブロックパラメータの数が異なる呼び出しかたをネストさせると 'Stack inconsistency error' が発生するという感じでしょうか。 [Bug #11451]

ko1: r51652 2015-08-21 18:51:01 +0900

TracePoint の event に Fiber の context switch を意味する :fiber_switch 追加しています。 [ruby-core:69955] [Feature #11348]

nobu: r51653 2015-08-21 19:48:19 +0900

win32/Makefile.sub で $(LIBRUBY_SO) のリンク時に $(SOLIBS) $(EXTSOLIBS) も追加するようにしています。 拡張ライブラリの静的リンクに対応するためみたいですけど、静的リンクなのに $(LIBRUBY_SO)? チケットをよく読んでみないとわかりませんね。 ずいぶん前のチケットですね。 [ruby-core:70499] [Feature #9018]

ko1: r51654 2015-08-21 20:30:24 +0900

拡張ライブラリ objspace に ObjectSpace.count_symbols というメソッドを追加しています。 その名の通り Symbol を数えてくれます。戻り値は Hash で { mortal_dynamic_symbol: a, immortal_symbol: b, immortal_dynamic_symbol: c, immortal_static_symbol: d } という具合に Symbol の種類毎(ただし b = c + d)の数を返してくれます。 [Feature #11158]

nobu: r51655 2015-08-22 00:31:39 +0900

r51651 の vm_invoke_block() の再修正。 rb_call_info_t::argc をローカル変数にバックアップするのを CALLER_SETUP_ARG() の呼び出しの後にするように修正しています。 [Bug #11451]

svn: r51656 2015-08-22 00:31:49 +0900

version.h の日付更新。

tenderlove: r51657 2015-08-22 02:55:23 +0900

拡張ライブラリ psych を 2.0.14 にアップデートしています。 ChangeLog はこちら https://github.com/tenderlove/psych/blob/v2.0.14/CHANGELOG.rdoc
ぱっと見 JRuby 対応や parse の不具合修正が入っているようです。

svn: r51658 2015-08-22 02:56:05 +0900

r51657 で新規追加されたファイルの svn property 設定。