ruby-trunk-changes r35970 - r35994

今日も process.c の exec/fork 関係のリファクタリング続きと openssl の変更などがありました。

drbrain:r35970 2012-06-09 07:40:14 +0900

RFC 6585 で追加されている HTTP ステータスコードを Net::HTTP に追加しています。 [ruby-core:45175] [Feature #6480]

drbrain:r35971 2012-06-09 07:41:06 +0900

r35970 の ChangeLog に記載した RFC の番号が間違っていたのを修正。

nobu:r35972 2012-06-09 07:44:01 +0900

いくつかのファイルの末尾の空白を除去。

drbrain:r35973 2012-06-09 07:46:49 +0900

Delegator#! についての rdoc を追記しています。 [ruby-core:45387] [Feature #6534]

drbrain:r35974 2012-06-09 07:56:17 +0900

Benchmark の rdoc の整形をしています。 [ruby-core:45385] [Bug #6533]

drbrain:r35975 2012-06-09 08:09:56 +0900

String#start_with? と end_with? の rdoc のマークアップ方法やサンプルコードを修正しています。 [ruby-core:45459] [Bug #6553]

drbrain:r35976 2012-06-09 08:17:00 +0900

doc/re.rdoc で正規表現の =~ 演算子についての記述を追加しています。 [ruby-core:45378] [Bug #6529]

drbrain:r35977 2012-06-09 08:21:50 +0900

README.EXT に extconf.rb についての記述を追記して、Appendix C を削除しています。 [ruby-core:45347] [Feature #6522]
また lib/mkmf.rb の rdoc に多少の修正が入っています。 README.EXT の Appendix C の内容がちゃんと移動されているのか疑問ですが、消さなくても良かったような。

nobu:r35978 2012-06-09 08:30:55 +0900

pthread 版の Thread 生成時のスタックサイズの計算に実際のサイズよりも小さめに余裕を持たせる計算を、get_stack() が利用可能なときは省くようにしています。

akr:r35979 2012-06-09 09:01:58 +0900

proc_exec_sh() の呼び出し元に before_exec() を呼ぶのを追加し忘れていたところがあったので修正しています。

akr:r35980 2012-06-09 10:07:07 +0900

process.c で exec のオプションの close_others は常に TRUE しか渡されていなかったので省略して余分な処理を削除しています。

akr:r35981 2012-06-09 10:40:22 +0900

process.c の async-signal-safe な関数の利用状況コメントを更新しています。

akr:r35982 2012-06-09 10:57:46 +0900

rb_exec_err() から before_exec() と after_exec() の呼び出し以外の部分を rb_exec_async_signal_safe() として切り出しています。名前の通りこの部分は async signal safe で、before_exec()/after_exec() が async signal safe でないということですね。

akr:r35983 2012-06-09 11:09:10 +0900

さらに async-signal-safe のコメントを更新。'Actually' -> 'Hopefully' とちょっと弱気になってます。

nobu:r35984 2012-06-09 17:21:52 +0900

RubyVM::InstructionSequence#load で Symbol の変数を ID として利用しようとしていた不具合を修正しています。

akr:r35985 2012-06-09 21:51:01 +0900

process.c の rb_fork_err() からも処理を切り出していくつかの関数に分割するリファクタリングをしています。こちらは見通しをよくするためっぽいですね。

akr:r35986 2012-06-09 22:28:02 +0900

で、切り出した retry_fork() という関数内で for 文の条件部などで書かれていた処理を while 文に変更してより平易に書きかえています。

nobu:r35987 2012-06-09 23:36:17 +0900

rb_str_symname_p() という API を追加しています。文字列が Symbol として使えるかどうかを判定しています。

nobu:r35988 2012-06-09 23:36:56 +0900

iseq.c で ID から文字列を取得するために rb_id2name() のかわりに rb_id2str() を使うようにしています。String オブジェクトとして取得できるためエンコーディング情報が失われないそうです。

akr:r35989 2012-06-09 23:45:46 +0900

before_exec() からさらに async-signal-safe でない部分を before_exec_non_async_signal_safe() として切り出しています。

akr:r35990 2012-06-09 23:58:03 +0900

process.c の rb_fork_err() の条件文の書きかたをわかりやすいように書きかえています。

akr:r35991 2012-06-10 00:25:34 +0900

なにやら process.c の rb_fork_internal() などで chfunc_is_async_signal_safe 引数を追加して指定によって処理を切り替えられるようにしています。

svn:r35992 2012-06-10 00:25:45 +0900

version.h の日付更新。

akr:r35993 2012-06-10 01:37:44 +0900

process.c の rb_fork_internal() で未初期化の変数の初期化を追加しています。

emboss:r35994 2012-06-10 01:44:12 +0900

r35797 で openssl の client renegotiation という機能を使えるようにしていましたが、単純に on/off を指定できるだけだったのを、コールバックを指定してより自由に設定できるようにしています。