ruby-trunk-changes r45963 - r45975

今日は Dir.glob の(Windows 環境での?)修正と、標準添付ライブラリ test/unit の削除がありました。test/unit の削除についてはチケットの議論も参照してください。minitest も削除される予定で、今後標準添付のテストライブラリがどうなるのかはまだ議論中という状態のようです。

usa: r45963 2014-05-17 00:35:50 +0900

リリースパッケージを リリースディレクトリに配布するためのツール tool/release.sh (つまりこれは ruby をリリースする人しか使わないツールなわけですが)で最新版のシンボリックリンクをはりなおす時の ln に -f オプションを追加しています。

svn: r45964 2014-05-17 00:36:00 +0900

version.h の日付更新。

nobu: r45965 2014-05-17 01:49:25 +0900

Dir.glob の挙動についての修正です。 元のチケットは Windows でのシンボリックリンクで別のドライブへリンクがはられていた時の Dir.glob の展開結果についてなのですが、変更内容をみるとマッチさせる文字列のパターンの種類をパターン文字列がアルファベットを含む時を PLAIN と区別して ALPHA として別にして、ファイルシステムが HFS+ など大文字小文字を区別しないものかどうかで magical (ただの比較だけではない場合のことと思われます)と扱うかどうかを変更しています。 これだけみると Mac OS X での大文字小文字を区別するかどうかについての処理の変更のように思えるのですが…。たぶんその処理に問題があって "../*" のようなパターンも余分な処理をしてしまうのでそれをやめるためアルファベットを含まない部分は直接比較で済ませるようにしているのではないかと思います。 [ruby-core:61552] [Bug #9648]

nobu: r45966 2014-05-17 01:49:38 +0900

どちらかというとこっちのほうがチケットの件にとっては本命の変更かも。 Windows 版の時にパターンマッチが不要なディレクトリの do_opendir() 呼び出しのパス名を直接作成するようにしています。 [ruby-core:61552] [Bug #9648]

nobu: r45967 2014-05-17 10:05:06 +0900

r45965 で ALPHA と判定する条件が casefold のフラグの有無の影響をうけていましたが、HFS+ の場合を考えると常に区別したいので条件から外しています。 [ruby-core:61552] [Bug #9648]

nobu: r45968 2014-05-17 10:40:34 +0900

r45965 の再修正。 glob_make_pattern() で magical と判定されなかった部分のディレクトリ名のタイプを PLAIN にしています。判定の段階で ALPHA が magical でない場合は PLAIN にしておくことで、後の処理で不要なマッチ処理をスキップできるようにしているのだと思います。なんかだいぶ複雑ですね。 [ruby-core:61552] [Bug #9648]

nobu: r45969 2014-05-17 11:02:51 +0900

glob_helper() で PLAIN のディレクトリ名の部分も fnmatch(3) を通すようにしています。 あれ、スキップしたんじゃなかったのか…。なんだかよくわかりません。 [ruby-core:61552] [Bug #9648]

hsbt: r45970 2014-05-17 15:26:51 +0900

minitest と test/unit を標準添付ライブラリから削除しようという案があり、そのためにまず minitest と test/unit の make test や make test-all で利用している部分を test/lib の下に含めるようにして標準ライブラリ部分に依存しないようにしているようです。 [ruby-core:61890] [Feature #9711]
ふーむ、けど結局ここに含めている部分は使うわけですよね。バージョンアップに追随しないっていうのが重要なのかな…。

svn: r45971 2014-05-17 15:27:04 +0900

r45970 で追加されたファイル群の svn property 設定。

nobu: r45972 2014-05-17 16:46:05 +0900

Doxyfile.tmpl でドキュメント対象外に r45913 で追加した ccan というサイトからもってきたソースコードディレクトリを追加しています。 [ruby-core:62557]

nobu: r45973 2014-05-17 16:48:25 +0900

make install-doc で C API ドキュメントのインストールをデフォルトでは off にするようにしています。 configure で --enable-install-capi をつけるとインストールするようにできます。 [ruby-core:62557]

sorah: r45974 2014-05-17 17:01:15 +0900

標準添付ライブラリの test/unit を削除しています。 おー、minitest も同梱はやめる方針になりそうです。 [ruby-core:62620] [Feature #9711]

sorah: r45975 2014-05-17 17:05:35 +0900

NEWS ファイルに r45974 での lib/test の削除について追記しています。