ruby-trunk-changes r47756 - r47764

今日は拡張ライブラリ etc に CPU コア数を取得する新機能メソッドの追加などがありました。

normal: r47756 2014-10-02 05:29:46 +0900

Marshal.dump/load で利用される構造体 struct dump_arg, struct load_arg のメンバ compat_tbl は利用されないケースもあるので、st_init_numtable() の呼び出しを必要になった時に実施するように遅延することで高速化を図っています。 [ruby-core:65305] [Feature #10302]

svn: r47757 2014-10-02 05:29:57 +0900

version.h の日付更新。

normal: r47758 2014-10-02 05:36:28 +0900

IO オブジェクトの finalizer でバッファのメモリ領域を GC の sweep を待たずにすぐ解放するようにしています。メモリ使用量を抑えるのと、GC を起動するしきい値に逹っするのを遅らせてGCのコストを削減するという目的もあるようです。 [ruby-core:65269] [Feature #10295]

normal: r47759 2014-10-02 06:13:30 +0900

TracePoint などのイベントのビットフラグの型 rb_event_flag_t を unsigned long から uint32_t に変更しています。 32bit で足りるので 64bit 環境でも 32bit に収めるようにして更なる構造体のスリム化を図っているようです。あいかわらずすごい執念ですね。 [ruby-core:65083] [misc #10249]

normal: r47760 2014-10-02 08:03:35 +0900

r47759 での rb_event_flag_t の型の変更に伴なってエラーになっていたところがあったので代入時のキャストが VALUE になっていたところを uint32_t に修正しています。

akr: r47761 2014-10-02 12:23:26 +0900

拡張ライブラリ etc にシステムの CPU コア数を返す新しいメソッド Etc.nprocessors を追加しています。 とりあえず sysconf(_SC_NPROCESSORS_ONLN) を使った実装のみとなっています。 [ruby-core:65142] [Feature #10267]

akr: r47762 2014-10-02 12:28:46 +0900

NEWS ファイルに追加機能として Etc.nprocessors を追記しています。

akr: r47763 2014-10-02 17:57:44 +0900

File#advice のテストが失敗した時に、OS と利用していたファイルシステムを表示するようにしています。 古い Linux で tmpfs 上では fadvise() が使えない場合があるそうで、とりあえず問題を区別できるように表示を詳しくしているみたいです。

usa: r47764 2014-10-02 18:42:23 +0900

r47761 で追加された Etc.nprocessors の Windows サポートを追加しています。 定番の流れですね。 [ruby-core:65142] [Feature #10267]