ruby-trunk-changes r33924 - r33931

今日も主にビルド関係の修正がありました。

naruse:r33924 2011-12-02 07:14:45 +0900

テストがないということと、proc や Proc.new で作った Proc オブジェクトは (lambda や ->(){ ... } と違って)仮引数の宣言に関わらず引数を与えなくても呼べるので、Proc#arity の仕様が自明ではないということで r33921 の Proc#arity の修正を revert しています。 [ruby-core:41431] [Bug #5694]

svn:r33925 2011-12-02 07:15:00 +0900

version.h の日付更新。

nobu:r33926 2011-12-02 11:30:38 +0900

clang では再配置可能実行体のリンク時のオプションが -pie でなく -Wl,pie なので XLDFLAGS に追加するオプションを変更して、$linker_flag というリンカに渡すオプションの指定の変数を利用するようにしています、がすぐ revert されています。 [ruby-core:41438] [Bug #5697]

naruse:r33927 2011-12-02 13:02:20 +0900

r33926 を revert しています。 LinuxFreeBSDgcc では -Wl,pie ではなくて -pie を使わないといけないということで、ややこしいですね。

nobu:r33928 2011-12-02 15:18:21 +0900

revert された r33926 のうち --no-undefined をリンカに渡すための -Wl, を $linker_flag を利用するようにリファクタリングしていた部分だけを再度コミットしています。

nobu:r33929 2011-12-02 15:41:27 +0900

リンク時の -pie と -Wl,pie オプションはプラットフォームによってどっちを使うべきかが異なっていてややこしいので、両方を試してうまくいったほうを採用するように configure.in で対応しています。 [ruby-core:41438] [Bug #5697]

nobu:r33930 2011-12-02 15:43:57 +0900

configure の RUBY_TRY_CFLAGS, RUBY_TRY_LDFLAGS でオプションが利用できない時のメッセージにどの定数に(CFLAGS or LDFLAGS) オプションを追加しようとして失敗したのかを追加しています。

nobu:r33931 2011-12-02 15:48:10 +0900

拡張ライブラリ bigdecimal の構造体 Real のメモリ確保の時に末尾の可変長配列の宣言サイズによらずきっちり必要なだけ確保するようにリファクタリングしています。これまでは sizeof(Real) に frac の配列の必要なサイズぶんを確保していたので、frac が長さ1の配列として宣言されていた場合 BDIGIT ひとつぶん余計にメモリが確保されていたんですね。 あと offsetof() というマクロが stddef.h で標準で用意されていたとは知りませんでした。似たようなのを定義して使ってたような。