ruby-trunk-changes r43101 - r43111

今日は File::Stat を C の拡張ライブラリから直接作ることができるようになる C API の追加がありました。

nobu:r43101 2013-10-01 14:48:57 +0900

正規表現のテストで Regexp#=~ と String#=~ を再定義しているところで警告を除去するため先に undef =~ してから再定義するようにしています。 undef って記号だけのメソッドもこういうふうに書けるんですね。

svn:r43102 2013-10-01 14:49:01 +0900

version.h の日付更新。

nobu:r43103 2013-10-01 16:03:50 +0900

r42080 で $SAFE = 4 の警告のために追加した ruby_safe_level_4_warning() のプロトタイプ宣言を include/ruby/ruby.h で RUBY_EXPORT が定義されていても宣言するようにしています。 [ruby-dev:47517] [Bug #8652]

nobu:r43104 2013-10-01 16:27:11 +0900

Regexp#=~ や String#=~ を再定義した時の正規表現マッチのテストで assert_in_out_err から assert_separately を使うように変更しています。

nobu:r43105 2013-10-01 16:27:14 +0900

正規表現リテラルのテストで正規表現リテラルをそのまま使わずに eval() を通すようにしています。警告除去だそうです。はて、なぜでしょう……。

nobu:r43106 2013-10-01 20:36:47 +0900

標準添付ライブラリ mkmf.rb のテストで x86_64 の Linux の環境で 64bit 用ライブラリが lib でなく lib64 の下にある環境で期待値が間違っていてエラーになっていたのを修正しています。 [ruby-core:57535] [Bug #8972]

nobu:r43107 2013-10-01 20:54:53 +0900

file.c の File::Stat を生成する API を rb_stat_new() として公開するようにしています。拡張ライブラリから C の API で直接 File::Stat を作れるようになりました。 これは NEWS ファイルにも追記が必要ですね。 [ruby-core:53225] [Feature #8050]

nobu:r43108 2013-10-01 20:57:02 +0900

r43107 でテスト用の拡張ライブラリのソースファイルがコミット漏れしていたのを追加しています。 [ruby-core:53225] [Feature #8050]

nobu:r43109 2013-10-01 21:00:26 +0900

r43108 で新規追加されたファイルの svn property 設定。

nobu:r43110 2013-10-01 22:03:58 +0900

標準添付ファイル tempfile.rb で Tempfile オブジェクトが GC で回収される時に finalizer でファイルを削除するように登録していますが、明示的に Tempfile#unlink で削除した時にはもう不要なので ObjectSpace.undefine_finalizer で登録解除するようにしています。これまでは Tempfile#close! で解除していましたがより primitive な unlink メソッドで解除するようにしています。 [ruby-core:56521] [Bug #8768]

charliesome:r43111 2013-10-01 23:45:27 +0900

vm_core.h で未初期化変数の警告を抑制する UNINITIALIZED_VAR() マクロに clang では __attribute__( (unused) ) 属性を使う条件に clang 4.2 であることをチェックしていましたが、4.0 以上であることをチェックするように変更しています。 4.0 から使えたとのこと。