ruby-trunk-changes r45730 - r45738

今日は主に IO#statfs の実装で fstatvfs(2) も利用するようにして OpenBSD, NetBSD でも利用可能にするようにする対応などがありました。

nari: r45730 2014-04-28 17:46:33 +0900

gc.c の objspace_xrealloc() および objspace_xfree() で CALC_EXACT_MALLOC_SIZE が真に定義されていたときのコードで変数名を typo していたのを修正しています。普段はコンパイルされない部分のようですね。

nari: r45731 2014-04-28 17:46:36 +0900

gc.c の objspace_malloc_increase() で MALLOC_ALLOCATED_SIZE が真の時に実行されるコードで objspace_malloc_increase() にポインタを渡すべきところがそうなっていなかったのを修正しています。こちらも普段はビルドされない部分ですね。

svn: r45732 2014-04-28 17:46:40 +0900

version.h の日付更新。

naruse: r45733 2014-04-28 18:08:15 +0900

IO#statfs と File::Statfs の対応で fstatfs(2) が使えない時や NetBSD (fstatfs() が obsolete らしい)で fstatvfs(2) が使えるところではかわりに fstatvfs() を利用するようにしています。このため struct statsfs と struct statvfs の区別を吸収する statfs_t という型を定義するようにしています。
また struct statfs を使う時に f_fstypename というメンバが存在するか configure で検査して、存在する時だけ File::Statfs の fstypename が呼べるようにしています。

naruse: r45734 2014-04-28 21:46:23 +0900

struct statfs の f_type というメンバも存在チェックを configure でして、存在する時だけ File::Statfs#type が呼べるようにしています。 OpenBSD 対応のためだそうです。つまり OpenBSD では struct statfs::f_type は存在しないみたいですね。

nobu: r45735 2014-04-28 23:10:28 +0900

r45733 の IO#statfs の変更で Windows 環境でコンパイルできなくなっていたようで、多分 statfs_t の f_type メンバの存在チェックを利用するようにしています。 また statfs(2) や fstatfs(2) の呼び出しを wrap する STATFS()/FSTATFS() という関数マクロを導入しています。fstatfs(2) と fstatvfs(2) などを呼んでいるところで個別に条件コンパイルしていたのを関数マクロの定義部でまとめて分岐するようにしています。個別に分岐するなかで #if .. #elif .. #endif にだけ if 文のブロックの開きかっこが存在していたところがあってそこが Windows だと syntax error になっていたようです。けど fstatfs() が Fstatfs() になってるところがありますね。次で修正されています。

nobu: r45736 2014-04-28 23:13:31 +0900

r45735 の FSTATFS() の定義の typo 修正。

nobu: r45737 2014-04-29 00:20:28 +0900

bootstraptest/test_literal.rb、regexp.rdoc、lib/session.rb などのドキュメント/コメントの英単語の typo 修正。 https://github.com/ruby/ruby/pull/603

svn: r45738 2014-04-29 00:20:34 +0900

version.h の日付更新。