ruby-trunk-changes r35245 - r35250

今日は Psych の更新、Windows でのプロセス起動のオプション追加などがありました。

tenderlove:r35245 2012-04-07 02:09:03 +0900

Psych で YAML ファイルを読む際に external encoding が US-ASCII, ASCII-8BIT, UTF-8/16 でなかったら例外を発生させていたのを YAML_ANY_ENCODING (libyaml で定義されている定数らしい)を利用するようにしています。

svn:r35246 2012-04-07 02:09:08 +0900

version.h の日付更新。

nobu:r35247 2012-04-07 03:17:01 +0900

r35244 で struct.c の修正と一緒に入ってしまったらしい enc/unicode/name2ctype.h と tool/transcode-tblgen.rb の変更を revert しています。

tenderlove:r35248 2012-04-07 10:29:29 +0900

Psych のバージョン番号を gem のリリースバージョンにあわせて 1.3.2 に更新しています。

shirosaki:r35249 2012-04-07 23:10:25 +0900

win32/win32.c の CreateChild() で CREATE_NEW_PROCESS_GROUP というフラグを指定しないようにしています。Process.kill は SIGINT なら Windows でもエミュレートしているのですが CreateProcessW() に CREATE_NEW_PROCESS_GROUP を指定せずに呼んで作ったプロセスは殺せないそうです。 [ruby-core:43245] [Bug #6131]
またタイマースレッドへの割り込みについてのテストを Windows 版でスキップさせています。けどこれは CREATE_NEW_PROCESS_GROUP を指定しなくなったのでスキップしなくてよくなったのでは?

shirosaki:r35250 2012-04-07 23:10:30 +0900

Process.spawn のオプションに Windows 版でのみ有効な :new_group => (true/false) を追加して、CreateProcessW() に CREATE_NEW_PROCESS_GROUP を渡すようにしています。そして先程のテストではこのオプションを指定して子プロセスを起動するようにして、あらためてスキップを削除しています。Process.kill で子プロセスを確実に停止させるのにこれを付けないといけないようです。 [Bug #5812]
:new_group は :pgroup => true を流用するわけにはいかなかったんでしょうか。 [ruby-core:43245] [Bug #6131]