ruby-trunk-changes r41047 - r41060

今日は FileUtils.mkdir,mkdir_p,rmdir に "/" を渡した時の不具合修正などがありました。

ayumin:r41047 2013-06-03 23:20:15 +0900

標準添付ライブラリ fileutils の FileUtils.mkdir, mkdir_p などで指定されたファイルパスの末尾の "/" を除去するのに単に chomp していたのでルートディレクトリ "/" が渡された時に空文字になってしまってエラーが起きていたのを修正。なるほどー、"/" を mkdir することないですからなかなか気がつかなかったんですね。 https://github.com/ruby/ruby/pull/319

kazu:r41048 2013-06-03 23:22:53 +0900

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

naruse:r41049 2013-06-03 23:46:45 +0900

.travis.yml を編集して clang を使ったビルドもテストするようにしています。 また make test-all は結果が失敗してしまうことが多いので test-all は実行しないようにしています。

akr:r41050 2013-06-03 23:49:33 +0900

bignum.c に bitlength_bdigit() という関数を新規作成して ffs(3) を直接呼ぶかわりに使うようにしています。

kazu:r41052 2013-06-04 00:01:42 +0900

r41047 で fileutils に導入した remove_tailing_slash を FileUtils.rmdir からも呼ぶようにして "/" が渡された時に対応するようにしています。

svn:r41053 2013-06-04 00:01:47 +0900

version.h の日付更新。

kazu:r41055 2013-06-04 00:46:29 +0900

r41047 のテストで FileUtils.mkdir("/") が例外を発生させることを期待して書いているテストで発生する例外の種類がプラットフォームによって異なっていたので条件をゆるめています。

naruse:r41057 2013-06-04 12:47:02 +0900

r41041 の vm_insnhelper.c での不要に見えた else 節が実は必要だったという部分についてより詳しい解説をコメントとして残しています。ブロック呼び出しの途中の状態で ruby のメソッド呼び出しが行なわれると VM のスタックポインタが呼び出そうとしているブロックへの引数の先頭を指している状態でメソッド呼び出しが行なわれてしまい、そこで vm_push_frame() が呼ばれて最初の引数が上書きされてしまう可能性があるので、バックアップしておいてそこから復旧しておくようにしています。今まさにブロックを呼び出そうとしている微妙な状態でメソッドを呼んでしまうからだったんですね。 [Bug #8484]

mrkn:r41058 2013-06-04 15:37:44 +0900

拡張ライブラリ bigdecimal に含まれている bigdecimal/util.rb で追加される Float#to_d メソッドのデフォルトの精度が 1 大きかったのを修正しています。 https://github.com/ruby/ruby/pull/323

nobu:r41059 2013-06-04 17:23:26 +0900

process.c の関数定義のスタイルの修正。

akr:r41060 2013-06-04 18:42:25 +0900

r41050 で bignum.c に導入した bitlength_bdigit() の不具合修正。最上位のビットの1つ上の位置を返すようにしていたので結果から -1 するようにしています。