ruby-trunk-changes r48431 - r48453

今日は主にビルド時の make での依存関係の記述を自動生成するための変更や、rexml のテストのリファクタリングがありました。

akr: r48431 2014-11-15 14:15:49 +0900

tool/update-deps を使って common.mk と enc/depend および各種拡張ライブラリの ext/**/depend の依存関係の記述を更新しているそうです。

svn: r48432 2014-11-15 14:16:11 +0900

version.h の日付更新。

nobu: r48433 2014-11-15 16:28:08 +0900

Kernel#through が対応する catch がみつからなかった時に発生させる例外クラスとして ArgumentError を継承した UncaughtThrowError を定義しています。チケットをみると catch で対応する throw を 1つずつ捕捉するのではなくて例外を rescue することで複数の throw をまとめて捕捉するようなことをしたい時に指定できるように例外クラスを専用のものにするというのが動機だったようです。なるほど、途中に別の rescue があるとそこで取られる可能性があるなど、若干キモいですけどね。 [ruby-core:66103] [Feature #10480]

akr: r48434 2014-11-15 19:28:25 +0900

r48431 の続きで依存関係の記述に変数の展開結果がコメントで付加されていたのを削除しています。

usa: r48435 2014-11-15 19:43:12 +0900

内容からしてこれも r48431 および r48434 と関連してというか、この依存関係の記述方法で気がついたのだと思いますが、標準添付ライブラリ mkmf.rb で depend ファイルの記述に行の途中からのコメントがあってもいいようにしています。 あと rubygems の require でファイルパスを絶対パスにするようにしているのですが、これはコミットミスっぽいですね。

usa: r48436 2014-11-15 19:46:38 +0900

というわけでやっぱりコミットミスだったようで r48435 を revert しています。

usa: r48437 2014-11-15 19:51:11 +0900

r48435 のリベンジで lib/mkmf.rb の変更だけ入れ直しています。

kou: r48438 2014-11-15 20:09:57 +0900

標準添付ライブラリ rexml のテストで REXMLTests::TestDocument::BomTest が REXMLTests::TestDocument を継承していたのですが、これが不要だったので Test::Unit::TestCase を直接継承するようにしています。

kou: r48439 2014-11-15 20:12:20 +0900

rexml の entity expansion の制限のテストを REXMLTests::TestDocument::EntityExpansionLimitTest というテストクラスに括り出しています。

kou: r48440 2014-11-15 20:13:31 +0900

r48439 によるネストの変化によるインデント修正。

akr: r48441 2014-11-15 20:14:08 +0900

r48431 で common.mk や depend ファイルで自動生成された依存関係の部分をコメントで示すようにしています。

kou: r48442 2014-11-15 20:17:33 +0900

rexml の entity expansion のテストで REXML::Security.entity_expansion_limit の設定を戻すのを teardown メソッドで実行するようにしています。

akr: r48443 2014-11-15 20:30:59 +0900

r48434 および r48441 の依存関係についての記述の変更に tool/update-deps も追随して、行の途中のコメントを出力しないようにしたり、自動生成された行を検出して変化がない時は再生成しないようにするようにしたりしています。

kou: r48444 2014-11-15 20:40:47 +0900

rexml の entity expansion のテストでテストメソッドをより細かく分割しています。

kou: r48445 2014-11-15 20:45:27 +0900

rexml のテストでテスト用の XML の定義がそれを利用しているメソッド内で行うようにしています。

kou: r48446 2014-11-15 20:47:34 +0900

rexml のテストをさらにテストクラスで括り出してテストメソッド名を短くしています。

akr: r48447 2014-11-15 20:49:06 +0900

rubyソースコードruby/ruby.h や ruby/encoding.h、ruby/st.h などを個別に #include していたのを internal.h を #include するように修正して、common.mk や depend ファイルでの依存関係も修正しています。

kou: r48448 2014-11-15 21:29:21 +0900

r48446 の rexml のテストの変更でネストが変化したのに対応してインデント修正。

akr: r48449 2014-11-15 23:11:49 +0900

common.mk で ???.o が ???.c に依存しているというビルドルールから自明な依存関係の記述は削除しています。

akr: r48450 2014-11-16 00:08:50 +0900

common.mk で parse.o の依存関係を parse.y が parse.h より前になるようにしています。依存関係の記述って順番に意味があるんですね。いやまあ、なんとなく記述順に深さ優先で再帰的に処理されるのだろうというのは想像に難くないですが。

svn: r48451 2014-11-16 00:09:10 +0900

version.h の日付更新。

akr: r48452 2014-11-16 00:33:34 +0900

Time.at に Rational を渡した時の Time#nsec のテストを追加しています。 ビルド関係の変更のなか唐突に Time のテストが。 [ruby-core:66285] [Bug #10512]

akr: r48453 2014-11-16 00:46:05 +0900

common.mk に自動生成されるソースファイル(parse.c、miniprelude.c、prelude.c)についての依存関係を追記しています。