ruby-trunk-changes r50996 - r51002

今日は Struct の最適化などがありました。

normal: r50996 2015-06-23 05:10:07 +0900

Struct#[ ] と Struct#[ ]= メソッドのベンチマークスクリプトを追加しています。 [Feature #10585] (Struct の高速化)からベンチマークだけもってきたという感じみたいです。

svn: r50997 2015-06-23 05:10:22 +0900

version.h の日付更新。

svn: r50998 2015-06-23 05:10:39 +0900

r50996 で新規追加されたファイルの svn property 設定。

normal: r50999 2015-06-23 06:50:31 +0900

Struct から生成したクラスをさらに継承している場合のメンバー取得で値をサブクラスにキャッシュしておくようにしています。 Struct から作ったクラスをさらに継承することってよくあるのかな。 [ruby-core:66767] [Feature #10585]

normal: r51000 2015-06-23 09:49:26 +0900

dir.c で check_dirname() の引数を VALUE のポインタから VALUE に変更して、戻り値で結果を返すようにして volatile 修飾子を省いています。コードサイズの削減のためみたいです。

nobu: r51001 2015-06-23 14:32:30 +0900

NameError に wrap している C の配列のインデックスと内容の対応を enum 型として定義してマジックナンバーによるアクセスを名前のついた定数でアクセスするようにリファクタリングしています。

nobu: r51002 2015-06-23 14:32:52 +0900

r50945 で追加した NameError#receiver の実装で NameError が内部的に保持している TypedData 型のオブジェクトの型のチェックを追加しています。定数の参照の時などの NameError では型が異なるため。 [Feature #10881]