ruby-trunk-changes r40902 - r40917

今日は主に RGENGC の不具合修正と、Module#private_constant を無引数で呼んだ時の不具合修正がありました。

nobu:r40902 2013-05-24 00:18:05 +0900

ext/extmk.rb で Makefile を生成する時に $DLDFLAGS に既に dldflags の指定したオプションが含まれていたら再度追加しないようにしています。

svn:r40903 2013-05-24 00:18:09 +0900

version.h の日付更新。

kazu:r40904 2013-05-24 00:29:31 +0900

r40872 の ChangeLog エントリの typo 修正。

ko1:r40905 2013-05-24 03:01:46 +0900

RGENGC の不具合修正。 rb_obj_clone() でオブジェクトの flags の OLDGEN ビットフラグをコピーしてしまっていたのを修正しています。 新しく確保したオブジェクトなのに古い世代として認識されてしまって不具合が発生していたみたいです。

zzak:r40906 2013-05-24 06:46:43 +0900

r40839 で入れて r40987 で demonstration のために revert した forwardable.rb の rdoc コメントを再度コミットしています。

nobu:r40907 2013-05-24 11:04:27 +0900

ロスコンパイル時に -Lオプションでライブラリのパスとして prefix/lib というコンパイルしているホスト上のライブラリを指定してしまってビルドエラーになることがあるので -L${libprefix} を追加するのはクロスコンパイルでない時だけにするように configure.in を修正しています。 [ruby-dev:47363] [Bug #8443]

naruse:r40908 2013-05-24 12:59:17 +0900

.travis.yml による Travis CI の設定で clang によるビルドのテストをしないようにしています。 clang によるビルドは疑似エラーを報告しすぎるからとのこと。

ko1:r40909 2013-05-24 15:52:38 +0900

RGENGC で slot が足りなくなってヒープを追加しようとする時に full GC を走らせて空きスロットを確保しようとしています。

nobu:r40910 2013-05-24 15:54:17 +0900

拡張ライブラリ io/console や stringio で内部的に利用する Module を writable および readable という名称で定義していたのを generic_readable や generic_writable として定義するように変更しています。 小文字で始まる名前で内部的にのみ使うようにして ruby レベルからは隠しているわけですが、別に generic_ という prefix に何か特別に(実装上に)意味があるってわけではなさそうです。 https://github.com/ruby/ruby/pull/315

nobu:r40911 2013-05-24 15:54:25 +0900

拡張ライブラリ io/console の rdoc コメントに IO#getch および IO.console_size のドキュメントを追記しています。

naruse:r40912 2013-05-24 16:32:45 +0900

r40881 で拡張ライブラリ strscan で StringScanner#[] で正規表現の名前つきキャプチャ機能をサポートするようにした時に、正規表現の名前つきキャプチャに存在しない名前の参照が指定されたら例外を発生させるようにしています。

charliesome:r40913 2013-05-24 17:07:01 +0900

r38364 で削除されて既に存在しなくなっていた rb_class_init_copy() という関数のプロトタイプ宣言が include/ruby/intern.h に残っていたのを削除しています。 [ruby-core:55120] [Bug #8434]

ko1:r40914 2013-05-24 19:21:04 +0900

RGENGC で major/full GC を走らせるタイミングを追加しています。
旧世代のオブジェクト数が前回の full GC 後の旧世代オブジェクト数の2倍を越えた時、shady オブジェクトが前回の full GC 後の数の2倍を越えた時、shady オブジェクト数が全オブジェクト数の半分を越えた時、に実行するそうで。ようするに旧世代や shady オブジェクトの数が増えてきたら full GC を実行しておこうってことみたいです。

charliesome:r40915 2013-05-24 19:33:05 +0900

Module#private_constant を無引数で読んだ時に警告を出す(private や public と違って private_constant は無引数で呼んでその後の定数に全てに影響するような使いかたはできません)処理でメソッド名の取得方法が間違っていて SEGV する恐れがあったのを修正しています。

charliesome:r40916 2013-05-24 21:27:12 +0900

拡張ライブラリ fiddle の rdoc コメントの typo を修正。 [Bug #8412]

kazu:r40917 2013-05-24 23:08:37 +0900

r40914 の ChangeLogtypo を修正。