ruby-trunk-changes r41607 - r41634

今日も主に bignum.c のリファクタリングと RGenGC の修正がありました。

tarui:r41607 2013-06-25 00:57:16 +0900

RGenGC のデバッグのためのチェック機能で特定のオブジェクトの参照情報を収集していたのを st_table で参照のツリーをまとめてチェックできるようにしているみたいです。詳細は良く読んでませんが。。。

svn:r41608 2013-06-25 00:57:21 +0900

version.h の日付更新。

nobu:r41609 2013-06-25 01:01:06 +0900

r41607 の行末の空白除去。

tarui:r41610 2013-06-25 02:06:16 +0900

r41607 の ChangeLog エントリの typo 修正。

nobu:r41611 2013-06-25 11:39:37 +0900

bignum.c のマクロ LSHIFTX() で不要な条件演算子(同じ条件が前にあって常に真になる)を削除しています。

nobu:r41612 2013-06-25 11:40:11 +0900

bignum.c の big2ulong() で BDIGIT が long よりも大きい環境でのコンパイラ警告を除去するためキャストを追加しています。

akr:r41613 2013-06-25 12:08:23 +0900

bignum.c で BDIGIT の取り得るサイズが広がったのに対応するべくマクロの整備や利用の徹底をしているみたいです。

ko1:r41614 2013-06-25 12:24:07 +0900

RGenGC のデバッグ用のプロファイル情報取得の修正をしています。また rgengc_remember() の戻り値を変更して obj が既に remember set に入っていたら FALSE を返すようにしています。

akr:r41615 2013-06-25 12:31:20 +0900

bignum.c の big2ulong() で BGIDIT のサイズが long 以上の時の考慮を追加しています。コンパイラの警告回避のためらしいです。

akr:r41616 2013-06-25 12:46:52 +0900

bignum.c の integer_unpack_single_bdigit() で BDIGIT 型の変数 u に対して -u としていたところを (1 + ~u) を使うようにして Visual Studio でのコンパイラ警告を抑制しようとしています。

hsbt:r41617 2013-06-25 17:49:36 +0900

sample/ のしたのサンプルスクリプトのコメントの typo 修正。

akr:r41618 2013-06-25 19:04:37 +0900

bignum.c の big2ulong() および big2ull() で BDIGIT のサイズが LONG_LONG 以上の時を考慮した修正やコンパイラ警告除去のためのキャスト追加など。

kazu:r41619 2013-06-25 19:21:04 +0900

r41615 の ChangeLog エントリの typo 修正。

akr:r41620 2013-06-25 19:36:14 +0900

r41611 の bignum.c のマクロ LSHIFTX() の条件演算子の削除を revert しています。
この一見冗長な条件演算子Visual Studio での警告を回避するために必要なのだそうです。

akr:r41621 2013-06-25 20:10:40 +0900

bignum.c の rb_big2ulong_pack() にて rb_integer_pack() を利用するようにリファクタリングしています。

akr:r41622 2013-06-25 21:19:58 +0900

bignum.c の big2ulong() の第3引数 chech を削除して常に不正な変換条件の時に例外を発生させるようにしています。

mrkn:r41623 2013-06-25 21:29:00 +0900

拡張ライブラリ bigdecimal の BigMath.exp で引数 x が BigDecimal でない負の数の時に間違った結果を返す不具合を修正しています。 https://github.com/ruby/ruby/pull/332 [ruby-core:47145] [Bug #6862]

akr:r41625 2013-06-25 21:51:17 +0900

bignum.c の BDIGIT のサイズのバリエーション対策の続き。 BDIGIT 用のリテラルに 1UL と書いていたところを (BDIGIT)1 とキャストするように変更しています。あと不要なキャストを消したりしています。

knu:r41629 2013-06-25 22:28:57 +0900

RubyGems の拡張ライブラリビルド時に実行する make に DESTDIR="" を渡して MAKEFLAGS による指定を無視させるようにしています。 これは RPM パッケージを作るためのビルド時に MAKEFLAGS 経由で DESTDIR が指定されてしまって、拡張ライブラリのビルド/インストールで問題が発生していました。 gem では環境変数から DESTDIR をクリアするようにすることで DESTDIR が指定された時の問題を回避していたのですが RPM パッケージ作成の時は MAKEFLAGS 経由で DESTDIR が再度設定されてしまっていたので、これも回避するようにしています。 td-agent のパッケージ作成時におきてた問題だそうです。 [ruby-core:55513] [Bug #8533] https://github.com/ruby/ruby/pull/327 https://github.com/rubygems/rubygems/pull/573

akr:r41630 2013-06-25 22:47:39 +0900

bignum.c で整数が 2 の累乗かどうかチェックする POW2_P() という既存のマクロを利用するようにリファクタリングしています。

akr:r41631 2013-06-26 01:18:32 +0900

bignum.c の bigsub_int() で BDIGIT のサイズが long よりも小さい時に Bignum のバッファサイズによって少しオーバランした領域にアクセスしていた不具合を修正しているようです。また BDIGIT のサイズに応じて実装を切り換える分岐を増やしています。

svn:r41632 2013-06-26 01:18:37 +0900

version.h の日付更新。

tarui:r41633 2013-06-26 01:20:39 +0900

gc.c に is_before_sweep() という、オブジェクトが mark されなくて sweep 予定で、しかし LazySweep によってまだ実際に回収されていない状態かどうかを判定する関数を追加して、rb_gc_force_recycle() でオブジェクトを強制的に freelist に繋ぐ時に sweep 予定でなければ mark 用の bitmap からもクリアするようにしています。

kazu:r41634 2013-06-26 01:31:42 +0900

r41633 の ChangeLog エントリの typo 修正。