今日は ObjectSpace.dump_all のオプション追加と Windows 環境における不正な registry による名前解決の問題への対策などがありました。
tenderlove: r57260 2017-01-04 07:42:10 +0900
拡張ライブラリ objspace の全オブジェクトの情報を JSON でダンプする ObjectSpace.dump_all のオプションに :full を追加して、ここに真値が渡されたら T_NONE の slot もダンプする(つまり確保されている object space の heap の free なものも含めて全 slot についてダンプする機能を追加しています。どうやら heap の fragmentation について調査していてそのために追加した機能みたいですね。 [ruby-core:78468] [Feature #13001]
svn: r57261 2017-01-04 07:42:11 +0900
version.h の日付更新。
nobu: r57262 2017-01-04 09:30:45 +0900
test/objspace/test_objspace.rb で子プロセスを起動するテストケースでヒアドキュメントのマーカーを begin と end の2つ利用してエディタのインデント調整を騙すテクニックを使うようにしています。
kazu: r57264 2017-01-04 14:47:52 +0900
標準添付ライブラリ cmath とそのテスト test/test_cmath.rb を frozon_string_literal: true に切り替えています。
nobu: r57265 2017-01-04 17:21:14 +0900
Windows 環境において resolv.rb による名前解決が registry の不具合によって失敗することがあるそうなので、その workaround として Win32::Resolv で Registry#read_s を refine で上書きして type が Registry::REG_SZ でない時の値を無視させるようにしています。 https://github.com/rubygems/rubygems/issues/1700 [ruby-dev:49924] [Bug #13081]
nobu: r57266 2017-01-04 20:06:16 +0900
ext/win32/lib/win32/registry.rb で Win32::Registry の type が不正な時のエラーの例外で Registry.type2name を使って名前に変換してから例外メッセージに埋め込むようにしています。