ruby-trunk-changes r45763 - r45770

今日は IO#statfs の Solaris でのエラーの修正などがありました。

nobu: r45763 2014-05-01 00:16:07 +0900

method_defined? などで文字列で渡された引数が intern で Symbol 化されないことを確認するテストで、まだ Symbol になっていない文字列を探すために拡張ライブラリを利用していたのを Symbol.find メソッドを利用するように変更しています。 r45175 で最近追加されたので不要になったようです。

nobu: r45764 2014-05-01 00:16:09 +0900

parse.y の rb_id_attrset() で NameError 例外を発生させる時のメッセージに埋め込むシンボル名を作る時に %PRIsVALUE を利用して VALUE 値のまま埋め込むようにしています。

svn: r45765 2014-05-01 00:16:12 +0900

version.h の日付更新。

nobu: r45766 2014-05-01 00:25:46 +0900

r45764 で修正した NameError の例外で未知の種類の ID だった時に名前でなく id の値をそのまま数値(%p)で埋め込むように変更しています。

nobu: r45767 2014-05-01 00:37:56 +0900

r45766 で未知の種類の ID の例外メッセージで ID の値を数値で埋め込むようにしましたが、lookup_id_str() で検索してみて可能なら名前を埋め込むようにしています。 dynamic Symbol の時も名前が取得できるので表示されます。

ngoto: r45768 2014-05-01 00:38:31 +0900

IO#statfs の実装で fstatfs(2) か fstatvfs(2) を使うかの判定で HAVE_FSTATFS, HAVE_FSTATVFS だけで判定したところ Solaris では fstatfs(2) は存在するものの実際に呼ぶと ENOSYS が返るなど使えないそうで、HAVE_STRUCT_STATFS/HAVE_STRUCT_STATVFS で構造体の存在もチェックするようにしています。 [ruby-dev:48145] [Bug #9788]

nobu: r45769 2014-05-01 01:07:02 +0900

Windows 環境向けの statfs() のエミュレーション ustatfs() で GetVolumePathNameW() のプロトタイプ宣言を追加しています。 古い VC で宣言がないことがあるみたいです。

nobu: r45770 2014-05-01 01:45:32 +0900

r45769 で追加した GetVolumePathNameW() のプロトタイプ宣言の型を修正しています。