ruby-trunk-changes r54484 - r54490

今日は openssl の機能追加や、プロセス終了時のフックに関連した SEGV の修正などがありました。

nobu: r54484 2016-04-04 23:37:07 +0900

ruby_vm_at_exit() で登録する関数を内部的な Array オブジェクトとして管理していたのを linked list の構造体 rb_at_exit_list を導入してこのリストで管理するように変更しています。mark 処理で SEGV することがあったようです。ふーむ VALUE の値がポインタとして解釈した時に page の範囲外のアドレスだったらスルーされるような気がしますがなんだろ。 [ruby-core:73908] [Bug #12095]

nobu: r54485 2016-04-05 00:06:46 +0900

拡張ライブラリ openssl で OpenSSL 1.0.2 以降でサポートされている ephemeral TLS session key の取得を利用できるようにしています。 OpenSSL::SSL::SSLSocket#tmp_key というメソッドが新設されています。 https://github.com/ruby/ruby/pull/1318

svn: r54486 2016-04-05 00:06:47 +0900

version.h の日付更新。

nobu: r54487 2016-04-05 00:08:20 +0900

r54485 のテストで OpenSSL::SSL::SSLSocket#tmp_key で取得した鍵オブジェクトのクラスをチェックしているところで assert_instance_of を利用するようにしています。

kazu: r54488 2016-04-05 01:12:03 +0900

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

naruse: r54489 2016-04-05 14:54:03 +0900

r54423 の再修正。 拡張ライブラリ nkf の mine_puts() のループ変数の typo 修正。じーっとみてしばらくどこが間違ってるのかわかりませんでした。 [ruby-core:74802] [Bug #12202]

nobu: r54490 2016-04-05 17:15:22 +0900

VM の命令 concatstrings を rb_str_concat_literals() という関数に切り出し rb_str_append_literal() をおきかえるリファクタリング。 rb_str_buf_append() の呼び出しも rb_enc_cr_str_buf_cat() に展開していますが、内容はほぼ同じ。追加する文字列の coderange の取得をスキップしているので少し処理を軽量化しているのでしょうか。