ruby-trunk-changes r46927 - r46949

今日は拡張ライブラリ ripper の修正や win32ole の機能追加などがありました。

ko1: r46927 2014-07-24 20:13:19 +0900

GC の理由を表現するフラグを整理して GPR_FLAG_MAJOR_BY_RESCAN と GPR_FLAG_MAJOR_BY_STRESS は削除、かわりに GPR_FLAG_MAJOR_BY_FORCE を追加しています。 GC.stress による GC は GPR_FLAG_MAJOR_BY_FORCE を使うようにしています。GC.latest_gc_info で取得できる情報のキーも変化しています。

ngoto: r46928 2014-07-24 21:14:27 +0900

r46924 の nmake 用の sizes.c の生成ルールの書きかたがビルドエラーになっているとのことで再修正。 [ruby-dev:48446] [Bug #10089]

suke: r46929 2014-07-24 22:51:22 +0900

拡張ライブラリ win32ole の VT_RECORD サポートの追加。ちらっとしかみてないですが WIN32OLE_RECORD の WIN32OLE_VARIANT との相互の変換機能を追加しているっぽいです。

nobu: r46930 2014-07-25 00:28:01 +0900

parse.y でパーサ用と ripper 用で同じコードがあった部分をコメントの位置を移動して共有するようにしています。

nobu: r46931 2014-07-25 00:28:14 +0900

拡張ライブラリ ripper でメソッド内などの動的な環境での定数の代入が通常の代入だとエラーになってたのが多値の(splat による)代入ではエラーにされていなかったのを修正しています。

svn: r46932 2014-07-25 00:28:16 +0900

version.h の日付更新。

drbrain: r46933 2014-07-25 03:54:13 +0900

doc/keywords.rdoc に予約語の意味を追記しています。

charliesome: r46935 2014-07-25 13:17:50 +0900

拡張ライブラリ socket の Socket#gethostname でホスト名の最大サイズの定数 HOST_NAME_MAX がない時に 1024 と決め打ちしてたのを、さらに NI_MAXHOST や HOST_NAME_MAX などの定数もチェックするようにしています。 https://github.com/ruby/ruby/pull/683

charliesome: r46936 2014-07-25 13:19:51 +0900

r46935 の ChangeLog エントリに GitHub の pull request への参照を追加しています。 https://github.com/ruby/ruby/pull/683

ko1: r46937 2014-07-25 13:43:09 +0900

gc_mark_stacked_objects() で RGENGC_CHECK_MODE が有効なとき実施するチェックでの rb_bug() のメッセージを修正。

ko1: r46938 2014-07-25 13:47:48 +0900

rb_gc_writebarrier_remember_promoted() の RGENGC_CHECK_MODE が有効な時のチェック追加と AGE2_PROMOTION の時の対応。

ko1: r46939 2014-07-25 14:12:06 +0900

RGenGC のための構造体 rb_objspace_t::rgengc のメンバ parent_object_is_old を VALUE 型の parent_object に変更しています。あと gc_marks_body() でこのメンバのクリアのタイミングをすこし変更しています。 詳細は追ってないので理由は不明。

nobu: r46940 2014-07-25 15:53:16 +0900

test/lib/test/unit.rb で並列テスト時に、"." だけ子プロセスから読んだ時にスキップするようにしています。 "unknown command" のエラーになるのを避けるためでしょうか。

nobu: r46941 2014-07-25 15:53:27 +0900

テスト時の Thread のリークチェックで WEBrick の Thread で止めれらないものを無視するためリークチェックのコードで Thread オブジェクトのクラス名をみて特別扱いするようにしています。

nobu: r46942 2014-07-25 15:53:31 +0900

rubygems のテストで閉じ忘れの IO オブジェクトと file descriptor の後始末の追加。

nobu: r46943 2014-07-25 16:55:30 +0900

rubygems のテストでテスト用に起動したサーバの後始末の追加。

nobu: r46944 2014-07-25 16:55:42 +0900

rubygems の Gem::RemoteFetcher#request での socket の後始末忘れを修正。

nobu: r46945 2014-07-25 16:55:48 +0900

Gem::Util.silent_system で dup した IO オブジェクトの閉じ漏れを修正しています。

nobu: r46946 2014-07-25 16:55:52 +0900

rubygems の Gem::Specification#build_extensions でも Gem::SilentUI の閉じ漏れの修正。

nobu: r46947 2014-07-25 16:55:55 +0900

rubygems の Gem::Util.silent_system でリダイレクトして出力を捨てるためのデバイス名を可能なら(rubygems は古い ruby と一緒に使うことも考慮するので) IO::NULL を利用するようにして、定数 Gem::Util::NULL_DEVICE を追加しています。また、やはり可能なら system のオプション引数でリダイレクトを指定するようにしています。

nobu: r46948 2014-07-25 16:55:58 +0900

lib/erb.rb やテストスクリプトでマジックコメントに UTF-8 と大文字を使っていたのを "utf-8" と小文字に変更したり、マジックコメントごと消したりしています。 Emacs では "UTF-8" はだめで "utf-8" が正しいんだそうです。

nobu: r46949 2014-07-25 20:22:49 +0900

test/ripper/test_scanner_events.rb の空っぽだったテストメソッドに内容を追加しています。 Hash の {key: value} 記法や ->() { ... } の lambda 記法の lexer のテスト。