ruby-trunk-changes r41061 - r41091

今日は Date の不具合修正、Net::IMAP の不具合修正、RubyGems 2.0.3 のマージ、gcc 4.4 の最適化対策、Marshal のフォーマットについてのドキュメント追加などいろいろありました。

eregon:r41061 2013-06-04 23:09:25 +0900

拡張ライブラリ objspace の rdoc 用コメントの重複した文の削除や文法の修正など。 https://github.com/ruby/ruby/pull/299

eregon:r41062 2013-06-04 23:17:17 +0900

lib/irb/completion.rb の文字列の配列リテラルを %w[] 記法に変更するリファクタリング

ayumin:r41066 2013-06-04 23:47:33 +0900

Hash() メソッドの rdoc コメントの Hash(nil) の時の戻り値の間違いを修正。 [ruby-core:55299] [Bug #8487]

akr:r41069 2013-06-05 00:10:28 +0900

bignum.c で BDIGIT のサイズに切り上げする計算を修正したり、キャストを修正したりしてます。

svn:r41070 2013-06-05 00:10:32 +0900

version.h の日付更新。

ayumin:r41071 2013-06-05 00:33:34 +0900

irb の --help で表示するメッセージの日本語版の修正。 r41028 の日本語版の対応です。 [ruby-dev:46707] [Feature #7510]

eregon:r41074 2013-06-05 01:16:36 +0900

Array#+ メソッドの rdoc 用コメントのサンプルコードで非破壊的に動作することがわかるように修正しています。 https://github.com/ruby/ruby/pull/324

drbrain:r41075 2013-06-05 06:35:31 +0900

doc/marshal.rdoc というファイルを追加して Marshal のフォーマットについて記述しています。これはすごい!

drbrain:r41076 2013-06-05 06:54:58 +0900

RubyGems の 2.0.3 をマージしています。これまで trunk には 2.0.3 のちょっと前の状態の RubyGems が入っていましたが、ついに 2.0.3 になりました。デフォルトの証明書や鍵のファイルの取得方法が変更されています。

tadf:r41077 2013-06-05 07:09:36 +0900

ちょっと詳しいところはわかりませんが拡張ライブラリ date で Date.jd の period への丸め処理を切り出して、処理が抜けていたところにも挿入しています。 [ruby-core:55295] [Bug #8485]

tadf:r41078 2013-06-05 07:18:12 +0900

拡張ライブラリ date の date_core.c で不要になった分岐を削除しているようです。 r41077 の続きというか r41077 で不要になったのでしょうか?

akr:r41079 2013-06-05 08:15:30 +0900

Bignum#** の実装で必要なビット数を計算するのに r41050 で bitlength_bdigit() という関数を定義して書きましたが、nlz() という既存の関数が利用できたので、それを利用するように書き替えて bitlength_bdigit() は削除しています。

naruse:r41080 2013-06-05 09:48:24 +0900

r41047 で追加した FileUtils.mkdir("/") のテストで捕捉する例外に r41055 で種類を追加したのに加えてさらに Errno::EACCES を追加しています。 Windows 環境で発生するとのこと。

nobu:r41081 2013-06-05 10:43:09 +0900

tool/mkrunnable.rb でプラットフォームを判定するために CROSS_COMPILING のみ参照していたのを CROSS_COMPILING が未定義なら普通に RUBY_PLATFORM をチェックするように修正しています。

naruse:r41083 2013-06-05 15:27:43 +0900

gc.c の before_gc_sweep() でコンパイラの最適化を切ることで Ubuntu 10.04 での gcc 4.4 でコンパイルした時の DL のテストでの SEGV を回避しようとしています。 gcc 側の問題か最適化が賢くなったからかはわかりませんが、最適化によるマーク漏れの回避をしているのではないかと思います。

naruse:r41084 2013-06-05 15:31:43 +0900

r41083 の最適化の切りかたを #pragma を使ったものから gcc の __attribute__ を使った方法に変更しています。

nobu:r41085 2013-06-05 15:36:06 +0900

r41084 の変更の行末の空白削除。

akr:r41086 2013-06-05 20:07:05 +0900

random.c で Bignum のためのメモリ領域を作る時に BDIGIT 型への明示的なキャストを追加しています。また BDIGITS のサイズに依存しないように、random_load() の処理を while ループを使って書き直しています。おそらく最近の Bignum 関係のコミットは BDIGIT 型のサイズが異なるプラットフォーム(ILP64?) でのビルドやテストを修正しているのかなぁという予想。

charliesome:r41087 2013-06-05 20:32:07 +0900

include/ruby/ruby.h の SYMBOL_P() マクロの定義で結合順序を明確にするためにかっこを追加しています。

mrkn:r41088 2013-06-05 20:35:50 +0900

include/ruby/ruby.h の flonum 導入による VALUE のタグ(ビットフラグ)の説明のコメントのインデントを修正。

kazu:r41089 2013-06-05 20:53:02 +0900

r41052 で追加した FileUtils.rmdir のテストで一度 rmdir して例外が発生した時だけテストしている理由をコメントで追記しています。

akr:r41090 2013-06-05 21:17:30 +0900

bignum.c の big_fdiv() でも bdigbitsize() という関数を使ってサイズの切り上げを計算していたのを nlz() を使って書くようにしています。

shugo:r41091 2013-06-05 22:44:17 +0900

Net::IMAP#capability_response でレスポンスの CAPABILITY の末尾に余分な空白があるとエラーになっていたのを無視するように修正しています。 [ruby-core:55024] [Bug #8415]