ruby-trunk-changes r49678 - r49689

今日は Refinements 関係の修正と、VM 終了時の finalizer 実行時の GC 抑制についての修正などがありました。

zzak: r49678 2015-02-22 04:06:17 +0900

拡張ライブラリ openssl のドキュメントの修正。いつのまにか https://github.com/ruby/openssl というリポジトリができていてそこからのマージという形になっています。

svn: r49679 2015-02-22 04:06:31 +0900

version.h の日付更新。

zzak: r49680 2015-02-22 04:09:21 +0900

拡張ライブラリ openssl の rdoc 用コメントの修正、という ChangeLog エントリの追加のみされています。たぶん対応するコミットは r49678 のマージに含まれています。 https://github.com/ruby/ruby/pull/834

nobu: r49681 2015-02-22 07:56:06 +0900

openssl の rdoc 用コメント修正。

nobu: r49682 2015-02-22 08:28:47 +0900

openssl の rdoc 用コメントをマクロの展開結果に含めるのをやめています。

nobu: r49683 2015-02-22 10:40:40 +0900

vsnprintf.c から ruby_vsnprintf() と ruby_sprintf() を sprintf.c に移動しています。 ruby 特有の関数を移動しているとのこと。

ko1: r49684 2015-02-22 11:00:40 +0900

r49474 で VM 終了時の処理が r49541 および r49545 で revert されていたのをリベンジしています。 rb_objspace_call_finalizer() で objspace->flags.dont_incremental および dont_gc を順次セットして finalizer 実行中の GC を抑制するようにしています。 Ruby レベルで定義した finalizer と T_DATA や T_FILE の finalizer で危険性が異なるので段階的にインクリメンタルGCの禁止 → GC 禁止としているそうです。 [ruby-core:67734] [Bug #10768]

ktsj: r49685 2015-02-22 16:05:14 +0900

class.c の static 関数だった rewrite_cref_stack() を vm_insnhelper.c に移動して rb_vm_rewrite_cref_stack() にして、COPY_CREF_OMOD() で cref の nd_refinements メンバをコピーするようにしています。 dup で複製された Module の refine で追加したメソッドを呼ぶと SEGV する不具合を修正しています。 [ruby-dev:48878] [Bug #10885]

kazu: r49687 2015-02-22 17:16:00 +0900

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

kazu: r49688 2015-02-22 17:16:03 +0900

r49680 の ChangeLog エントリのインデントをタブ化。

hsbt: r49689 2015-02-22 18:33:47 +0900

common.mk で rubyspec のチェックアウト先を GitHub の nurse/rubyspec だったのを ruby/rubyspec に移動しています。