ruby-trunk-changes r47243 - r47254

今日は fstring が lazy sweep で解放予定のオブジェクトを使ってしまう不具合の修正や、deprecated とされていたライブラリの削除がありました。特に complex.rb と rational.rb はまるごと削除されています。

hsbt: r47243 2014-08-22 11:38:59 +0900

標準添付ライブラリ prettyprint から PrettyPrint#first? というメソッドを消しています。 1.8.2 の頃から obsoleted とされていたとのことで。

svn: r47244 2014-08-22 11:39:13 +0900

version.h の日付更新。

hsbt: r47245 2014-08-22 12:21:55 +0900

標準添付ライブラリの complex.rb と rational.rb を削除しています。これも deprecated とされていたものです。

hsbt: r47246 2014-08-22 12:32:36 +0900

標準添付ライブラリ shell のコメントアウトされたコードを削除しています。デバッグ用って感じでもないですけど、古いものなんでしょうねぇ。

nobu: r47247 2014-08-22 15:36:09 +0900

r46513 から不要になった tool/rbinstall.rb の未使用のグローバル変数を削除して、不要になった "vcs" の require を削除しています。

nobu: r47248 2014-08-22 15:36:46 +0900

r43888 の make Doxyfile の変更で C API のドキュメントが $BASERUBY の存在が必要になってしまっていたので miniruby を利用するように修正しています。またこのためにライブラリ time.rb を利用しないようにしています。 [ruby-core:64488] [Bug #10161]

nobu: r47249 2014-08-22 17:01:42 +0900

互換性のために組み込みになった Complex と Rational の初期化時に $LOADED_FEATURES に complex.so と rational.so を追加するようにしています。 1.9 (確か)で組み込みになった Enumerator のための "enumerator.so" と同じようなものですかね。

hsbt: r47250 2014-08-22 19:28:36 +0900

r47245 の complex.rb の削除で失敗するようになっていたテストの修正。 complex.rb で Math = CMath としていたので Math を使っていたのを明示的に CMath を利用するようにしています。

hsbt: r47251 2014-08-22 19:30:56 +0900

test/ruby/test_complex.rb のコメントアウトされていた assertion を削除しています。ふーむ、これは本当にいらないやつだったのかな。

ko1: r47252 2014-08-22 20:16:56 +0900

fstring (freeze された文字列オブジェクト)で文字列の共有のためのテーブルの管理で、キーとなる文字列が回収予定のものだった時に st_table のコールバック関数 fstr_update_callback() 関数の中で新規に文字列を作ってキーを上書きしていたのを、一旦 ST_DELETE で返してテーブルから削除して、改めて追加しなおすように変更しています。解放された struct st_table_entry を触ってしまって不正メモリアクセスという不具合みたいです。 バグの説明というより修正した時のエピソードですがこちらも参考に http://www.atdot.net/~ko1/diary/201408.html#d22

ko1: r47253 2014-08-22 20:24:38 +0900

r47252 のループの条件が反転していて無限ループ状態に陥るようになっていたのを修正しています。

kou: r47254 2014-08-22 20:54:17 +0900

r47253 で ChangeLog に不要な文字が入ってしまっていたのを修正しています。