ruby-trunk-changes r39284 - r39293

今日は Time と String を <=> 演算子で比較した時などに無限再帰に陥る不具合の修正などがありました。

naruse:r39284 2013-02-17 01:10:55 +0900

r39267 で rubyarchdir の置換をするようにした影響で RbConfig::CONFIG["includedir"] に不正確なパスが格納されるようになったのに対処しています。

svn:r39285 2013-02-17 01:11:00 +0900

version.h の日付更新。

zzak:r39286 2013-02-17 01:19:46 +0900

拡張ライブラリ psych の Kernel#y メソッドの rdoc コメントを追記しています。 https://github.com/tenderlove/psych/pull/127

zzak:r39287 2013-02-17 01:25:59 +0900

r39286 の ChangeLog に記載した github の issue 番号を修正。

nobu:r39288 2013-02-17 16:56:57 +0900

r39274 で入れた .gdbinit で定義した gdb のコマンドで出力プロンプトに色つけを行うようにしたところを部分的に revert しています。 履歴のインクリメンタルサーチ時に表示が乱れるといった問題があったようです。

nobu:r39289 2013-02-17 16:57:43 +0900

configure.in で unexpand_shvar という、変数の展開を巻き戻す処理を行う関数を定義して、rubylibprefix, rubyarchprefix, rubysitearchprefix, exec_prefix を置換しています。 RbConfig::CONFIG に格納する時に変数展開をやりなおすようにするためだと思われます。

nobu:r39290 2013-02-17 17:23:25 +0900

ビルド環境の修正。VPATH に $(topdir) が含まれていたため拡張ライブラリ mathn/complex や mathn/rational で依存関係がおかしくなることがあった不具合を修正しています。 [ruby-dev:46998] [Bug #7864]

nobu:r39291 2013-02-17 18:41:31 +0900

r37242 で configure の --with-opt-dir オプションの処理でデバッグ用に set +x して処理内容を表示させていたのを消しています。

nobu:r39292 2013-02-17 20:55:50 +0900

Time.now. == "" とするとレシーバと引数をいれかえて <=> を呼び出すことをくりかえして無限再帰に陥ってしまう不具合を修正しています。 入れ替えて比較する処理を rb_invcmp() という関数として提供して、time_cmp() でもこれを利用するようにしています。 rb_invcmp() は rb_exec_recursive() という再帰呼び出しで同じ引数での呼び出しをチェックする関数を使って、既に呼ばれていた時にはコールバック関数の第3引数に Qtrue を渡すようにしています。これにより Time.now == "" は nil を返すようになります。

naruse:r39293 2013-02-17 21:46:45 +0900

r39289 の configure での unexpand_shvar 関数の導入といくつかの変数の置換する変更を revert しています。 $LOAD_PATH に影響していたとのこと。