ruby-trunk-changes r49474 - r49486

今日は Windows 環境での Dir.glob の short path の扱いの強化、Solaris でのビルドプロセスの修正、object space の解放処理の修正などがありました。

tmm1: r49474 2015-02-03 05:58:32 +0900

rb_objspace_free() で LazySweep 中だったら rb_bug() で異常終了させるようにしています。 r46340 で rb_objspace_free() で rest_sweep() を呼ぶのをやめるようにしていましたが、より明示的に禁止しています。また rb_objspace_call_finalizer() の最後で gc_rest() を呼んで追加で GC を実行するようにしています。 finalizer の実行中に確保されたオブジェクトがあるので再度 GC を完了させるようにしています。 [ruby-core:67734] [Bug #10768]

svn: r49475 2015-02-03 05:58:43 +0900

version.h の日付更新。

nobu: r49476 2015-02-03 12:26:38 +0900

標準添付ライブラリ mkmf.rb cxxflags を RbConfig::CONFIG["cxxflags"] から取得するようにしています。 https://github.com/ruby/ruby/pull/823

nobu: r49477 2015-02-03 13:43:52 +0900

do_opendir() で Windows の時のエンコーディング変換するために一時的に作成していた String オブジェクトの VALUE 型変数を volatile にして GC からの保護をしていたのを、関数の最後で rb_str_resize() を呼ぶことで参照が最適化で消されないようにすることで保護するように変更しています。

nobu: r49478 2015-02-03 14:04:49 +0900

Windows での Dir.glob の実装で FindFirstFile() という API を利用するようにしています。 Windows の "c:/progra~1" のような短縮形のパスも利用できるようにしているそうです。 [ruby-core:67954] [Bug #10819]

nobu: r49479 2015-02-03 15:15:51 +0900

dir.c の sys_warning_1() や error.c の rb_sys_warning() で errno がメッセージに重複して出力されていたのを修正しています。

shugo: r49480 2015-02-03 15:26:48 +0900

Refinements によって再定義されたメソッドが Module#remove_method で削除される時に Module#refine のブロックの外では元のメソッドの method entry を削除するようにしています。元々存在しないメソッドなら NameError を発生させるようにしています。 [ruby-core:67722] [Bug #10765]

svn: r49481 2015-02-03 15:26:57 +0900

r49480 の ChangeLog エントリの行末の空白除去。

nobu: r49482 2015-02-03 17:15:47 +0900

標準添付ライブラリ mkmf.rb で try_header, try_compile, try_link などを呼ぶ時に with_xxflags のブロックでフラグを設定するようにしていたのを、try_xxx の引数の渡すように変更しています。 with_xxx を使うとグローバルな状態が変化してしまうので have_devel? でチェックしようとしているフラグが含まれてしまってエラーになっていたみたいです。 [ruby-core:67962] [Bug #10821]

nobu: r49483 2015-02-03 17:23:39 +0900

r49479 での error.c の rb_sys_warning() の追加修正。メッセージ整形文字列に引数の fmt をコピーする処理まで削除してしまっていたので、後段の処理でコピーするようにしています。

kazu: r49484 2015-02-03 19:06:17 +0900

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

ngoto: r49485 2015-02-03 19:43:27 +0900

Solarisruby-glommed.o の make のルールの依存関係がおかしくて生成されないのを修正。 ruby-glommed.o の依存関係を common.mk に移動しています。OBJ が定義されているのが common.mk だからとのこと。 Makefile を include した時の処理順で Makefile.in にあると $OBJ が空のままになってしまうそうです。また重複している DTRACE_OBJ への依存関係(r49451 以降 OBJS に含まれているので)は削除しています。 r49419 の一部 revert になります。 [ruby-dev:48849] [Bug #10808]

kazu: r49486 2015-02-03 23:29:55 +0900

r49478 の ChnageLog エントリの typo 修正。