ruby-trunk-changes r33324 - r33328

今日は $SAFE が 4以上の時の Encoding のロードについての問題の修正がありました。

naruse:r33324 2011-09-25 03:43:32 +0900

Enumerable#slice_before の内部でインスタンス変数を取得する時に未初期化のインスタンス変数について警告を出す rb_ivar_get() を利用していたのを rb_attr_get() に変更しています。インスタンス変数の取得方法が2つあるとは知りませんでした……。

svn:r33325 2011-09-25 03:43:36 +0900

version.h の日付更新。

nobu:r33326 2011-09-25 16:42:38 +0900

iseq.c と gc.c でコンパイラの警告除去のためにキャストなどを追加しています。

nobu:r33327 2011-09-25 16:45:08 +0900

configure 時に darwin プラットフォームで /usr/local/include のヘッダを検査している時にコンパイラの警告メッセージを /dev/null にリダイレクトするようにしています。

nobu:r33328 2011-09-25 16:54:35 +0900

r33201 で $SAFE が 3 以上の時に Encoding 用のライブラリを require する時に SecurityError を発生させる問題に対処するために汚染フラグを落として require に渡すようにしていましたが、$SAFE が 4 だと結局例外が発生するらしく Encoding のロードに失敗してしまうので、require_enc() と load_transcoder_entry() で rb_require_safe() に渡す safe_level を 3 以上だったら 3に丸めて渡すようにしています。 [ruby-dev:44541] [Bug #5279]