ruby-trunk-changes r35682 - r35698

今日は Fiber のマシンスタックサイズを 64bit 環境では大きくとるように変更が入っています。その他 URI の不具合修正、ビルドプロセスの修正などがありました。

drbrain:r35682 2012-05-18 06:14:24 +0900

拡張ライブラリ syslog に SyslogLogger という gem パッケージの Syslog::Logger クラスを取り込んでいます。 出力先が syslog でインタフェースは Logger と同じように使えるもののようです。 [ruby-core:38503] [Feature #5096]

nobu:r35683 2012-05-18 13:50:09 +0900

ext/extmk.rb で static link が指定されていた時にコマンドラインオプションを作るところで json だけは除外していた(gems パッケージとして扱うため?)のですがそれを削っています。

nobu:r35684 2012-05-18 14:06:49 +0900

先の r35683 の変更と関係しているんじゃないかと思いますが ext/json/extconf.rb を削除しています。でもこのファイルやっぱり必要だったようで後で戻されています。

kosaki:r35685 2012-05-18 15:19:25 +0900

ext/extmk.rb で extconf.rb が例外を発生させた時には rescue してそのメッセージを表示するようにして、openssl の extconf.rb でエラー時にメッセージを出力して exit 1 しているところを例外を投げるように変更しています。

kosaki:r35686 2012-05-18 15:24:34 +0900

openssl の extconf.rb で Mac OS X の標準でついている OpenSSL がうまく動かないので弾いているところで回避方法もメッセージに含めるようにしています。

kosaki:r35687 2012-05-18 16:01:54 +0900

ripper の extconf.rb でもメッセージを出力して exit 1 していたところを例外の発生に置き換えています。

kosaki:r35688 2012-05-18 16:02:10 +0900

readline の extconf.rb でもエラー時に黙って exit していた(えっ?)のを例外を発生させるようにしています。

kosaki:r35689 2012-05-18 16:02:25 +0900

fiddle の extconf.rb ではエラー時 abort で強制終了していたのをやはり例外を発生させるようにしています。

kosaki:r35690 2012-05-18 16:02:39 +0900

psych の extconf.rb も libyaml がみつからない時に abort のかわりに raise するように変更しています。

kosaki:r35691 2012-05-18 16:02:56 +0900

zlib の extconf.rb でメッセージを出力して exit していたところを例外発生に変更しています。

naruse:r35692 2012-05-18 16:32:08 +0900

lib/uri/generic.rb で未定義のメソッドを呼んでいたのを修正したり、変数のクラスのチェックを強化したり、引数の配列に破壊的操作をするので dup しておいたりとポカミスの修正をしています。 [ruby-core:44968] [Bug #6420]

nobu:r35693 2012-05-18 17:26:10 +0900

r35684 で ext/json/extconf.rb を削除したのを revert してファイル復活させています。

kosaki:r35694 2012-05-18 17:32:56 +0900

Fiber の setcontext()/swapcontext() を利用する実装(デフォルトでたいていのプラットフォームはこの実装になってます)では Fiber 毎にマシンスタックを確保するようになっているのですが、64bit 環境では確保するマシンスタックサイズを 64KB から 1MB にぐっと増やしています。 ppc64 でスタック不足でテストが失敗したためだそうです。 [ruby-dev:45554] [Bug #6344]

nobu:r35695 2012-05-18 17:41:02 +0900

ext/extmk.rb で static link の対象をチェックしているところで json を省くために Makefile に OBJS が指定されていない拡張ライブラリはスキップするようにしています。

kosaki:r35696 2012-05-18 17:47:54 +0900

タイマースレッドへのシグナル通知用の pipe に fcntl() でフラグのGET/SETしているところで fcntl() の戻り値のチェックをするようにしています。 [Bug #6147] [ruby-dev:45364]

kosaki:r35697 2012-05-18 18:10:46 +0900

r35694 で 64bit 環境の Fiber のマシンスタックサイズを大きくしましたが Windows ではこれが大きすぎるそうで 128KB まで減らしています。 [ruby-dev:45554] [Bug #6344]

nobu:r35698 2012-05-18 18:13:47 +0900

mkmf.rb が生成する Makefile で $OUTFLAG と $COUNTFLAG の末尾に空白がなくなっていたので、変数を展開するとくっついて誤ったコマンドになってしまっていた不具合を修正しています。 [ruby-dev:45650]