今日は昨日の dynamic symbol の内部処理の変更の再修正などがありました。
ko1: r46752 2014-07-08 14:48:36 +0900
r46727 で fstring のテーブルで sweep 予定の文字列を rb_gc_resurrect() で復活しないで新規追加するようにした変更の追加で、sweep 予定のオブジェクトはテーブルから削除しておくようにしています。こうしておかないとまたゴミオブジェクトがみつかって重複した追加がされてしまい可能性があったのではないかと思います。また struct RSymbol::fstr を 0 クリアしておいて、sweep 時のテーブルからの削除の必要の有無を判定できるようにしています。
あと dsymbol_alloc() で global_symbols.minor_marked を 0 クリアしていますがこれとの関係はよくわかりません。新規に symbol を追加した時に次の minor mark でマークやりなおすようにしています。多分これは resurrect やめたのとは独立して、symbol 追加後にはマークしなおしが元々必要だったのではないかな…。
svn: r46753 2014-07-08 14:48:49 +0900
version.h の日付更新。
nobu: r46754 2014-07-08 16:01:10 +0900
parse.y の is_asgn_or_id() というマクロを1つだけの呼び出し元に展開しています。
nobu: r46755 2014-07-08 16:58:03 +0900
r46751 で追加した EnvUtil.find_executable を test/ruby/memory_status.rb でも利用して ps コマンドを探索するようにしています。 Solaris でのテストのためみたいですが、チケットのコメントをみるとどうもまだだめみたいですね。 [ruby-dev:48370] [Bug #10010]
nobu: r46756 2014-07-08 17:04:12 +0900
sprintf.c の rb_str_format() で sprintf("%