ruby-trunk-changes r34669 - r34681

今日は FileUtils のリファクタリングと dbm のヘッダ/ライブラリのチェックの強化がありました。

tenderlove:r34669 2012-02-18 02:59:47 +0900

FileUtils のリファクタリング。 メソッドの :mode, :noop, :verbose などのオプションへの対応を保持する OPT_TABLE の格納をまとめた define_command というユーティリティメソッドを追加して、これを利用してメソッドの module_function 定義するようにしています。また FileUtils.compare_stream で IO#read の第2引数にバッファを渡す書きかたをやめてサイズだけ指定するようにしています。これはなんとなく先日 r34580 などで修正した、IO#read が途中で割り込まれた時に指定サイズの文字列が見えてしまう問題の対策っぽいですが、それは修正済みなのでバッファの文字列は使い回すほうが大きなファイルでは若干効率的ですね。あとメソッドを private にするのを private メソッドにメソッド名を渡して宣言するようにしていたのを無引数の private, public を使って宣言している位置によって分けるようにしています。これはひとつづつ定義するほうが好みですねぇ。

svn:r34670 2012-02-18 02:59:52 +0900

version.h の日付更新。

naruse:r34671 2012-02-18 11:47:41 +0900

tool/enc-unicode.rb で 1.9 からサポートされている JSON like な Hash の記法などを使わないようにしています。

akr:r34672 2012-02-18 12:51:52 +0900

拡張ライブラリ dbm のヘッダのチェックで昨日の確認するマクロを r34667 で追加したのに合わせて DBM::VERSION 定数の定義をそのマクロが定義されていた時に定義するようにしています。

akr:r34673 2012-02-18 13:41:15 +0900

dbm のテストの追加です。 DBM::VERSION に応じて生成されるファイルの拡張子の確認をしています。

akr:r34674 2012-02-18 13:54:09 +0900

r34673 で追加した dbm のテストにチェックを追加。 生成されるファイルが *.db というファイルだったら DBM::VERSION に "Berkeley DB" という文字列が含まれることをチェックしています。これもヘッダとライブラリの一致の確認の一環でしょうか。

akr:r34679 2012-02-18 18:47:07 +0900

拡張ライブラリ dbm の extconf.rb のライブラリの検出順序を gdbm_compat を gdbm より先にするようにしています。またライブラリ内の変数のチェックするために変数の宣言がなくてもいいようになっていましたが、宣言があることを前提とする場合となくてもいい場合のメソッドを分けて使い分けるようにしています。

akr:r34680 2012-02-18 19:06:24 +0900

dbm のファイルの拡張子のチェックテストで先にファイル名から拡張子より前の部分を除いてからチェックするようにファクタリング。

mrkn:r34681 2012-02-18 23:28:42 +0900

random.c の同じコメントが2箇所あったのを1つ削除しています。