ruby-trunk-changes r41750 - r41757

今日は mkmf.rb の DESTDIR 指定時の不具合修正、Windows 環境では Dir.glob の不具合修正などがありました。

akr:r41750 2013-07-02 23:49:06 +0900

bignum.c の関数マクロ roomof() で結果のキャストを int から long に変更。また rb_ull2big() で最初に Bignum オブジェクトを生成する bignew8) の引数の順番とバッファサイズの間違いを修正しています。

akr:r41751 2013-07-03 12:08:52 +0900

bignum.c の Bignum の文字列化で使う calc_hbase() を maxpow_in_bdigit() という関数名に改名して、結果の返しかたなどインタフェースも少し変更しています。

svn:r41752 2013-07-03 12:08:56 +0900

version.h の日付更新。

nobu:r41753 2013-07-03 14:11:58 +0900

test/ruby/test_dir.rb と test/ruby/test_rubyoptions.rb で Pathname#realpath を使っていたところを File.realpath を使うようにして拡張ライブラリ pathname への依存をなくしています。

nobu:r41754 2013-07-03 14:12:03 +0900

dir.c で lstat(2) が未定義の時にかわりに stat(2) を利用するようにマクロ定義していたのですが、システムコールですりかえるのではなくて lstat() を利用している do_lstat() の定義ごと do_stat() にすりかえるように変更しています。この時点では do_stat() と do_lstat() は呼び出すシステムコールが異なるだけで他は全く一緒だったので、どっちですりかえても同じですが、次の r41755 で do_stat() は Windows 版の時のシステムコールの代替版を呼び出すようにしているので、Windows 環境のための対処を一箇所にまとめるためかと思われます。

nobu:r41755 2013-07-03 14:15:28 +0900

dir.c の do_stat() で Windows 版のときに代替実装の rb_w32_ustati64() を呼び出すようにする修正です。 Windows の FindFirstFile() という関数が "<" や ">" をワイルドカードとして扱ってしまう不具合(?)のため Dir.glob が誤作動する不具合へ対処するためだそうです。 [ruby-core:55764] [Bug #8597]

nobu:r41756 2013-07-03 18:12:59 +0900

r39841 で make に環境変数 DESTDIR が指定された時の対処として r39841 の mkmf.rb で各種インストール先ディレクトリの指定に変数 DESTDIR の参照を追加した変更を revert しています。 DESTDIR が考慮されない不具合は別途 r41648 で修正されていて、r39841 の変更により Windows 環境で拡張ライブラリをビルドする時に生成した Makefile でおかしなパスが指定されてしまう不具合が発生していました。 [ruby-core:55760] [Bug #8115]

akr:r41757 2013-07-03 22:32:14 +0900

util.c の scan_digits() という関数内で static 変数として宣言されていた 数字とアルファベットを使った 36進数の変換テーブルを関数の外に出して internal.h に宣言を追加して bignum.c や pack.c で 16進数の変換や 36進数の変換に流用するようにしています。