ruby-trunk-changes r39604 - r39615

今日はおもに RubyGems の不具合修正や openssl の使えない環境向けの対応などがありました。
ちなみに RubyGemsl 2.0.2 がリリースされたみたいですけど trunk のバージョンはまだ 2.0.1 です。

kazu:r39604 2013-03-06 01:31:19 +0900

INT2NUM(0) を使っていたところを INT2FIX(0) に変更しています。 0 だから常に Fixnum に納まるはずだからでしょうか。

svn:r39605 2013-03-06 01:31:24 +0900

version.h の日付更新。

drbrain:r39606 2013-03-06 07:40:53 +0900

RubyGems で gem list サブコマンド の --source オプションでデフォルト以外の source を指定した時に https として接続しようとして無限ループ状態になっていたのを修正。 [ruby-core:53140] [Bug #8019] また(同じ原因かもしれませんが) http プロトコルのソースに接続する場合は openssl を require できなくでも動作できるように require や OpenSSL の定数の参照を遅延しています。その他エラーメッセージの修正など。

drbrain:r39607 2013-03-06 08:02:00 +0900

Gem.ensure_gem_subdirectories というメソッドに mode という省略可能引数を追加して、これが指定されたら作成するディレクトリの権限情報を指定のものにして作成するようにしています。 r38870 で Gem.ensure_gem_subdirectories の仕様を回避するため tool/rbinstall.rb に workaround を入れてましたが、このように外部から使う時の為みたいです。 [ruby-core:51502] [Bug #7713]

drbrain:r39608 2013-03-06 08:11:43 +0900

test/rubygems/test_require.rb のテストで require "a" できるかどうかというテストで "a.rb" というファイルがロードパスにたまたまあったらテストが誤作動するので require "test_gem_require_a" をするように変更しています。 [ruby-core:51720] [Bug #7749]

drbrain:r39609 2013-03-06 13:14:38 +0900

r39606 の変更で test/rubygems/test_gem_spec_fetcher.rb の未使用になった変数を削除しています。

nobu:r39610 2013-03-06 15:29:57 +0900

r39598 で rb_check_arity() を関数マクロから inline 関数に変更したので #ifdef でチェックしている場合を考慮して #define rb_check_arity rb_check_arity を定義しておいています。

nobu:r39611 2013-03-06 15:30:03 +0900

internal.h で ruby のソースのコア部分で公開している関数に rb_ という prefix をつけ忘れていたところに追加しています。 num_interval_step_size だけ rb_ ではなくて ruby_ をつけているのですがこれはどう違うんでしたっけ。[追記] ruby_float_step() という関数が ruby_ を prefix にしていたのでそれと揃えたんだそうです。[/追記]

nobu:r39612 2013-03-06 15:30:06 +0900

Process.spawn などで IO の redirection の指定で :in, :out, :err などの Symbol 以外の Symbol が渡された時の例外のメッセージが 誤って "negative file descriptor" になっていたので "wrong exec redirect" に修正しています。

nobu:r39613 2013-03-06 15:30:08 +0900

GNUMAkefile を生成する処理を configure.in から切り出してテンプレートを template/GNUmakefile.in に置いています。

nobu:r39614 2013-03-06 19:22:29 +0900

configure.in の unexpand_shvar の不具合修正。

nobu:r39615 2013-03-06 20:59:23 +0900

defs/gmake.mk という make のテストに関する依存関係を記述したファイルを追加して GNUmakefile から include するようにしています。 make test などした時に適切に再ビルドするようにしているのだと思います。 Makefile の変数展開内で使える関数が駆使されていて、あまりちゃんと処理を追っていませんけど。
[追記] make -j で main や all と test や test-all などを同時に明示的に指定して並列ビルドした時に拡張ライブラリなどのビルド途中でテストが動いてしまわないようにしているんだそうです。なるほど。[/追記]