ruby-trunk-changes r51777 - r51785

今日は Windows 環境でのコマンドライン処理時のメモリ管理の修正などがありました。

nobu: r51777 2015-09-07 00:19:47 +0900

thread_pthread.c の consume_communication_pipe() で read(2) がエラーを返した時の rb_async_bug_errno() のメッセージに改行が含まれていたのを削っています。また CLOSE_INVALIDATE() というマクロに引数の共通部分も埋め込むようにするリファクタリングなど。

svn: r51778 2015-09-07 00:19:58 +0900

version.h の日付更新。

nobu: r51779 2015-09-07 00:27:25 +0900

thread_pthread.c の rb_async_bug_errno() の呼び出しを async_bug_fd() という関数に切り出して fd の番号もメッセージに埋め込むようにしています。

nobu: r51780 2015-09-07 14:47:34 +0900

Encoding.locale_charmap の rdoc 用コメントを encoding.c から 関数定義されている localeinit.c に移動しています。

nobu: r51781 2015-09-07 15:55:01 +0900

r51498 で ruby_atomic.h に追加した VALUE 値用の ATOMIC_VALUE_CAS() マクロで引数を展開するところで間違った名前で参照していたのを修正しています。マクロによって引数名がまちまちなので統一したいみたいですね。

nobu: r51782 2015-09-07 16:50:11 +0900

vm_core.h で ENABLE_VM_OBJSPACE というマクロをチェックして #if ... #endif で分岐していたところを分岐をやめています。もう常に objspace は宣言されているので分岐が不要になったとのこと。

nobu: r51783 2015-09-07 17:51:01 +0900

標準添付ライブラリ mkmf のテストで OS X での have_framework のテストでチェック対象の framework として CoreFoundation が使われていたのを Ruby framework を利用するように変更しています。コミットログによると OS X の clang 以外の gcc だと CoreFoundation がうまく扱えないみたいです。

nobu: r51784 2015-09-07 22:05:31 +0900

win32/win32.c で #undef strdup でマクロとしての strdup を未定義にして、ruby_strdup() を利用するのを避けるようにしています。 strdup() を呼んでるのは insert() という static 関数で、cmdglob() から呼ばれていて、これはプロセス起動時のコマンドラインの処理のための関数(rb_w32_sysinit() から呼ばれる)で、まだ RubyVM も初期化されてない状態なので、通常の strdup(3) を呼ぶ必要があるようです。

nagachika: r51785 2015-09-07 22:45:52 +0900

r51782 の ChangeLog エントリが重複していたので1つ消しています。