今日は 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 に不要な文字が入ってしまっていたのを修正しています。